قصة موقع وكالة مترجَم إلى سبع لغات تكاد تكون واحدة دائمًا: الجانب الإنجليزي يعمل، والعربي بالكاد، أما اللغات الخمس الباقية فلا تنتج شيئًا يُذكر. يلوم الفريق المحتوى أولًا، فيُعاد تحرير الترجمات وتُضاف بضع مقالات ويُكلَّف كاتب جديد. ولا يتحرك الرقم. لأن المشكلة في الغالب ليست في النص الذي كتبته، بل في عدد العناوين المنفصلة التي يُقدَّم منها ذلك النص، وبأي رمز حالة، وتحت أي تعليق لغوي.
يحوّل هذا المقال نتائج تدقيق تقني شامل أُجري على موقع برمجيات سفر بسبع لغات إلى دليل عملي. كل رقم يرد أدناه مأخوذ إما من ذلك التدقيق أو من دراسة خارجية مذكورة المصدر؛ ولا شيء منها تقدير. غطّى التدقيق 1,088 صفحة حية و1,469 عنوانًا في خريطة الموقع واللغات السبع كلها، وكانت الصورة التي أنتجها كالتالي: 85% من الصفحات لم تحمل عنوانًا قانونيًا (canonical) إطلاقًا، والموقع بأكمله كان مكرّرًا على مضيفين مختلفين، والترجمات المعلنة في ست لغات كانت في الواقع تعيد رسالة «الصفحة غير موجودة».
كل قسم أدناه يمنحك فحصًا واحدًا أو عتبة واحدة أو قاعدة قرار واحدة يمكنك تشغيلها على موقعك بمتصفّح وcurl فقط، دون شراء أي برنامج. والترتيب مهم أيضًا: عمق المحتوى لا يعمل قبل التنظيف التقني، والظهور في الذكاء الاصطناعي لا يعمل قبل عمق المحتوى.
ترتيب التدقيق: أولًا مصدر حقيقة واحد (عنوان قانوني، hreflang متبادل، رمز حالة صادق)، ثم المحتوى، وأخيرًا الظهور في الذكاء الاصطناعي.
1. عُدّ أولًا: كم عنوانًا يوصل إلى الصفحة نفسها؟
لا تبدأ التدقيق بالمحتوى، ابدأه بعدّ العناوين. قياس عدد العناوين المختلفة التي تفتح الصفحة نفسها يستغرق عشر دقائق، ويكشف عادةً أكبر خسارة منفردة في الجولة الأولى.
كان في الموقع الذي قسناه عطلان بنيويان. الأول: النطاق كان يعيد 200 بـ www وبدونه معًا، أي أن الموقع بأكمله كان قابلًا للوصول مرتين. والثاني: أسماء المسارات القديمة والجديدة تُركت مفتوحة جنبًا إلى جنب، فكان /ar/portfolio و/ar/references يقدّمان محتوى متطابقًا؛ وهذا النمط الواحد كان يولّد نحو 1,713 عنوانًا ظلّيًا.
اطلب هذه الصيغ الخمس على موقعك بالترتيب، ودوّن رمز الحالة العائد:
| الصيغة | مثال | النتيجة المتوقعة |
|---|---|---|
| مضيف بلا www | example.com/ar/blog |
301 ← الصيغة بـ www |
| مضيف بـ www | www.example.com/ar/blog |
200 |
| شرطة مائلة ختامية | www.example.com/ar/blog/ |
301 ← الصيغة بلا شرطة |
| معامل تتبّع | www.example.com/ar/blog?utm=x |
200 + canonical بلا المعامل |
| اسم مسار قديم | www.example.com/ar/articles |
301 ← المسار الجديد |
سطر واحد في سطر الأوامر يكفي:
curl -s -o /dev/null -w "%{http_code} %{redirect_url}\n" -I <العنوان>
إذا أعادت اثنتان أو أكثر من الخمس رمز 200، فمحرك البحث لا يرى صفحة واحدة لك، بل يرى عدة صفحات شبه متطابقة. وهذه ليست مسألة عقوبة، بل مسألة انقسام إشارة. فالروابط الواردة وبيانات النقر وميزانية الزحف التي كان ينبغي أن تصبّ في عنوان واحد تتوزّع على جميع تلك العناوين.
إذا أعادت الصيغ الخمس كلها 200 انقسمت الإشارة خمس مرات. وللإصلاح ترتيب: تندمج المسارات القديمة عبر 301، ويُجمَّع الباقي بوسم canonical يشير إلى نفسه.
قاعدة القرار
عرّف صيغة قانونية واحدة بالضبط لكل صفحة، وثبّت عليها ثلاثة أشياء: المضيف (بـ www أو بدونه — اختر واحدًا)، وسياسة الشرطة المائلة الختامية (دائمًا أو أبدًا)، وحالة الأحرف. وما لم تُدوَّن هذه القرارات الثلاثة في مكان ما، فسيخترع كل قالب صفحة جديد صيغته الخاصة.
2. canonical إشارة لا أمر
كان هذا أكثر رقم لافت في التدقيق: من بين 1,088 صفحة تعيد 200، لم تحمل 921 صفحة (85%) وسم canonical إطلاقًا. ومن بين 167 صفحة حملته، كانت 60 صفحة لا تشير إلى نفسها — فالصفحة تُقدَّم من www.example.com/ar بينما يقرأ الوسم https://example.com/ar/. لا المضيف متطابق ولا الشرطة المائلة.
هنا تهمّ حقيقتان تقنيتان. توثيق Google نفسه يصف rel="canonical" لا بوصفه أمرًا تنفيذيًا بل بوصفه «إشارة قوية إلى أن العنوان المحدَّد ينبغي أن يكون القانوني»؛ والقرار النهائي يعود إلى محرك البحث. والتوثيق ذاته يرتّب أساليب الأقوَنة من الأقوى إلى الأضعف: إعادة التوجيه > وسم canonical > الوجود في خريطة الموقع. وخريطة الموقع مذكورة صراحةً بوصفها إشارة ضعيفة.
والنتيجة العملية: وسم canonical ليس أداة تنظيف بمفرده. فإذا أردت إحالة عنوان قديم إلى التقاعد فأعد توجيهه. واحتفظ بالوسم للصيغ التي لا يمكن إعادة توجيهها — النسخ ذات المعاملات، وتوليفات الفلاتر، والعناوين التي تحمل معرّف جلسة.
والحقيقة الثانية: توصي Google بأن تحمل الصفحة القانونية نفسها وسم canonical يشير إلى ذاتها. فالافتراض الشائع بأن «canonical يُكتب على الصفحات المكرّرة فقط» خاطئ؛ إذ ينبغي للصفحة الأصلية أن تشير إلى نفسها أيضًا.
لماذا ينحرف canonical المكتوب يدويًا حتمًا
في الموقع الذي دقّقناه كان وسم canonical مكتوبًا يدويًا في عشرة قوالب صفحات مختلفة: واحد بشرطة مائلة ختامية، وآخر بلا www، وثالث بجزء مسار لم يعد موجودًا. وأربعة عشر قالبًا آخر لم تحمله إطلاقًا. وهذا ليس إهمالًا بل نتيجة بنيوية: إن اضطُر كل من يكتب قالبًا جديدًا إلى تذكّر القاعدة من الصفر، فستُنسى القاعدة عاجلًا أو آجلًا.
القاعدة القابلة للتطبيق: يجب أن يُنتَج ثلاثي canonical وhreflang وog:url في مكان مشترك واحد لا في قوالب الصفحات، وأن يُطبَع مرة واحدة بالضبط لكل صفحة. وإذا حاولت صفحة كتابة canonical الخاص بها فينبغي لعملية النشر أن توقفها. وفي البنية التي أُنشئت بعد التدقيق رُبطت هذه القاعدة بفحص أثناء البناء — أي ضُمنت بالمعمار لا بالانضباط.
3. hreflang: ثمن الإعلان عن لغة بلا مقابل
هذا أغلى خطأ ترتكبه المواقع متعددة اللغات. في الموقع الذي دقّقناه كانت مقالة مدوّنة عربية تعلن عنوانًا بوصفه مقابلها الإنجليزي. وكان ذلك العنوان يعيد HTTP 200 — لكن نصّه كان «Blog Post Not Found». وتكرّر النمط نفسه عبر ست لغات. أي أن الموقع كان يبلّغ محرك البحث طوعًا بمئات الصفحات الفارغة.
توثيق Google الخاص بالنسخ المحلَّية لا لبس فيه: «إذا كانت الصفحة X ترتبط بالصفحة Y، فيجب أن ترتبط الصفحة Y بالصفحة X مرة أخرى. وإذا لم يكن الأمر كذلك في جميع الصفحات التي تستخدم hreflang، فقد يتم تجاهل هذه التعليقات التوضيحية أو عدم تفسيرها بشكل صحيح.» ويصوغها التوثيق ذاته بعبارة أوضح: «إذا لم تُشِر صفحتان إحداهما إلى الأخرى، تُتجاهَل الوسوم.»
ومن ذلك تنبع ثلاث قواعد:
| الحالة | السلوك الصحيح | السلوك الخاطئ |
|---|---|---|
| الترجمة موجودة ومنشورة | أعلن hreflang في الاتجاهين | أعلنه في اتجاه واحد فقط |
| لا ترجمة | لا تكتب hreflang إطلاقًا | إعادة استخدام الـ slug نفسه لتلك اللغة |
| الترجمة موجودة لكنها مسوّدة | لا تعلن شيئًا حتى تُنشر | إعلانها «لأنها ستصدر قريبًا» |
على اليسار: إعلان أحادي الاتجاه يشير إلى عنوان يعيد 200 لكن لا محتوى خلفه. وعلى اليمين: لا تُعلَن إلا اللغات ذات الترجمة الحقيقية، وبشكل متبادل، أما سطر الألمانية فلا يُكتب إطلاقًا.
وهناك خطآن آخران على قائمة Google يستحقان الانتباه: رموز اللغات الخارجة عن ISO 639-1، وقيم المناطق غير الرسمية مثل EU أو UK أو UN. فرمز المنطقة يجب أن يكون ISO 3166-1 Alpha 2، والمنطقة وحدها غير صالحة — لا تكتب hreflang="AR" بل hreflang="ar" أو hreflang="ar-SA".
أما x-default فيحدّد عنوانًا احتياطيًا للمستخدمين الذين تعذّر تحديد لغتهم. وفي موقع وكالة متعدد اللغات يكون الخيار المنطقي هو الصفحة الرئيسية للغة التي تبيع بها دوليًا — الإنجليزية غالبًا — أو شاشة اختيار اللغة إن وُجدت.
4. Soft 404: أن تكتب «غير موجود» وتعيد 200
الـ soft 404، بتعريف Google، صفحةٌ محتواها رسالة خطأ أو نتيجة فارغة بينما يعيد الخادم رمز نجاح من فئة 2xx. وهو أصعب الأعطال ملاحظةً، لأن لا أداة مراقبة تطلق إنذارًا: الصفحة «تعمل»، ولا أحد من البشر يزور ذلك العنوان أصلًا.
في الموقع الذي دقّقناه كان المحتوى المفقود يعيد 200 مع عبارة «غير موجود». وحين حوّلنا تلك الاستجابات إلى 404 صادقة، ظهرت ثلاثة أعطال كانت مخفيّة تمامًا دفعة واحدة:
| العطل الذي ظهر | عدد العناوين المتأثرة |
|---|---|
| المسارات المرمّزة بالنسبة المئوية لم تكن تُفكّ أبدًا | 23 |
| صفحات فئات مدرجة في خريطة الموقع بلا مقابل حقيقي | 33 |
| slugs في قاعدة البيانات غير متوافقة مع تعريف المنتج | 10 |
وكانت النتيجة الأشد درامية: صفحات المنتجات العربية لم تكن قد عملت ولو لعميل حقيقي واحد منذ يوم إطلاقها. فحين تُطلَب بصيغة UTF-8 الخام تعيد 200، وحين تُطلَب بالصيغة المرمّزة بالنسبة المئوية التي يرسلها المتصفح فعليًا تعيد 404. ولأنه soft 404 لم يلاحظه أحد، وكان الفريق يظن أن الصفحات العربية منشورة.
قاعدة القرار
لا تخف من الانتقال إلى 404 الصادقة. سيرتفع عدد أخطائك على المدى القصير — وهذا ليس تراجعًا بل هو تحوّل قياسك إلى قياس دقيق. وللعناوين التي لن تعود أبدًا يكون 410 أوضح؛ لكن تحديد أي عنوان لن يعود قرارٌ محتوى، فاتخذه أولًا.
5. الحروف غير اللاتينية في العناوين: فخ الترميز بالنسبة المئوية
المسارات التي تحتوي حروفًا عربية أو سيريلية أو تركية يرمّزها المتصفح بالنسبة المئوية قبل إرسالها. وتوصي بذلك صراحةً وثيقة بنية العناوين لدى Google: «يجب ترميز الأحرف غير ASCII بالنسبة المئوية.» وتدعم الوثيقة نفسها استخدام كلمات بلغة الجمهور المستهدف — وكذلك النقل الحرفي حين يفيد — داخل العنوان.
المشكلة أنه إذا لم يفكّ الخادم ذلك الترميز، تموت لغة بأكملها بصمت. وللتحقق بنفسك اطلب العنوان ذاته بصيغتين:
- الصيغة الخام:
/ar/blog/<slug-عربي> - الصيغة المرمّزة:
/ar/blog/%D8%A8...
إذا لم تُعِد الصيغتان رمز الحالة نفسه فلديك عطل. عدد اللغات المطلوب اختبارها صغير؛ أما نطاق الضرر فسوق كامل.
سياسة قابلة للتطبيق: للّغات المكتوبة بأبجدية غير لاتينية، اختر بوعي واحدًا من ثلاثة خيارات وطبّقه باتساق عبر اللغات كلها — (أ) أبجدية اللغة الهدف نفسها، إن تحققت من أن الترميز بالنسبة المئوية يعمل من طرف إلى طرف؛ (ب) النقل الحرفي (مثل budushcheye-... للروسية)؛ (ج) slug إنجليزي مع بادئة لغوية. لا خيار من الثلاثة خاطئ. الخاطئ هو أن تتصرف بشكل مختلف من لغة إلى أخرى.
كما توصي Google بالشرطة بدل الشرطة السفلية فاصلًا بين الكلمات: «نوصي باستخدام الشرطات (-) بدلًا من الشرطات السفلية (_) في عناوين URL.» والسبب أن الشرطة السفلية تُستخدم عرفًا في البرمجة لربط المفاهيم لا للفصل بينها.
6. خريطة الموقع ليست قائمة بل التزام
كل عنوان تضعه في خريطة الموقع تصريحٌ منك: «هذه صفحة حقيقية تستحق الفهرسة». الموقع الذي دقّقناه كان يعلن 1,469 عنوانًا؛ وبعد التنظيف أصبح يعلن 1,386. وما خرج منها:
- 28 عنوانًا كانت تعيد بيانات خامًا (JSON) لا HTML — أي أن نقطة نهاية لواجهة تطبيق أُعلنت وكأنها صفحة.
- 21 عنوانًا لم يكن من الممكن عرضها إطلاقًا.
- 33 عنوانًا كانت صفحات فئات بلا مقابل حقيقي؛ ونصوصها تراوحت بين 21 و25 كلمة، وكلها تطبع قالب «تعذّر التحميل» نفسه.
وفوق ذلك، كانت العناوين الـ 1,469 جميعها منشورة على المضيف الخاطئ (بلا www) — أي أن خريطة الموقع كانت تعلن قائمة تناقض قرار الموقع القانوني نفسه.
والعطل الصامت الثاني كان في حقل lastmod: كان ينتج «اليوم» مع كل طلب. وهذا يجعل الحقل بلا معنى. فـ lastmod يجب أن يتغذّى من تاريخ التعديل الحقيقي للمحتوى؛ وإلا توقّف الزواحف عن أخذ هذه الإشارة بالحسبان أصلًا.
قائمة تحقق خريطة الموقع
- هل المضيف في خريطة الموقع مطابق حرفًا بحرف للمضيف القانوني للموقع؟
- اسحب عشرة عناوين عشوائية — هل تعيد كلها 200 و
Content-Type: text/html؟ - هل سياسة الشرطة المائلة الختامية مطبَّقة داخل خريطة الموقع أيضًا؟
- هل قيم
lastmodمختلفة بعضها عن بعض أم كلها اليوم نفسه؟ - هل اللغات التي لا ترجمة لها مستبعَدة من خريطة الموقع تمامًا؟
- هل أُزيلت الصفحات الموسومة بـ
noindexمن خريطة الموقع؟
7. الخطأ الصامت في robots.txt: قاعدة المجموعة
كان هذا من أرخص أعطال التدقيق وأغلاها في آنٍ واحد: احتوى الملف على سطر Disallow مكتوب بشكل صحيح، لكنه كان عديم الأثر تمامًا بالنسبة إلى Googlebot لأنه وُضع في المجموعة الخاطئة.
والسبب هو منطق المجموعات الذي قنّنه RFC 9309. يقول المعيار إن الزاحف يجد المجموعة المطابقة لرمز منتجه (product token) ويلتزم بقواعد تلك المجموعة. ولا تدخل مجموعة البدل * حيّز العمل إلا إذا لم توجد مجموعة مطابقة. تأمّل ملفًا كهذا:
| المجموعة | القواعد داخلها |
|---|---|
User-agent: Googlebot |
Disallow: /search |
User-agent: * |
Disallow: /search وDisallow: /cart |
في هذا الملف يجوز لـ Googlebot أن يزحف إلى /cart، لأن ذلك السطر ليس في مجموعته الخاصة ولا يحدث أي دمج مع مجموعة البدل. والقاعدة بسيطة: إن أردت لقاعدة أن تسري، فكرّرها داخل كل مجموعة User-agent.
وبدل الفحص بالعين، الصق ملفك في تقرير robots.txt داخل Search Console واختبر المسار الهدف. وأول سطر تختلف فيه النتيجة عن توقّعك هو على الأرجح خطأ التجميع هذا.
8. تخزين CDN المؤقت: لغة زائر واحد تُقدَّم للجميع
كان هذا أغرب سلوك كشفه التدقيق. العنوان الجذر كان ينتج إعادة توجيه 302 تتغيّر بحسب لغة متصفح الزائر. والطبقة الوسيطة كانت تخزّن تلك الاستجابة في الذاكرة المؤقتة ساعةً كاملة دون ترويسة Vary. والنتيجة: طوال تلك الساعة كانت لغة أول شخص يدخل الموقع تُقدَّم لكل من يأتي بعده. عميل مؤسسي محتمل يصل بمتصفح ألماني فيهبط على الموقع التركي، ولا أحد يفهم السبب.
وهذه بالضبط وظيفة ترويسة Vary: تخبر الذاكرة المؤقتة بترويسات الطلب التي تعتمد عليها الاستجابة المخزَّنة. وبصياغة MDN، فإن تضمين Vary «يضمن تخزين الاستجابات بشكل منفصل استنادًا إلى الترويسات المدرجة في حقل Vary». وبدون الترويسة تعامل الذاكرة المؤقتة كل طلب إلى العنوان نفسه على أنه مطابق، وتعيد الاستجابة ذاتها بصرف النظر عن اللغة أو الكوكي أو الجهاز.
الاستجابة تتغيّر بحسب اللغة، لكن مفتاح الذاكرة المؤقتة هو العنوان وحده. ولمدة ساعة تصبح لغة أول زائر لغةَ الجميع.
اختر واحدًا من حلّين:
أ — افصل الاستجابة. أضف Vary: Accept-Language إلى كل استجابة تتغيّر بحسب اللغة. عندها تحتفظ الذاكرة المؤقتة بسجل منفصل لكل لغة. والتكلفة: انخفاض معدل الإصابة في الذاكرة المؤقتة.
ب — ثبّت الاستجابة (المفضّل). اجعل العنوان الجذر ينفّذ إعادة توجيه دائمة واحدة لا تنظر إلى اللغة (/ ← 301 ← /ar مثلًا)، وحلّ تفضيل اللغة داخل الصفحة. عندها تبقى الذاكرة المؤقتة فعّالة ويرى محرك البحث سلوكًا واحدًا متسقًا.
القاعدة الثانية: لا تقس قبل تفريغ الذاكرة المؤقتة
يستطيع الـ CDN الاحتفاظ باستجابات HTML حتى أربعٍ وعشرين ساعة. وإن قِست إصلاحًا فور نشره فأنت تقيس النسخة القديمة وستستنتج أنه «لم ينجح». والترتيب الصحيح بعد النشر هو: انشر ← فرّغ الذاكرة المؤقتة للمسارات المتأثرة ← قِس. وقد رأينا أكثر من مرة إصلاحًا سليمًا تمامًا يُتراجَع عنه لأن هذه الخطوة أُغفلت.
9. سلاسل إعادة التوجيه والوجهات غير القانونية
قبل التدقيق كان العنوان الجذر يتصرف هكذا: / ← 302 ← /ar/ ← 308 ← /ar. ثلاث محطات. وكل محطة تأخير إضافي للمتصفح وفقدان إشارة لمحرك البحث؛ يضاف إلى ذلك أن كون القفزة الأولى 302 (مؤقتة) يقول إن الوجهة ليست هي القانونية الدائمة. وقد اختُزل الأمر إلى خطوة واحدة: / ← 301 ← /ar.
أما النتيجة الثانية فكانت أكثر مكرًا. كان في الموقع جدول إعادة توجيه ينقل العناوين القديمة إلى الجديدة، و329 وجهة من وجهات ذلك الجدول كانت هي نفسها غير قانونية — أي أن كل واحدة منها ستولّد إعادة توجيه ثانية بمجرد اشتغال القواعد. وقد التُقط الأمر قبل إطلاق الأقوَنة؛ ولولا ذلك لَوُلدت 329 سلسلة جديدة يوم الإصدار.
قاعدة القرار
قبل أن تضيف صفًا إلى جدول إعادة التوجيه، تحقّق من الوجهة مقابل الصيغة القانونية: المضيف الصحيح، وسياسة الشرطة المائلة الصحيحة، وصفحة تعيد 200 فعلًا. وينبغي أن يكون هذا التحقق خطوة إلزامية في أي عمل يمسّ الجدول؛ فتنظيفه لاحقًا صفًا صفًا يكلّف أضعافًا مضاعفة.
10. الصفحات التي تضيع داخل موقعك
وجود صفحة في خريطة الموقع لا يجعلها قابلة للاكتشاف. وقد أنتج التدقيق بندَي خسارة منفصلين.
49 عنوانًا يتيمًا قابلًا للفهرسة. صفحات معلنة في خريطة الموقع لا تتلقى رابطًا واحدًا في أي مكان من الموقع: صفحة مركز مساعدة (7 لغات)، وخمس صفحات فئات تكامل (35 عنوانًا)، و7 عناوين انفصلت فيها القوائم عن الكود. وبعضها كُتبت له دالة توليد عناوين، بل ورُبطت بمكوّن القائمة — ثم لم تُستدعَ قط.
70 رابطًا داخليًا مكسورًا. أربع بطاقات فئات في صفحة المساعدة كانت تشير إلى مسار غير موجود (4 بطاقات × 7 لغات = 28 رابطًا). ومسار التنقّل (breadcrumb) في صفحات تفاصيل الخدمات كان يشير إلى صفحة فهرس خدمات لم تُبنَ قط (موقعان × 3 خدمات × 7 لغات = 42 رابطًا) — وكان العنوان المكسور نفسه يُكتب في البيانات المنظَّمة أيضًا.
والنتيجة الثالثة أدقّ: 21 مقالة من أصل 33 مقالة مدوّنة كانت على عمق نقر 3، وطريق الوصول الوحيد إليها كان خطوة ترقيم صفحات موسومة بـ noindex. ولأن الروابط كانت قابلة للتتبّع فقد كانت تُزحَف تقنيًا، لكن لم يكن هناك رابط داخلي حقيقي قابل للفهرسة يقود إلى المقالات.
طريقة القياس
ضع قائمة عناوين خريطة موقعك في جهة، ورسم الروابط الداخلية لموقعك (كل <a href> في كل صفحة) في الجهة الأخرى، وخذ الفرق. فما هو في خريطة الموقع وليس في الرسم فهو يتيم؛ وما هو في الرسم ولا يعيد 200 فهو رابط مكسور. وإنتاج هاتين المجموعتين مرة في الشهر يُظهر خسارة لا تلاحظها معظم المواقع أبدًا.
11. المحتوى الرقيق والصفحات «المفترض أنها مترجمة»
بعد التدقيق بلغ متوسط الموقع 472 كلمة، مع 176 صفحة دون 300 كلمة. لكن النتيجة الحقيقية لم تكن الرقم الخام نفسه، بل كيفية قراءته.
التصحيح الأول: انزع إطار الصفحة. عدّ نص الصفحة كما هو يُدخل الترويسة والقائمة والتذييل في إجمالي المحتوى. وفي الموقع الذي قسناه شكّل هذا الإطار الثابت ما بين 117 و233 كلمة لكل لغة. أي أن 300 كلمة خام كانت تقابل نصًا فعليًا يقارب 120 كلمة. اضبط عتبتك الحقيقية على النص بعد نزع الإطار، لا على العدّ الخام.
التصحيح الثاني: طبّع مورفولوجيا اللغة. بالأرقام الخام بدت الترجمات الألمانية ناقصة (وسيط 393 مقابل 610 للإسبانية). والمحتوى كان في الواقع متطابقًا؛ والفارق كله ناتج عن تركيب الكلمات. فـ Flugbuchungssoftware كلمة واحدة في الألمانية، والعبارة نفسها تمتد إلى خمس كلمات في الإسبانية. وبالقياس على ثماني صفحات مترجَمة بالكامل جاءت المعاملات كالتالي:
| اللغة | المعامل (en = 1.00) |
|---|---|
| الألمانية | 0.827 |
| الأذربيجانية | 0.916 |
| التركية | 0.929 |
| الروسية | 0.939 |
| العربية | 0.963 |
| الإسبانية | 1.165 |
وبعد تطبيق هذا التصحيح تبيّن أنه لا توجد فجوة ترجمة في الألمانية ولا الإسبانية، وأن الفجوة الحقيقية متركّزة في العربية (22 عنوانًا) والإنجليزية (16 عنوانًا).
النتيجة الثالثة: الملخّص ليس ترجمة. كثير من النسخ العربية لم تكن ترجمات كاملة بل صياغات مختصرة للنص الإنجليزي — أي 38-48% من وسيط المجموعة. وكانت تُحتسب «مترجَمة» على الورق، ولا تنافس على شيء في الواقع.
النتيجة الرابعة: 7 مجموعات تغطي 67 عنوانًا كانت تتشارك نصوصًا متطابقة حرفيًا. ومعظمها نسخ لغوية شُغّلت دون أن تُنجَز الترجمة أصلًا.
قاعدة القرار
إذا «فتحت» لغة دون ترجمتها فإن تلك اللغة تنتج محتوى مكرَّرًا ولا تنفع اللغات التي لديك أصلًا. وينبغي أن تكون عتبة نشر لغة جديدة كالتالي: أن يبلغ النص في تلك اللغة 85% على الأقل من عدد كلمات لغة المصدر بعد التطبيع. ودون ذلك لا تنشر؛ واللغة التي لا تنشرها لا تكتب لها hreflang أيضًا (انظر القسم 3).
12. البحث بالذكاء الاصطناعي: العمل الذي يأتي بعد التنظيف
لا تنتقل إلى هذا القسم قبل أن تغلق البنود الأحد عشر أعلاه. فالبحث بالذكاء الاصطناعي ليس قناة منفصلة — بل طبقة مبنية فوق الفهرس نفسه. وإذا كانت الطبقة السفلى معطوبة فالطبقة العليا معطوبة معها.
وإليك ما تقوله الأرقام. تجد BrightEdge، برصدها من فبراير 2025 إلى فبراير 2026، أن ملخصات الذكاء الاصطناعي تظهر في نحو 48% من الاستعلامات المرصودة (صعودًا من نحو 30% قبل عام)؛ وفي نحو نصف الاستعلامات لا يظهر أي ملخص إطلاقًا. وفي قياس Seer Interactive لفبراير 2026 بلغ معدل النقر العضوي في الاستعلامات ذات الملخص 2.4%، مقابل 3.8% في الاستعلامات بلا ملخص. وفي لوحة Pew Research الأمريكية المكوّنة من 900 شخص (مارس 2025، 68,879 عملية بحث) أنتجت 8% من الزيارات التي عُرض فيها ملخص ذكاء اصطناعي نقرةً على رابط نتيجة تقليدي؛ وحيث لم يُعرض ملخص كان الرقم 15%. أما النقر على رابط داخل الملخص فلم يتجاوز 1%.
والرقم الأهم للسفر: بحسب BrightEdge، فإن 17.7% فقط من اقتباسات ملخصات الذكاء الاصطناعي في استعلامات السفر تأتي من أول 10 نتائج عضوية (وكانت 5.7% قبل عام). أي أن أكثر من ثلاثة أرباع الاقتباسات تُسحب من مصادر ليست في الصفحة الأولى.
في الأعلى مقارنة معدل النقر العضوي، وفي الأسفل توزّع مصادر الاقتباس في استعلامات السفر. المصادر: Seer Interactive وBrightEdge، فبراير 2026.
وقراءة الرقمين معًا تفضي إلى استنتاج عملي واحد: التصدّر في الترتيب لا يضمن الاقتباس، والاقتباس عمل مستقل بذاته. وللاقتباس مردود قابل للقياس — فبحسب قياس Seer Interactive في أبريل 2026، تحصل العلامات المقتبَسة في استعلام ما على زيادة قدرها 120% في النقرات العضوية لكل ظهور مقارنةً بالعلامات غير المقتبَسة.
ماذا تفعل — وماذا لا تفعل
لنبدأ بما لا ينبغي فعله، لأن الضجيج في هذا المجال كثير.
llms.txt ليس حلًّا. في دراسة Ahrefs التي شملت 137,000 نطاق، لم تتلقَّ 97% من ملفات llms.txt أي طلب على الإطلاق خلال مايو 2026؛ ومن بين نحو 38,000 نطاق يملك ملفًا صالحًا لم يتلقَّ سوى نحو 1,100 نطاق طلبًا واحدًا ولو، و96% من تلك الطلبات جاءت من روبوتات، ومعظم تلك الروبوتات أدوات تدقيق وتحليل لا وكلاء ذكاء اصطناعي. وموقف Google لا يقل وضوحًا: يقول التوثيق الرسمي لخصائص الذكاء الاصطناعي «لست بحاجة إلى إنشاء ملفات جديدة قابلة للقراءة آليًا أو ملفات نصية للذكاء الاصطناعي أو ترميز للظهور في هذه الخصائص» ويضيف: «ولا توجد بيانات منظَّمة خاصة من schema.org يلزمك إضافتها.»
إنتاج الملف لا يضر، لكن استراتيجية ظهورك لا يمكن أن تُبنى عليه. وهناك أربعة أشياء تعمل فعلًا:
- فقرة إجابة في كل صفحة يمكن للآلة أن تقتطعها نظيفة. تحت العنوان مباشرة، من 40 إلى 60 كلمة، تعريفية وذات معنى بذاتها. عبارة «سنتناول في هذا المقال…» غير قابلة للاقتباس؛ أما «الفويد يعني اعتبار التذكرة كأنها لم تُصدَر أصلًا بعد الإصدار، ولا يمكن إلا داخل النافذة الزمنية التي يحدّدها المورّد» فقابلة للاقتباس.
- أرقام قابلة للتحقق مع مصدرها. رقم يحمل اسم مؤسسة وسنة أثمن للبشر والآلات معًا من ادّعاء بلا مصدر. وإن لم تستطع إسناد رقم فلا تكتبه؛ صف الأثر وصفيًا بدلًا منه.
- بيانات منظَّمة قياسية، مطبَّقة بشكل صحيح. لا تبحث عن مخطط خاص؛ املأ الأنواع القياسية مثل
OrganizationوBreadcrumbListوFAQPageبشكل صحيح ومتسق. وخطآن نموذجيان وجدناهما في التدقيق: شعار مؤسسة يشير إلى ملف غير موجود (وحين يعجز محرك البحث عن جلب الشعار يُسقط صورة الناشر بالكامل)، وبيانات مسار تنقّل تشير إلى الفئة الخاطئة. - محتوى فريد مترجَم فعلًا. لم يكن أي من العناوين الـ 67 التي تتشارك نصًا متطابقًا عبر سبع لغات قابلًا للاقتباس.
وضوابط المقتطفات تسري هنا أيضًا: تصرّح Google بأن nosnippet وdata-nosnippet وnoindex تعمل مع خصائص الذكاء الاصطناعي كذلك. فإن كنت لا تريد استخدام قسم ما في الملخصات فالأدوات بين يديك أصلًا.
13. قائمة تحقق من عشرين بندًا للظهور التقني
لا تحتاج أدوات خارج المتصفح وcurl. والنتيجة المتوقعة مكتوبة عند كل بند.
| # | الفحص | النتيجة المتوقعة |
|---|---|---|
| 1 | اطلب المضيف بلا www | 301 ← الصيغة بـ www (أو العكس، باتساق) |
| 2 | اطلب الصيغة بشرطة مائلة ختامية | 301 ← الصيغة الواحدة |
| 3 | اطلب العنوان الجذر | 301 من خطوة واحدة، مستقلة عن اللغة |
| 4 | عُدّ وسوم canonical في عشر صفحات عشوائية | وسم واحد بالضبط لكل صفحة |
| 5 | هل قيمة canonical هي عنوان الصفحة نفسها | نعم، بالمضيف والشرطة المائلة |
| 6 | مجموعة hreflang في صفحة منتج أو مدوّنة | اللغات ذات الترجمة الحقيقية فقط |
| 7 | اطلب كل وجهة hreflang على حدة | كلها 200 وبمحتوى حقيقي |
| 8 | هل تشير كل وجهة إلى الوراء | نعم، بشكل متبادل |
| 9 | هل رموز اللغات وفق ISO 639-1 | نعم؛ ولا رمز منطقة مكتوب وحده |
| 10 | اخترع عنوانًا غير موجود واطلبه | 404 (لا 200 مع «غير موجود») |
| 11 | اطلب slug غير لاتيني خامًا ومرمّزًا | الصيغتان تعيدان الرمز نفسه |
| 12 | هل مضيف خريطة الموقع هو المضيف القانوني | نعم |
| 13 | خُذ عينة من عشرة عناوين من خريطة الموقع | كلها 200 وHTML |
| 14 | افحص قيم lastmod |
مختلفة بعضها عن بعض، وتواريخ حقيقية |
| 15 | اقرأ مجموعات robots.txt | كل قاعدة مكرّرة في كل مجموعة |
| 16 | Vary في استجابة تعتمد على اللغة |
موجودة؛ أو الاستجابة لا تعتمد على اللغة |
| 17 | خُذ عينة من وجهات إعادة التوجيه | كلها قانونية وتعيد 200 |
| 18 | خريطة الموقع ناقص رسم الروابط الداخلية | مجموعة خالية (لا عناوين يتيمة) |
| 19 | ازحف إلى روابط القائمة ومسار التنقّل | لا شيء منها يعيد 404 |
| 20 | ترتيب القياس بعد النشر | انشر ← فرّغ الذاكرة المؤقتة ← قِس |
14. تقويم التدقيق
أنشئ هذا العمل بوصفه مشروعًا لمرة واحدة وسيعود إليك خلال ستة أشهر. وفي الموقع الذي قسناه لم يكن التدهور مسألة إهمال فحسب؛ فالنظام انحرف من تلقاء نفسه لأن كل قالب صفحة جديد كان ينتج صيغته الخاصة.
| التواتر | العمل | لماذا |
|---|---|---|
| مع كل إصدار | البنود 1-5 و10 و20 | القالب الجديد لا يعرف القاعدة القديمة |
| أسبوعيًا | البنود 7 و8 و19 | الترجمات وإضافات المحتوى تكسر المجموعة |
| شهريًا | البنود 12-14 و18 | خريطة الموقع والواقع ينفصلان ببطء |
| ربع سنوي | البنود 6 و9 و11 و15-17 | البنية التحتية وجدول إعادة التوجيه يتغيّران |
المصادر
- Google Search Central — Localized versions of your pages (hreflang)
- Google Search Central — Consolidate duplicate URLs (canonical)
- Google Search Central — HTTP status codes and soft 404 errors
- Google Search Central — URL structure best practices
- Google Search Central — AI features and your website
- IETF — RFC 9309: Robots Exclusion Protocol
- MDN Web Docs — Vary header
- BrightEdge — AI Overviews at the One-Year Mark: Presence, Size, and What They're Citing (فبراير 2026)
- Seer Interactive data, reported by ALM Corp — Google AI Overviews and Organic CTR in 2026
- Seer Interactive data, reported by Omnibound — Google AI Overviews Statistics (أبريل 2026)
- Pew Research Center — Google users are less likely to click on links when an AI summary appears
- Ahrefs — We Analyzed 137K Sites: 97% of llms.txt Files Never Get Read (يونيو 2026)
كل قياس لم يُذكر له مصدر (1,088 صفحة، 921 وسم canonical مفقود، 1,469 ← 1,386 عنوانًا في خريطة الموقع، 49 عنوانًا يتيمًا، 70 رابطًا مكسورًا، 329 وجهة إعادة توجيه غير قانونية، ومعاملات اللغات) مأخوذ من تدقيقنا الخاص لموقع برمجيات سفر بسبع لغات، أُجري في يوليو 2026.
الأسئلة الشائعة
ما وظيفة وسم canonical بالضبط؟
حين تحمل عدة عناوين المحتوى نفسه أو محتوى شديد التشابه، يخبر الوسمُ محركَ البحث أيّها ينبغي أن يُعامَل بوصفه الأصل. لكنه ليس أمرًا تنفيذيًا — فهو بعبارة Google نفسها إشارة قوية، والقرار النهائي يعود إلى محرك البحث. وللعناوين التي تريد إحالتها إلى التقاعد نهائيًا استخدم إعادة توجيه 301 بدل canonical: فإعادة التوجيه هي الإشارة الأقوى.
لماذا يمثّل عمل العنوان بـ www وبدونه معًا مشكلة؟
لأنهما تقنيًا موقعان مختلفان. فإن أعاد كلاهما 200 صارت كل صفحة عندك قابلة للوصول مرتين، وانقسمت الروابط الواردة وبيانات النقر وميزانية الزحف إلى نصفين. اختر واحدًا، وأعد توجيه الآخر إليه بـ 301، واحرص على أن تستخدم خريطة موقعك وروابطك الداخلية الصيغةَ التي اخترتها.
هل أستطيع كتابة hreflang لكل لغة باستخدام الـ slug نفسه؟
فقط إذا كان ذلك الـ slug يعمل فعلًا في تلك اللغة. تربط Google وسم hreflang بشرط التبادل: إذا لم تُشِر الصفحتان إحداهما إلى الأخرى فقد تُتجاهَل الوسوم. وكتابة hreflang للغة بلا ترجمة تعني إعلان صفحة غير موجودة لمحرك البحث. وhreflang ناقص خير من hreflang خاطئ.
ما هو الـ soft 404 وكيف أكتشفه؟
هو أن يعيد الخادم رمز نجاح 200 بينما المحتوى رسالة خطأ. وأسرع طريقة للعثور عليه هي أن تخترع عنوانًا غير موجود على موقعك وتطلبه: فإن لم يكن الرمز العائد 404 فلديك soft 404. كما يدرج تقرير الفهرسة في Search Console هذه الصفحات في فئة مستقلة.
لماذا تعيد العناوين ذات الحروف العربية أو السيريلية 404 أحيانًا؟
لأن المتصفح يرمّز تلك الحروف بالنسبة المئوية قبل إرسالها؛ فإن لم يفكّ الخادم الترميز تعذّر العثور على العنوان. ولأن الصيغة الخام تعمل عند الاختبار اليدوي، قد يبقى العطل مخفيًا مدة طويلة. والفحص هو أن تطلب العنوان نفسه بالصيغتين الخام والمرمّزة وتتأكد من أن الاستجابتين تحملان رمز الحالة نفسه.
لماذا انخفضت زياراتي العضوية منذ إطلاق ملخصات الذكاء الاصطناعي؟
تُظهر القياسات فرقًا بنيويًا: في بيانات Seer Interactive لفبراير 2026 بلغ معدل النقر العضوي 2.4% في الاستعلامات ذات الملخص و3.8% في التي بلا ملخص. وفي لوحة Pew Research أنتجت عمليات البحث ذات الملخص نقرةً على رابط نتيجة بنسبة 8% مقابل 15% بدونه. أي أنك حتى لو حافظت على ترتيبك ستحصل على نقرات أقل في الاستعلامات التي يظهر فيها ملخص؛ والهدف يجب أن يكون أن تُقتبَس داخل ذلك الملخص.
هل ينبغي أن أنشئ ملف llms.txt؟
لا ضرر في ذلك، لكن لا تبنِ خطة ظهورك عليه. ففي دراسة Ahrefs التي شملت 137,000 نطاق لم تتلقَّ 97% من هذه الملفات أي طلب على الإطلاق خلال مايو 2026. كما تصرّح Google في توثيقها الرسمي بأنه لا حاجة إلى ملف جديد قابل للقراءة آليًا أو ترميز أو بيانات منظَّمة خاصة للظهور في خصائص الذكاء الاصطناعي.
كم مرة ينبغي أن أعيد التدقيق؟
إن صغته مشروعًا لمرة واحدة فسيتدهور خلال أشهر قليلة، لأن كل قالب صفحة جديد يميل إلى اختراع صيغة عنوان خاصة به. وإيقاع عملي مقترح: فحوص العناوين وcanonical مع كل إصدار، وفحوص hreflang والروابط الداخلية أسبوعيًا، وتحليل خريطة الموقع والعناوين اليتيمة شهريًا، وفحوص البنية التحتية مرة كل ربع سنة.
خمسة أشياء تستطيع فعلها صباح الغد
- شغّل اختبار الصيغ الخمس. لأكثر ثلاث صفحات لديك زياراتٍ اطلب الصيغة بـ www وبدونه، والصيغة بشرطة مائلة وبدونها، والمسار القديم إن وُجد؛ ودوّن الرموز العائدة في جدول. فإن أعادت أكثر من واحدة رمز 200 فأنت تعرف ما هي مهمتك الأولى.
- عُدّ وسوم canonical في عشر صفحات. كم وسم
rel="canonical"في مصدر الصفحة، وهل القيمة هي عنوان الصفحة نفسها؟ كل صفحة تعود بصفر أو بأكثر من واحد هي نتيجة تستحق التسجيل. - اطلب كل وجهات hreflang لمقالة واحدة، واحدة تلو الأخرى. هل كلها 200، وهل نصوصها محتوى حقيقي، وهل تشير إلى الوراء؟ فإن وُجدت لغة بلا مقابل فاحذف ذلك السطر — وهذا وحده أسرع مكسب متاح.
- اخترع عنوانًا غير موجود واطلبه. إن لم تحصل على 404 فلديك soft 404؛ وإصلاح واحد هنا يُظهر عدة أعطال خفية دفعة واحدة.
- خُذ عينة من عشرة عناوين من خريطة الموقع. هل المضيف صحيح، وهل كلها 200 وHTML، وهل قيم
lastmodحقيقية؟ فإن كانت خريطة الموقع لا تقول الحقيقة فكل قياس آخر تأخذه يقوم على أساس زائف.