عندما تشير العلامات المعيارية عبر اللغات، يتعطل Hreflang
الصفحة المترجمة التي تشير العلامة المعيارية إلى نظيرها الإنجليزي تلغي تعليق Hreflang الخاص بها، ولا يمكن لأي متصفح اكتشاف ذلك. بيانات التدقيق حول الفحوصات التي تكشف التناقض، بالإضافة إلى اليوم الذي فشلت فيه بادئات 9 المحلية أحدها.
يمكن للصفحة حمل علامات 2 في نفس <head> that address the same crawler about the same URL and say opposite things. On `https://example.com/fr/pricing، هذا يعني أن الصفحة هي العضو الفرنسي من مجموعة:
<link rel="alternate" hreflang="fr" href="https://example.com/fr/pricing" />
وهذا، 1 السطر أدناه، يعني أن الصفحة هي نسخة يجب دمجها في الأصل الإنجليزي:
<link rel="canonical" href="https://example.com/pricing" />
المواقع الحقيقية ترسل كلاهما، من نفس القالب، في كل مسار مترجم يملكه. هذا هو الفشل الذي يبقى بعد الذي وثقناه في يوليو — المرجع الذاتي المفقود لـ hreflang، لا يزال يفشل 58% من 88 تقييمات hreflang في بياناتنا الحالية. يمكن لموقع إغلاق ذلك الحلقة، وجعل كل مرجع ذاتي صحيح، وما زال كل صفحة مترجمة تطلب أن تُستبدل بنظيرها الإنجليزي.
يطلب الـ canonical عبر اللغات Google دمج الـ URL المترجم في الأصل
علامة الـ canonical هي طلب توحيد: اعتبر هذا URL كنسخة من ذلك، وفهرس ذلك. تعليق الـ hreflang هو مطالبة توجيه: هذا URL هو الإصدار لهذا اللغة. إذا وجهتهم إلى عناوين URL مختلفة، فقد أطلق الموقع طلبًا يلغي مطالبه الخاصة — فتعبئة الفتحة الفرنسية في المجموعة يتم بواسطة صفحة تنفي نفسها. لقد كان Google صريحًا بأن الـ hreflang هو إشارة وليس توجيهًا، وتعمل عملية التعيين المعياري بنفس الطريقة: يقدم الموقع إشارات، ويحللها Google. هذا الحل هو المشكلة بأكملها. مع صفحة مترجمة ذاتية ميثاق، يقرر الناشر أي URL يخدم الباحثين الفرنسيين. مع الـ canonical عبر اللغات، يترك الناشر القرار بينما يعتقد أن المجموعة مُعدة — والنتيجة التي تُبلغ لاحقًا هي صفحة مترجمة لا تتصدر أي مكان في سوقها الخاص بينما تظهر الصفحة الإنجليزية في مكانها. المولدات التي تنتج هذا هي عادية. مساعدة الـ canonical مبنية من تعريف مسار بدلاً من مسار الطلب تصدر الـ URL غير المسبق لكل لغة. CMS الذي يكون إعداد الـ hreflang حسب اللغة لكن إعداد الـ canonical عالمي يفعل نفس الشيء. هل يعني ذلك أن الترحيل الذي أضاف بادئات اللغة إلى عناوين URL وتركت الكانونيّة تشير إلى المكان الذي كان المحتوى موجودًا أصلاً. في كل حالة تُعرض الصفحة تمامًا، وتبدو التعليقات التوضيحية مكتملة في view-source، والتناقض هو 2 خصائص بعيدًا عن.
مجموعة البيانات
| وجود مرجع ذاتي hreflang | الصفحة الرئيسية غير موجودة في تعليقات hreflang الخاصة بها | 58% من تقييمات 88؛ 59% من مواقع 34 |
| الكانونيّة للصفحة الرئيسية موجودة | الصفحة الرئيسية لا تعلن عن أي كانونيّة URL على الإطلاق | 29% من مواقع 49 |
المنهجية: أحدث لقطة تدقيق مكتملة لكل نطاق، مجموعة فحص engine-v2، تقريبًا مايو 23 – August 31, 2026، مجهولة الهوية. المقامات تختلف حسب الفحص — 34 إلى 49 مواقع — لأن الفحص يُشغَّل فقط عندما توجد مدخلاته: فحص المرجع الذاتي لا يُعطي حكمًا على الصفحة الرئيسية التي لا تحتوي على تعليقات hreflang على الإطلاق، وهذا هو السبب في أن عدد مواقعها هو الأصغر. معدلات المستوى التقييمي والمستوى الموقعية تختلف لأن بعض النطاقات تم تدقيقها أكثر من مرة في النافذة. العينة مختارة ذاتيًا — أصحاب الذين أجروا تدقيقًا — وتميل إلى الصغار إلى المتوسط، لذا اعتبر المعدلات اتجاهية لهذا القطاع. الصف الثاني هو الخطر الأكثر هدوءًا. صفحة بدون كانونيّة لم تتناقض مع تعليق hreflang الخاص بها، لكنها لم تدافع أيضًا عن التعليق: لا شيء في الصفحة يذكر أي URL يعتبرها ذات صلة، لذا فإن نسخة اللغة المتاحة على أكثر من عنوان واحد تُحل بالكامل بالاستدلال. الوصول إلى مجموعة صحيحة يمر عبر نظافة الكانونيّة أولًا، وهذا هو السبب في أن دليلنا للكانونيّة هو المتطلب الأساسي لدليل تنفيذ hreflang، وليس مرفقًا له.
التناقض مرئي فقط من كلا طرفي المجموعة
صفحة واحدة لا يمكن أن تُبلغ هذا الفشل عن نفسها. /fr/pricing يبدو متسقًا داخليًا — مجموعة hreflang، كانونيّة، كلاهما مُشكلان جيدًا. يظهر العيب عندما تُظهر التعليق والصفحة المعلّقة جنبًا إلى جنب، وهذا هو السبب في أن تدقيقنا يجلب المجموعة بدلاً من قراءة 1 مستند.
كل تشغيل يحلل تعليقات hreflang للصفحة الرئيسية ويسترجع حتى 12 هدفًا من نفس الموقع منها، متخطٍ الخطوة بالكامل عندما تقع الصفحة الرئيسية خارج النطاق، لأن تلك التعليقات جاءت من موقع أجنبي HTML. لكل هدف يُرجع محتوى، يسجل المحرك رمز الحالة، ما إذا كان الطلب قد أُعيد توجيهه، ما إذا كان هناك توجيه noindex، وما إذا كان الكانونيّة الخاصة بالهدف تُحل إلى URL الذي أُطلق عليه التعليق. يُسجَّل أي عدم تطابق هناك كـ canonical_mismatch ويُفشل فحصًا عالي الخطورة — هذا الفحص هو فحص الكانونيّة المتقاطعة بين اللغات. تُقارن عناوين URL مع شرطة النهاية وتطبيع الحالة، لذا /fr/pricing و /FR/pricing/ هما صفحة واحدة، ولا يُعامل أي شيء أدق كاختلاف.
يتحقق فحص ثانٍ من اللغة التي يعلن عنها الصفحة في سمة lang مقابل اللغة التي يدعيها تعليمة hreflang الخاصة بها، على الوسم الفرعي الأساسي، وفقط عندما يعلن بعض الصفحات في التدقيق عن hreflang لنفسها. إذا كان الموقع لا يحتوي على تعليمة ذات إشارة ذاتية في أي مكان، فهو أحادي اللغة بقدر ما يمكن للتدقيق رؤيته، ويبلغ الفحص ذلك بدلاً من النجاح.
عندما لا يمكن جلب بديل، يكون الحكم غير حاسم بدلاً من فشل، ويقول التقرير كم عدد الأهداف المعلنة التي تم تقييمها فعلياً. البديل غير القابل للوصول هو فجوة في الأدلة، وتقريرها كعيب سيكون اختراعاً.
بادئً من بادئة اللغة الخاصة بنا، تم تقديم الإنجليزية حتى August 17, 2026
هذه الفحوصات موجودة لأننا فشلنا في هذه الفئة من العيوب على seoreport.dev. أبلغ تدقيق Ahrefs للموقع عن hreflang وتطابق HTML lang عبر 184 URL على موقعنا الخاص. كانت سمة lang هو الأعراض؛ كان المحتوى أيضاً إنجليزيًا، في كل واحدة من 9 بادئات اللغة، مما جعل كل URL محلي نسخة مكررة من نظيره الإنجليزي — نفس نتيجة ما ينتجها canonical عبر اللغات، التي تم الوصول إليها من الاتجاه الآخر.
السبب كان 1 حدود الدالة. أخذ قشرة المستند لغته من مساعدة تُعيد اللغة الافتراضية كلما كان window غير معرف. على الخادم، /fr/pricing لذلك عرض lang="en" وبذل حزمة الترجمة الإنجليزية، بينما المكوّن الذي يصدر روابط الرأس — الذي يقرأ المسار، وليس وقت التشغيل — أصدر fr self-hreflang الصحيح مباشرة بجانبه. أداة عميل غيرت اللغة بعد الترطيب، لذا اجتازت كل فحوصات المستعرض ولم يراها أي إنسان. لا يقوم الزواحف بتشغيل ذلك التأثير.
تم إصلاحه في August 17, 2026: تستمد القشرة لغتها من المسار، وتحلّ Layout المحلي حزمة اللغة في محمل بحيث يشاركها العرض على الخادم والترطيب، ومجموعة لغة مدعومة بدون حزمة ترمي بدلاً من تقديم الإنجليزية تحت بادئتها بهدوء. كان اتجاه النص خاطئًا أيضًا — كان العربية تُقدّم ltr.
البوابة هي تدفق دخان خام-HTML بدون JavaScript، لأن فحص المتصفح أعمى عن هذه الفئة الكاملة من الفشل. عند تشغيل red-first ضد الإنتاج أبلغ عن 440 فشل عبر 128 عناوين URL محلية، كل صفحة على 100% التغطية الإنجليزية. ضد البناء الثابت: 0 فشل عبر 144 عناوين URL. تم بناء مقارنة لغة المحرك مقابل hreflang بشكل منفصل، وكانت أول موقع قد يفشل هو موقعنا.
يورث x-default ما يعلن عنه صفحة الاحتياطي
عينة مواقعنا التي تعلن x-default صغيرة جدًا لنشر معدل فشل، وهناك سبب ثاني لا نقيّمها: يثبت HTML الملتقط أن تعليق x-default مُعلن، وليس الجمهور الذي يعتزم الناشر خدمته. سؤال الدقة هذا غير قابل للقرار من المستند، لذلك يبلغ الفحص ما يمكنه والحقائق المجاورة — شكل URL، صحة الهدف، التعليقات المتبادلة، التوافق الكانوني — يتم تقييمها بشكل مستقل ضد نفس الهدف.
ما يعنيه الآلية يستحق التبيان على أي حال. x-default هو الاحتياطي للباحثين الذين لا يقدم الموقع لغتهم، لذا عادةً ما يشير إلى صفحة السوق الأساسي. إذا كانت تلك الصفحة تحمل كانوني متعدد اللغات، فإن الاحتياطي لكل باحث غير متطابق على الكوكب يرث التناقض، وستبلغ المراجعة ذلك من خلال فحوصات صحة الهدف بدلاً من x-default نفسه.
تحقق منه في HTML الخام، لكل منطقة، في كلا الاتجاهين
احصل على الصفحة بالطريقة التي يفعلها الزاحف واقرأ 3 الأشياء:
curl -s -A "Googlebot" https://example.com/fr/pricing | grep -iE '<html|rel="canonical"|hreflang'
سمة lang، مدخل hreflang المراجع الذاتي، ويجب أن يتفق الكانوني على 1 منطقة و1 URL:
<!-- On https://example.com/fr/pricing --><html lang="fr"><link rel="canonical" href="https://example.com/fr/pricing" /><link rel="alternate" hreflang="en" href="https://example.com/pricing" /><link rel="alternate" hreflang="fr" href="https://example.com/fr/pricing" /><link rel="alternate" hreflang="x-default" href="https://example.com/pricing" />
ثم كرر على 1 صفحة لكل منطقة، واستخرج كل URL التي يذكرها التعليق لتأكيد أن كل منها يوافق نفسه. القاعدة قصيرة بما يكفي لتسليمها لمطور: كل عضو في مجموعة hreflang يوافق نفسه. الكانوني متعدد اللغات صحيح في حالة واحدة فقط — عندما لا يُترجم URL المحلي على الإطلاق ويخدم نفس اللغة كالاصل — وفي تلك الحالة لا ينتمي URL إلى المجموعة أيضًا. فحص URL في Search Console يعطي الرأي الثاني الرسمي حول أي كانوني Google تم اختياره فعليًا، لكل URL. تجري مراجعتنا الحلقة عبر المجموعة في كل تقرير، ويُدرج التقرير المجاني كل زوج متناقض مع الصفحة التي وُجد فيها. بادئات المنطقة 9 على seoreport.dev تمر الآن، وتنجح لأنها أطلقنا العيب أولًا، على موقع يكتشفه بالكامل.
انظر كيف يصنف موقعك
احصل على تقرير مجاني مدعوم بالذكاء الاصطناعي SEO مع نتائج قابلة للتنفيذ وإصلاحات أولوية لموقعك.
لا حاجة للتسجيل.