كيفية تدقيق hreflang على نطاق واسع
عملية قابلة للتكرار ومدعومة بالأدوات لتدقيق hreflang عبر موقع كبير: تجمع كل إشارة من طرق التنفيذ الثلاث، وتقرأ رسوم العناقيد ومصفوفات التبادلية، وترتب الإصلاحات بحسب الضرر لا الشيوع.
اللغات
دليل واحد في هذه الصفحة
- أداة مباشرة ذات صلةreturntag - hreflang checker
تدقيق hreflang على نطاق واسع مسألة تحقق من رسم بياني لا من وسم منفرد: تفحص ما إذا كانت كل صفحة في العنقود تشير إلى سائر الصفحات ويشير كل منها إليها. اجمع جميع الإشارات من مواضع التنفيذ الثلاثة (رأس HTML وترويسات HTTP وخريطة موقع XML) بواسطة زاحف؛ فلا توفر Google مدققًا، وقد أزيل تقرير International Targeting من GSC في 22 سبتمبر 2022. ثم ابنِ مصفوفة وسوم الإرجاع. افحص عنقودًا بصريًا باستخدام رسم ومصفوفة returntag المجانيين، أو استخدم Ahrefs Site Audit وScreaming Frog لتغطية الموقع كاملًا. رتّب حسب الضرر: وسوم الإرجاع المفقودة أولًا لأنها تكسر الزوج، ثم رموز اللغة والمنطقة الخاطئة والأهداف غير الأساسية، وأخيرًا x-default المفقود، وهو الأكثر شيوعًا بنسبة 56,3 % والأقل ضررًا. وفي دراستي المقدمة في Brighton SEO عام 2023 وشملت 374 756 نطاقًا، كان لدى أكثر من 67 % من النطاقات التي تستخدم hreflang خطأ واحد على الأقل.
الخلاصة — يعني تدقيق hreflang «على نطاق واسع» فحص hreflang في الموقع كله بوصفه شبكة مترابطة، بدلًا من مراجعة كل صفحة منفردة. يعمل hreflang في أزواج متطابقة: إذا أشارت الصفحة A إلى الصفحة B، فعلى B أن تشير بدورها إلى A، وإلا قد تتجاهل Google الزوج كله. لا يستطيع فحص صفحة واحدة اكتشاف رابط إرجاع مفقود؛ لذا تحتاج إلى زاحف يقرأ كل صفحة ويرسم خريطة توضح مَن يشير إلى مَن. أصلح روابط الإرجاع المفقودة أولًا، ويمكن تأجيل x-default المفقود الذي تشكو منه كل أداة.
لماذا لا يصلح فحص «صفحة تلو الأخرى»
إذا عرضت مصدر صفحتك الألمانية ورأيت مجموعة مرتبة من وسوم hreflang، فقد يبدو كل شيء سليمًا. لكن hreflang لا يعمل إلا إذا كانت الصفحات المشار إليها تشير بدورها إلى الصفحة الأصلية. قد تكون الصفحة الألمانية مثالية ومع ذلك تكون العلاقة معطلة، لأن الصفحة الإنجليزية التي تسميها أغفلت تسميتها في الاتجاه المعاكس. لا يمكنك رؤية ذلك من الصفحة الألمانية وحدها؛ بل يلزم فتح الصفحة الإنجليزية والفرنسية وكل نسخة أخرى ومقارنتها يدويًا. هذا ممكن في موقع من عشر صفحات، لكنه مستحيل في موقع من عشرة آلاف صفحة.
لهذا تحديدًا يُعد «تدقيق hreflang على نطاق واسع» مهارة مستقلة: تتوقف عن فحص الوسوم وتبدأ في فحص العلاقات. يزحف أحد الأدوات إلى كل صفحة ويسجل كل إشارة hreflang، ثم يطرح السؤال المهم الوحيد: هل تشير كل صفحة في هذه المجموعة إلى كل الصفحات الأخرى في الاتجاهين؟
Evidence for this claim A hreflang audit must verify return links because Google says non-reciprocal annotations may be ignored or interpreted incorrectly. Scope: Google Search hreflang reciprocity guidance; impact is stated as possible, not guaranteed cluster-wide invalidation. Confidence: high · Verified: Google: Hreflang guidelinesما تحتاج إليه فعليًا
ثلاثة أشياء:
- زاحف. لا توفر Google مدققًا لـ hreflang، وقد أزيل في عام 2022 تقرير Search Console القديم الذي كان يرصد بعض هذه المشكلات. لذلك تعتمد على زواحف خارجية مثل Ahrefs Site Audit أو Screaming Frog لجمع كل شيء في مكان واحد. Evidence for this claim A complete audit needs to inspect HTML, HTTP Link headers, and XML sitemaps because Google supports hreflang in all three locations. Scope: Google Search-supported hreflang delivery methods. Confidence: high · Verified: Google: Localized versions
- فحص التبادلية. تنفذ الأداتان المهمة الأساسية نفسها: تبنيان خريطة توضّح مَن يشير إلى مَن، وتضعان علامة على الروابط أحادية الاتجاه. هذه الروابط هي «وسوم الإرجاع المفقودة»، وهي الأخطاء المهمة فعلًا.
- ترتيب للأولويات. ستجد مئات المشكلات. أصلح روابط الإرجاع المفقودة أولًا لأنها تكسر الأزواج، ثم رموز البلدان واللغات الخاطئة، واترك x-default المفقود إلى النهاية؛ فهو الشكوى الأكثر شيوعًا لكنه الأقل ضررًا.
الأمر الوحيد الذي ينبغي تذكره
توجد أخطاء في معظم المواقع التي تستخدم hreflang. عندما درست 374 756 نطاقًا من أجل Brighton SEO عام 2023 ، كان لدى أكثر من 67 % من النطاقات التي تستخدم hreflang خطأ واحد على الأقل. لذلك لا تفزع عندما يمتلئ تقرير الزحف الأول باللون الأحمر؛ فهذا طبيعي. المهارة ليست في الوصول إلى صفر أخطاء، بل في معرفة الأخطاء التي تكلفك زيارات فعلًا وإصلاحها أولًا.
للتدقيق الدولي الأوسع، بما فيه بنية عناوين URL وعمليات إعادة التوجيه الجغرافي وجودة المحتوى والأداء حسب البلد، راجع تدقيق SEO الدولي. وللتعرف إلى hreflang وطريقة تنفيذه، ابدأ بمقال Hreflang. هل تريد المنهجية الكاملة على نطاق واسع، بما فيها مصفوفة وسوم الإرجاع وشرح رسم العنقود ومرشحات Screaming Frog؟ انتقل إلى تبويب المتقدم.
التحقق من إصلاحات hreflang
إعادة اختبار تبادلية العنقود
الاختبار المطلوب: أعد الزحف إلى كل عنقود تغير، وقارن روابط الإشارة الذاتية والبدائل الفعلية بمصفوفة اللغات والمناطق المتوقعة. النتيجة المتوقعة: يشير كل عضو إلى نفسه وإلى جميع البدائل المقصودة، وتوجد وصلة عودة مقابلة لكل رابط. تفسير الإخفاق: غيّر الإصلاح قالبًا أو صفحة واحدة من دون تحديث العنقود كاملًا. نافذة المراقبة: فور النشر وبعد دورة التوليد التالية. سبب التراجع: ما زال عنقود متغير يحتوي أزواجًا غير متناظرة للغات أو المناطق ذات الأولوية.
سلامة الأهداف
الاختبار المطلوب: اطلب كل وجهة hreflang تغيرت من دون اتباع عمليات إعادة التوجيه، واجمع حالة الاستجابة وتعليمات robots والرابط الأساسي. النتيجة المتوقعة: تعيد الأهداف استجابات مباشرة 200، وتظل قابلة للفهرسة، وتستخدم الرابط الأساسي المقصود. تفسير الإخفاق: تشير خريطة اللغات والمناطق إلى عناوين URL قديمة أو معاد توجيهها أو محظورة أو مدمجة. نافذة المراقبة: التحقق من الإصدار والزحف الكامل التالي. سبب التراجع: يستهدف أي عنقود عالي القيمة أخطاء أو عناوين URL غير أساسية على نحو غير متوقع.
اتساق طريقة التسليم
الاختبار المطلوب: قارن الإشارات الموجودة في HTML وترويسات HTTP وخرائط مواقع XML لعناوين URL التي تغيرت. النتيجة المتوقعة: لا تظهر إلا الطريقة المقصودة، أو تعلن جميع الطرق المولدة العنقود نفسه. تفسير الإخفاق: تتحكم أنظمة متعددة في hreflang وقد تباعدت مخرجاتها. نافذة المراقبة: بعد النشر وبعد تحديث خريطة الموقع التالي. سبب التراجع: ما زالت الطرق المتناقضة موجودة في عناوين URL المنشورة.
التحقق من الرموز والنطاق
الاختبار المطلوب: تحقق من كل قيمة تغيرت بمقارنتها برموز اللغة والمنطقة المدعومة وبقائمة اللغات والأسواق المعتمدة. النتيجة المتوقعة: تبدأ كل قيمة بلغة صالحة ولا تضيف إلا منطقة صالحة ومقصودة. تفسير الإخفاق: استُخدم بلد بدل لغة، أو تسرب سوق غير مدعوم، أو كان تنسيق حالة الأحرف أو التوليد خاطئًا. نافذة المراقبة: في التكامل المستمر أو ضمان الجودة قبل النشر، ثم مرة أخرى في زحف الإنتاج. سبب التراجع: تؤثر الرموز غير الصالحة في قالب مولد أو في عدة عناقيد.
الخلاصة — تدقيق hreflang على نطاق واسع هو تحقق من رسم بياني، لا تحقق من وسم. الخطوة 1: اجمع كل إشارة من المواضع الثلاثة المسموح بها (رأس HTML وترويسات HTTP من نوع
Linkوخريطة موقع XML) باستخدام زاحف مضبوط لبنية ccTLD أو النطاقات الفرعية لديك؛ فلا يستطيع GSC فعل ذلك (أزيل International Targeting في 22 سبتمبر 2022، وحتى قبل ذلك لم يكن يعرض إلا العضو الأساسي من العنقود). الخطوة 2: ابنِ مصفوفة وسوم الإرجاع: لكل عنوان URL في العنقود مقابل كل عنوان آخر، هل توجد A→B وهل توجد B→A؟ اقرأها في رسم/مصفوفة عنقود returntag لإجراء فحص مركز، أو استخدم Ahrefs وScreaming Frog للزحف إلى الموقع كله. الخطوة 3: صنّف النتائج في أربعة أنماط: وسوم إرجاع مفقودة، ورموز خاطئة، وأهداف غير أساسية، ومزيج من عناوين URL المطلقة والنسبية. الخطوة 4: رتّب حسب الضرر لا الشيوع: وسوم الإرجاع أولًا لأنها تكسر الزوج كله، ثم الرموز، وأخيرًا x-default، وهو الأكثر شيوعًا بنسبة 56,3 % والأقل ضررًا. الخطوة 5: أعد التحقق مقابل عنوان URL المفهرس لا الرابط الأساسي المعلن.
هذا المقال هو الرفيق المتخصص في hreflang لمقال تدقيق SEO الدولي الأوسع، الذي يعالج hreflang بوصفه واحدًا من ستة مجالات للتدقيق. هنا أتعمق مستوى إضافيًا في منهجية hreflang وحده على نطاق واسع. وللأساسيات، أي ماهية hreflang وطرق تنفيذه الثلاث وقاعدة التبادلية، راجع مركز Hreflang، ولوسم الاحتياط راجع x-default.
Evidence for this claim A complete audit needs to inspect HTML, HTTP Link headers, and XML sitemaps because Google supports hreflang in all three locations. Scope: Google Search-supported hreflang delivery methods. Confidence: high · Verified: Google: Localized versionsإعادة صياغة جوهرية للمشكلة: إنها مسألة رسم بياني
هذا هو التحول الذهني الذي يجعل التدقيق على نطاق واسع قابلًا للتنفيذ. أنت لا تفحص «هل تحتوي هذه الصفحة وسم hreflang؟»، بل تفحص «هل تشير كل صفحة في عنقود هذه الصفحة إليها في الاتجاه المعاكس، وهل يحل كل عنوان URL في العنقود إلى صفحة تستجيب بـ 200 وتكون أساسية وقابلة للفهرسة؟».
وثائق Google نفسها تفسر السبب:
Evidence for this claim A hreflang audit must verify return links because Google says non-reciprocal annotations may be ignored or interpreted incorrectly. Scope: Google Search hreflang reciprocity guidance; impact is stated as possible, not guaranteed cluster-wide invalidation. Confidence: high · Verified: Google: Hreflang guidelinesتؤكد وثائق Google أن الصفحة X إذا ربطت بالصفحة Y، وجب أن تربط Y بدورها بـX؛ وإلا فقد تتجاهل Google إشارات
hreflangأو تفسرها على نحو غير صحيح.
اقرأ ذلك بعناية. قد يتسبب رابط إرجاع واحد مفقود في تجاهل الإشارات المتأثرة أو تفسيرها على نحو غير صحيح. لهذا يعجز عرض صفحة واحدة بنيويًا عن تدقيق hreflang: موضع الخلل هو العلاقة بين الصفحات، لا صفحة بعينها. تحتاج إلى زحف يسجل كل عضو في العنقود ويقارن الأعضاء بعضهم ببعض.
النطاق مهم هنا أيضًا: الإشارات التي قد تُتجاهل هي إشارات الزوج المعطل، لا كل علاقة في عنقود أكبر تلقائيًا. فعادةً يستمر عنقود من خمس صفحات ينقصه رابط إرجاع واحد في معالجة أزواجه الأخرى المكتملة بصورة طبيعية. وهذا بالضبط ما تعرضه لقطة returntag أدناه: تسعة أزواج تبادلية سليمة ورابط إرجاع واحد مفقود. لا تفترض أن رابطًا معطلًا واحدًا يلغي العنقود كله؛ افحص كل زوج، لأن الأداة لا تستطيع إخبارك بذلك إلا بعد فحص كل زوج.
وتزداد الصعوبة كلما نما الموقع، وهو تحديدًا تفسير Google لظهور الأخطاء في المواقع الكبيرة. في Search Off the Record ، وصف Gary Illyes الأخطاء بأنها تظهر عندما يضم الموقع خصائص كثيرة لكل منها بنية URL خاصة بها؛ فبمجرد الحاجة إلى تغيير النمط بين الخصائص تبدأ الأخطاء. وأضافت Lizzi Sassman أن مزامنتها تصبح أصعب عند توطين عناوين URL ثم الوقوع في أخطاء مطبعية. هذه سمة إعدادات المؤسسات: عدة نطاقات ccTLD، لكل منها اصطلاح نشر مختلف قليلًا. لذا يفصل التدقيق الجيد النتائج حسب مجموعة الخصائص/النطاقات، لأن الأخطاء تتجمع هناك تشغيليًا.
الخطوة 1 — اجمع كل إشارة hreflang على مستوى الموقع
المواضع الثلاثة التي يظهر فيها hreflang
تقبل Google hreflang في ثلاثة مواضع متكافئة، ويجب فحصها كلها:
Evidence for this claim A complete audit needs to inspect HTML, HTTP Link headers, and XML sitemaps because Google supports hreflang in all three locations. Scope: Google Search-supported hreflang delivery methods. Confidence: high · Verified: Google: Localized versions- وسوم HTML من نوع
<link>داخل<head>، وهي الحالة الشائعة. - ترويسات استجابة HTTP من نوع
Link:، وتُستخدم للملفات غير المكتوبة بـ HTML مثل PDF. - مدخلات
xhtml:linkفي خريطة موقع XML، وهي شائعة على نطاق واسع لأنها تجمع الإشارات في ملف واحد بدل إدراجها بقالب في كل صفحة.
الزاحف الذي يقرأ رأس HTML وحده سيفوّت بصمت البدائل المعلنة عبر الترويسات أو خريطة الموقع. لن يصفها بأنها معطلة، بل لن يراها أصلًا، وهذا أسوأ لأنك ستظن أن الصفحة بلا hreflang بينما تتلقى مجموعة كاملة عبر خريطة الموقع. اضبط الزحف لقراءة المواضع الثلاثة قبل أن تثق بأي رقم.
ضبط الزاحف بما يناسب بنيتك
- Screaming Frog: فعّل Configuration > Spider > Crawl Hreflang؛ ويلتقط ذلك أيضًا hreflang من خريطة الموقع والترويسات عندما توجهه إليها. وفي نطاقات ccTLD أو النطاقات الفرعية التي تشير بعضها إلى بعض، أضف النطاقات الشقيقة ضمن Config > CDNs؛ وإلا فلن يجري التحقق من روابط hreflang العابرة للنطاقات ولن تظهر بوصفها معطلة. وهذه أكثر نقطة عمياء شيوعًا على نطاق واسع، لأن مواقع المؤسسات هي الأكثر استخدامًا لنطاقات ccTLD، وهذه النطاقات تحديدًا تحتاج إلى الخطوة الإضافية.
- Ahrefs Site Audit: تأكد للسبب نفسه من إدراج النطاقات الشقيقة في نطاق المشروع. ثم استخدم Page Explorer لترشيح الصفحات حسب نوع مشكلة hreflang على نطاق واسع قبل التعمق في رسوم العناقيد الفردية.
لماذا لا يستطيع GSC تنفيذ ذلك نيابة عنك
لسببين، وغالبًا ما يفوت الناس السبب الثاني:
- اختفى التقرير. أُهمل تقرير International Targeting في GSC، الذي كان يرصد بعض مشكلات hreflang، ثم أزيل (أُعلن ذلك في أغسطس 2022، وتمت الإزالة بعد 22 سبتمبر 2022). ولم يحل محله شيء مباشرة.
- وحتى عندما كان موجودًا، لم يعرض إلا الرابط الأساسي. أوضح Illyes في Search Off the Record أن Search Console لا يقدم تقارير إلا عن الصفحات الأساسية. وفي معظم عناقيد hreflang للغات المتشابهة لا تكون البدائل صفحات أساسية؛ لذلك كنت لا ترى فعليًا ما يحدث للأعضاء غير الأساسيين، لأن Google تخزنهم في عنقود النسخ المكررة من دون الاحتفاظ بتفاصيل البدائل. وهذا سبب بنيوي جعل GSC عاجزًا دومًا عن تقديم تدقيق hreflang كامل، وليس مجرد أن «التقرير أزيل». وهو المبرر المباشر للبدء بالزاحف.
لا توفر Google مدققًا أصلًا. قال Illyes في الحلقة نفسها إن Google لم تقدم قط مدققًا لـ hreflang؛ كانت لديها بعض التقارير قليلة الاستخدام ثم أزالتها، وهي تحيل الآن إلى أدوات خارجية مثل أداة Aleyda Solis ومدقق Bill Hunt وأداة Merkle. اعتبر ذلك إذنًا للاعتماد على زواحف خارجية في المهمة التي يعجز عنها GSC، لا تزكية لهذه الأدوات. تنص وثائق Google صراحة على أنها لا تصون أدوات تصحيح hreflang الخارجية ولا تتحقق منها. لذلك تعامل مع مخرجات أي أداة، بما فيها أداتي، كدليل تشخيصي يحتاج إلى تفسير، لا كحكم رسمي. وعندما تكون النتيجة مهمة فعلًا، أكدها بمقارنتها بالأثر الخام، أي استجابة HTTP أو XML لخريطة الموقع أو HTML المعروض، بدل الاكتفاء بملخص الأداة المحلل.
الخطوة 2 — ابنِ مصفوفة وسوم الإرجاع
وحّد شكل البيانات التي جمعتها
قبل بناء المصفوفة، ضع كل شيء في بنية متسقة. سجل لكل علاقة hreflang معلنة عنوان URL المصدر والهدف وقيمة اللغة والمنطقة وطريقة المصدر (رأس HTML أو ترويسة HTTP أو خريطة الموقع)، وسجل خصوصًا رمز حالة الهدف وسلسلة إعادة التوجيه وقابليته للفهرسة وهدفه الأساسي وما إذا كان الزاحف قد رآه في HTML الخام أم DOM المعروض. تصدر الزواحف هذه البيانات بصيغ مختلفة؛ وتحويلها إلى روابط موجهة من URL إلى URL مع إرفاق ذلك السياق هو ما يجعل المصفوفة وكل تصنيف في الخطوة 3 موثوقًا، بدل أن تكون النتائج كومة من الصفوف المنفصلة.
ما الذي تمثله المصفوفة
من حيث المبدأ، تنشئ لكل عنقود جدولًا تكون صفوفه وأعمدته جميع عناوين URL في ذلك العنقود، وتجيب كل خلية عن سؤال بنعم أو لا: هل يوجد رابط hreflang من عنوان URL في الصف إلى عنوان URL في العمود؟ العنقود الصحيح متناظر: إذا وُجد A→B وُجد B→A. وكل خلية غير متناظرة، أي رابط موجود في اتجاه واحد فقط، تمثل وسم إرجاع مفقودًا.
لا تنشئ جدول البيانات هذا يدويًا على نطاق واسع؛ فالأدوات تنشئه لك. لكن استحضار المصفوفة ذهنيًا يساعدك على قراءة مخرجات الأدوات قراءة صحيحة. ترسم أداتي returntag المصفوفة كرسم بياني وتعرض خلاياها أيضًا، ويجمع مرشح Screaming Frog المسمى “Missing Return Links” الخلايا غير المتناظرة في قائمة، ويوفر Ahrefs Site Audit عرضًا آخر للعناقيد على نطاق واسع. الفحص نفسه للعلاقة، لكن طرق العرض ونطاقات الزحف مختلفة.
قراءتها كرسم بياني: مدقق عناقيد returntag
لفحص عنقود محدد، تعرض أداتي المجانية returntag علاقات اللغات والمناطق المعلنة في رسم بياني ومصفوفة تبادلية. كل لغة ومنطقة عقدة، وكل إشارة hreflang معلنة رابط، وتحدد قائمة المشكلات عنوان URL الدقيق الذي لا يوفر رابط إرجاع. لقطة الشاشة أدناه لعملية تعتمد على خريطة الموقع وحدها: تقرأ ما تعلنه الخريطة ولا تجلب عمدًا وسوم رأس الصفحة أو ترويسات HTTP من نوع Link. استخدم وضع Page URL عندما تحتاج إلى الصورة الكاملة من المصادر الثلاثة لعنقود صفحة.
كيفية قراءتها:
- العنقود السليم شبكة كاملة الاتصال؛ ترتبط كل عقدة بكل عقدة أخرى في الاتجاهين.
- الرابط أحادي الاتجاه هو الخلية غير المتناظرة: تشير الصفحة X إلى Y لكن Y لا تشير بدورها إلى X. هذا هو خطأ وسم الإرجاع، تراه بصريًا بدل قراءته في صف.
- العقدة المعزولة، أي عنوان URL يظهر في العنقود لكنه لا يرتبط به في الاتجاه المعاكس، هي عنوان hreflang غير مرتبط.
المكسب العملي هو سرعة الفرز والتواصل مع أصحاب المصلحة: بدل تسليم المطور صفًا مجردًا في جدول بيانات، تعرض له العلاقة أحادية الاتجاه وخطأ وسم الإرجاع المفقود المحدد معًا. وعند التعامل مع مئات أو آلاف العناقيد، أبقِ Ahrefs Site Audit أو Screaming Frog في سير العمل لضمان تغطية الزحف كاملة؛ أما returntag فهو الطريقة السريعة لفحص عنقود محدد وشرحه.
قراءتها كجدول بيانات: مرشحات Screaming Frog
في Screaming Frog، تظهر المصفوفة كمجموعة مرشحات بعد تشغيل Crawl Analysis عقب الزحف لملء بيانات روابط الإرجاع. تعامل معها بالترتيب التقريبي التالي لأنه يطابق ترتيب الأولويات في الخطوة 4:
- Missing Return Links — الخلايا غير المتناظرة، وهي النتائج الأعلى أولوية.
- Inconsistent Language & Region Return Links — يوجد رابط إرجاع لكنه يحمل رمزًا مختلفًا عن الرابط الصادر (تقول A إن B هي
fr-FR، وتقول B إن A هيen-GBمع أن A هي في الحقيقةen-US)؛ وهو عطل أدق للزوج. - Non-Canonical Return Links — يشير رابط الإرجاع إلى عنوان URL جُعل عنوانًا غير أساسي لصالح عنوان آخر، فتتعطل سلسلة الإشارات رغم وجود وسم.
- Noindex Return Links — يحمل هدف الإرجاع noindex، لذلك لا يمكنه حمل الإشارة.
- Non-200 Hreflang URLs — الهدف إعادة توجيه أو صفحة خطأ.
- Unlinked Hreflang URLs وIncorrect Language & Region Codes — العقد المعزولة وأخطاء التحقق من الرموز.
صدّر المجموعة كاملة عبر Reports > Hreflang. وللشرح الكامل لكل مرشح على مستوى الملخص، يقدم دليل hreflang من Screaming Frog شرحًا ممتازًا؛ ولن أعيد نسخ خطوات الإعداد هنا.
الخطوة 3 — صنّف النتائج في أربعة أنماط من الأخطاء
ستكون مخرجات الزحف صاخبة. ضع كل نتيجة في واحدة من أربع فئات؛ فهي الأنماط المتكررة في دراسة 374 756 نطاقًا. أستشهد هنا بالرقمين اللذين يدعمان حجة ترتيب الأولويات فقط؛ فالجدول الكامل لأنواع الأخطاء التسعة موجود بالفعل في مقال تدقيق SEO الدولي ، ولا داعي لإعادة لصقه.
1. وسوم الإرجاع المفقودة — ما يكسر الزوج
هذه هي الخلايا غير المتناظرة في المصفوفة. وتظهر لدى 15,3 % من النطاقات التي تستخدم hreflang. وقد أوضحت في الدراسة أن وسوم hreflang تعمل في أزواج؛ فإذا لم تشر الصفحتان إحداهما إلى الأخرى، لا تستطيعان إنشاء الصلة والتبديل على نحو صحيح في نتائج البحث. هذه هي الفئة التي تُبطل إشارة الزوج كله وفق وثائق Google، ولذلك تأتي أولًا في ترتيب الأولويات رغم أنها ليست الخطأ الأكثر شيوعًا.
2. رموز اللغة/المنطقة الخاطئة — خطأ تتسامح معه Google بصمت أحيانًا
استخدم ISO 639-1 للغة وISO 3166-1 alpha-2 للمنطقة. ومن الأخطاء التقليدية: jp بدل ja لليابانية، والخطأ المطبعي js بدل ja، والرموز الثلاثية مثل gbr بدل gb، واستخدام la، وهو رمز لاوس، بمعنى «أمريكا اللاتينية».
يجدر أيضًا إدراج تمييز آخر في التدقيق: تسمح BCP 47، وهي المواصفة الأساسية لوسوم اللغة، بقيم أكثر بكثير مما يتعامل معه تنفيذ Google لـ hreflang فعليًا، ومنها وسوم الأنظمة الكتابية وبنى أخرى صحيحة وفق BCP 47 لا تؤكد وثائق hreflang من Google أنها قيم معروفة. قد يكون الرمز سليم الصياغة تمامًا وفق BCP 47، ومع ذلك لا يكون مما توثقه Google كقيمة مدعومة في hreflang. تحقّق تحديدًا وفق قواعد Google الموثقة للغة والمنطقة وx-default، لا وفق صحة صياغة BCP 47 العامة؛ فقد يكون الوسم صحيحًا نحويًا لكنه غير مرئي وظيفيًا لـ Google.
لكن ثمة دقة تناقض ترتيب الأولويات الساذج: تصحح Google بعض هذه الأخطاء بصمت ولا تصحح غيرها. تنص وثائقها: “Google Search ignores that part of the annotation (for example, using EU, UN, or UK in hreflang annotations doesn’t have an effect on Google Search).” (الترجمة العربية) «يتجاهل بحث Google ذلك الجزء من الإشارة؛ ومن أمثلته أن استخدام EU أو UN أو UK في إشارات hreflang لا يغيّر شيئًا في بحث Google». لذلك يُسقط UK فعليًا، والصحيح GB، لكنه لا يلغي بقية الإشارة؛ أما الرمز الخاطئ ببساطة مثل jp بدل ja فيعطل ذلك الزوج. يجب أن يميز التدقيق بين «خاطئ تقنيًا لكن Google تتعامل معه» و«خاطئ ويعطل الزوج فعلًا»، لأنهما لا يستحقان الدرجة نفسها من الاستعجال.
3. عناوين URL غير الأساسية في hreflang — الخطأ غير المرئي
يبدو هذا النمط سليمًا في ملف تصدير الوسوم لكنه يتعطل مع ذلك. وقد أوضحت تمييزًا مهمًا في Pubcon عام 2019: يتعلق hreflang بالنسخة المفهرسة، لا بالرابط الأساسي المعلن. فإذا أشار hreflang إلى عنوان URL تستبعده عملية تحديد الأساسي لصالح العنوان المفهرس فعليًا، تعطلت سلسلة الإشارات رغم أن الوسم نفسه «صحيح». ولا يظهر ذلك إلا عند مقارنة ملف تصدير الزحف بحالة الفهرسة. تتجاوز معظم أدلة hreflang هذه الخطوة لأنها تعامل hreflang كفحص معزول لوسم، لا كجزء من مسار الفهرسة. وسنعود إلى التحقق منه في الخطوة 5.
يجدر أيضًا إضافة فحص للمحاذاة داخل اللغة نفسها. عندما توجد عدة عناوين URL شبه مكررة يمكن منطقيًا اختيار أحدها رابطًا أساسيًا لمنطقة ولغة، تفضل إرشادات Google لتحديد الرابط الأساسي عنوانًا باللغة نفسها، أو أفضل بديل، وتمنح بعض الأفضلية لصفحة تنتمي إلى عنقود hreflang تبادلي مكتمل على صفحة لا تنتمي إليه. وهذا سبب لإبقاء أهداف hreflang موجهة إلى مرشحين للرابط الأساسي باللغة نفسها، بدل تركها تنجرف إلى نسخة مكررة بلغة مختلفة. لكن لا يستطيع زاحف أو مدقق إثبات أي من ذلك قطعًا؛ فهو يعرض الإشارات المضبوطة، مثل الوسوم الأساسية وروابط hreflang وعضوية العنقود، لا اختيار Google النهائي الفعلي. تعامل مع مخرجات الزحف كدليل تشخيصي لا كتأكيد.
Evidence for this claim Audit canonical targets for same-language or best-substitute alignment and compare reciprocal hreflang-cluster membership, because Google documents a cluster preference among otherwise similar URLs. Scope: localized HTML pages, HTTP headers, XML sitemaps and search systems as applicable Confidence: high · Verified: How to specify a canonical URL with rel=canonical and other methods4. مزج عناوين URL المطلقة والنسبية — خلل القالب
تشترط Google أن تكون عناوين URL البديلة مكتملة، بما فيها طريقة النقل http/https؛ أي https://example.com/foo لا //example.com/foo أو /foo. وعلى نطاق واسع لا يكون هذا غالبًا خطأ مطبعيًا منفردًا، بل عيبًا في قالب يصيب آلاف العناوين دفعة واحدة لأن كتلة hreflang تُولد من نمط URL جزئي. لذلك تصنفه الزواحف مشكلة منهجية: إذا وجدت حالة واحدة، فعادة ما تكون قد وجدت قالبًا كاملًا متأثرًا.
الخطوة 4 — رتّب الأولويات: وسوم الإرجاع أولًا، ثم الرموز، وx-default أخيرًا
أهم فكرة في المقال كله: شدة الخطأ لا تتناسب مع شيوعه. رتّب النتائج حسب الضرر، لا حسب عدد الصفوف التي أعادتها الأداة.
| المستوى | نمط الخطأ | سبب الترتيب |
|---|---|---|
| 1 — أصلحه أولًا | وسوم الإرجاع المفقودة؛ رموز روابط الإرجاع غير المتسقة | يكسر إشارة الزوج كله وفق وثائق Google. أعلى ضرر. |
| 2 — أصلحه تاليًا | الرموز الخاطئة التي لا تصححها Google بصمت (jp→ja)؛ الأهداف غير الأساسية أو المعطلة | يكسر علاقات فردية؛ تعالج Google بعض الحالات بصمت ولا تعالج أخرى، لذا فرزها وفق ذلك. |
| 3 — أصلحه دفعة واحدة | مزج عناوين URL المطلقة والنسبية، وغياب الإشارة الذاتية | مشكلات حقيقية في سلامة التنفيذ، وغالبًا ما تشمل قالبًا كاملًا، لكنها لا تكسر العنقود دائمًا. |
| 4 — أخيرًا | غياب x-default | الأكثر شيوعًا والأقل ضررًا. |
سبب وضع x-default أخيرًا رغم انتشاره أنه النتيجة الأكثر شيوعًا في كل دراسة: 56,3 % في دراستي لـ374 756 نطاقًا، و47,95 % في دراسة Dan Taylor المستقلة لـ18 786 نطاقًا لدى SALT.agency. دراستان بمقياسين مختلفين جدًا والنتيجة واحدة: معظم المواقع تفتقده. وقد أوضحت في الدراسة أن إعداد x-default غير مطلوب، لكنه موصى به عند الحاجة إلى صفحة احتياطية لمن لا تتطابق إعدادات لغتهم مع أي نسخة موطنة. يتعامل فريق Google نفسه معه كخيار احتياطي لتجربة المستخدم، لا كإشارة حاسمة للفهرسة. وقد وصفه Illyes في Search Off the Record بأنه يحدد صفحة احتياطية عند عدم وجود لغة مطابقة للمستخدم، وأشار إلى أنه قد يكون صفحة بلغة أخرى بدل صفحة اختيار مخصصة. أصلحه، لكن بعد المشكلات التي تكسر العناقيد فعليًا.
تقع الإشارة الذاتية في المستوى 3 للسبب نفسه: قال Illyes، الذي عمل على تنفيذ hreflang لدى Google، إنه لا يتذكر تمامًا لماذا تُطلب الإشارة الذاتية، وإنه واثق إلى حد كبير من أن العناقيد ستعمل من دونها. وقد صاغ فائدتها أساسًا في أنها تسهل إعداد العناقيد لأنك تستطيع نسخ الكتلة نفسها ولصقها في كل مكان. إنها من سلامة التنفيذ، لا متطلب وظيفي.
للحصول على مصفوفة الأثر × الجهد الأوسع التي تغطي مجالات التدقيق الدولي الستة كلها، لا hreflang وحده، استخدم عدسة أطر العمل في تدقيق SEO الدولي بدل إعادة بنائها هنا.
الخطوة 5 — أعد التحقق مقابل عنوان URL المفهرس، لا نتيجة الزحف
يتحقق الزحف من الوسوم، لكنه لا يتحقق من أن عنوان URL الذي يشير إليه الوسم هو العنوان الذي فهرسته Google فعلًا. وبما أن hreflang يتبع النسخة المفهرسة، كما في النمط 3 من الخطوة 3، فإن الوسم الذي يشير إلى عنوان استُبعد لصالح رابط أساسي آخر، أو يعيد التوجيه، أو يحمل noindex في مرحلة لاحقة، يظل يعطل الإشارة حتى بعد أن يبلغ الفحص الجماعي أن كل شيء «سليم».
بعد نشر الإصلاحات، افحص عينات من العناقيد الأعلى قيمة بواسطة URL Inspection في Search Console: تأكد من أن عنوان URL الذي تبلغ Google أنه مفهرس هو نفسه الذي تشير إليه إشارات hreflang. تلتقط هذه الخطوة انحراف سلسلة الروابط الأساسية الذي لا يظهر في تصدير عادي لوسوم hreflang. لا تفعل ذلك لكل عنوان URL، بل لصفحاتك ذات العائد في كل سوق بعد أن يقول الزحف إن العمل انتهى.
ملاحظة من سطر واحد عن Bing
لا تتوقع أن تتحقق Bing Webmaster Tools من أي من ذلك. تتعامل Bing مع hreflang كإشارة أضعف بكثير مما تفعل Google، وقد أزالت ميزة Geo Targeting في عام 2020؛ وهي تعتمد بدلًا من ذلك على ترويسة Content-Language. لذلك فإن تدقيق hreflang على نطاق واسع موجه أساسًا إلى Google؛ وافحص Content-Language لـBing بصورة منفصلة، كما هو موضح في تدقيق SEO الدولي.
ملخص الذكاء الاصطناعي
خلاصة مكثفة للنسخة المتقدمة:
- إنها مسألة رسم بياني، لا مسألة وسم. تفحص هل تشير كل صفحة في العنقود إلى سائر الصفحات في الاتجاه المعاكس، لا هل تحتوي صفحة واحدة وسمًا. توضح Google أن الصفحة إذا ربطت بصفحة أخرى وجب أن توفر الأخرى رابط العودة، وإلا فقد تتجاهل الإشارات. وقد يؤدي غياب رابط إرجاع واحد إلى إبطال زوج كامل.
- الخطوة 1 — اجمع كل شيء. يوجد hreflang في ثلاثة مواضع: رأس HTML وترويسات HTTP من نوع
Linkوخريطة موقع XML؛ ويجب أن يقرأ الزاحف المواضع كلها. اضبط النطاقات الشقيقة ccTLD أو الفرعية (في Screaming Frog: Config > CDNs؛ وفي Ahrefs: نطاق المشروع)، وإلا فلن يجري التحقق من الروابط العابرة للنطاقات. لا يستطيع GSC تنفيذ ذلك؛ فقد أزيل تقرير International Targeting في 22 سبتمبر 2022، وحتى قبله لم يكن يعرض إلا العضو الأساسي من العنقود. - الخطوة 2 — مصفوفة وسوم الإرجاع. كل عنوان URL × كل عنوان URL في العنقود؛ والخلايا غير المتناظرة تعني وسوم إرجاع مفقودة. اقرأ عنقودًا محددًا بصريًا في رسم ومصفوفة returntag، أو اعمل على مستوى الموقع عبر Ahrefs Site Audit وScreaming Frog.
- الخطوة 3 — أربعة أنماط من الأخطاء: وسوم إرجاع مفقودة؛ رموز خاطئة (تتجاهل Google الرموز المحجوزة مثل
UKبصمت، لكنها لا تعالجjpبدلja)؛ أهداف غير أساسية لأن hreflang يتبع عنوان URL المفهرس؛ ومزج عناوين URL المطلقة والنسبية، وهو عيب في القالب على نطاق واسع. - الخطوة 4 — رتّب حسب الضرر لا الشيوع. وسوم الإرجاع أولًا لأنها تكسر الزوج كله، ثم الرموز والأهداف المعطلة، ثم x-default أخيرًا؛ فهو الأكثر شيوعًا (56,3 % في دراستي لـ374 756 نطاقًا، و47,95 % في دراسة SALT.agency) لكنه الأقل ضررًا و«غير مطلوب».
- الخطوة 5 — أعد التحقق مقابل عنوان URL المفهرس بواسطة URL Inspection بعد الإصلاح؛ فالزحف يتحقق من الوسوم لا من انحراف حالة الفهرسة.
- سياق الحجم: لدى أكثر من 67 % من النطاقات التي تستخدم hreflang خطأ واحد على الأقل، وفق دراستي لـBrighton SEO عام 2023 التي شملت 374 756 نطاقًا. أما Bing فتنبيهها في سطر واحد: افحص Content-Language لا hreflang.
الوثائق الرسمية
مراجع من المصادر الأولية لتدقيق hreflang.
- إبلاغ Google بالنسخ الموطنة من صفحتك — مرجع hreflang: شرط وسم الإرجاع التبادلي، وقاعدة عناوين URL المكتملة، والتعامل مع الرموز المحجوزة، وطرق التنفيذ الثلاث المتكافئة (وسوم رابط HTML وترويسات HTTP من نوع
Linkوخريطة موقع XML). - تم إهمال تقرير International Targeting — مساعدة Search Console — التقرير الذي أزيل وكان يرصد بعض مشكلات hreflang (أزيل بعد 22 سبتمبر 2022).
- إدارة المواقع متعددة المناطق واللغات — سياق بنية URL الذي يفسر سبب توليد الإعدادات متعددة الخصائص معظم أخطاء hreflang.
- كيفية تحديد عنوان URL أساسي باستخدام rel=canonical وطرق أخرى — إرشادات تفضيل الرابط الأساسي باللغة نفسها التي يستند إليها فحص hreflang غير الأساسي في الخطوة 3.
Bing / Microsoft
- مساعدة Bing Webmaster Tools — لا توفر Bing سير عمل للتحقق من hreflang؛ فهي تمنح ترويسة Content-Language وزنًا أكبر، وقد أزالت Geo Targeting في عام 2020.
اقتباسات من المصدر
تصريحات مسجلة تدعم منهجية التدقيق.
Google — شرط التبادلية، وهو عماد التدقيق كله
- “If page X links to page Y, page Y must link back to page X. If this is not the case for all pages that use
hreflangannotations, those annotations may be ignored or not interpreted correctly.” (الترجمة العربية) «إذا ربطت الصفحة X بالصفحة Y، فيجب أن تربط الصفحة Y بدورها بالصفحة X. وإذا لم يتحقق ذلك في جميع الصفحات التي تستخدم إشاراتhreflang، فقد تُتجاهل تلك الإشارات أو لا تُفسر تفسيرًا صحيحًا». — وثائق Google Search Central. انتقل إلى الاقتباس
Google — عناوين URL المكتملة، وهي السبب الجذري لنمط مزج المطلق والنسبي
- “Alternate URLs must be fully-qualified, including the transport method (http/https), so:
https://example.com/foo, not//example.com/fooor/foo.” (الترجمة العربية) «يجب أن تكون عناوين URL البديلة مكتملة، بما في ذلك طريقة النقل (http/https) ، أيhttps://example.com/foo، لا//example.com/fooأو/foo». — وثائق Google Search Central. انتقل إلى الاقتباس
Google — تُسقط الرموز المحجوزة بصمت ولا تعطل الصفحة
- “If you use codes that are listed as reserved for something else, Google Search ignores that part of the annotation (for example, using
EU,UN, orUKinhreflangannotations doesn’t have an effect on Google Search).” (الترجمة العربية) «إذا استخدمت رموزًا مدرجة بوصفها محجوزة لغرض آخر، يتجاهل بحث Google ذلك الجزء من الإشارة؛ فمثلًا لا يؤثر استخدامEUأوUNأوUKفي إشاراتhreflangفي بحث Google». — وثائق Google Search Central. انتقل إلى الاقتباس
Patrick Stox — لماذا تحمل الأزواج العبء، من دراسة 374 756 نطاقًا
-
“As I mentioned, hreflang tags work in pairs. If both pages don’t reference each other, they can’t establish the connection and swap properly in the search results.” (الترجمة العربية) «كما ذكرت، تعمل وسوم hreflang في أزواج. وإذا لم تشر كلتا الصفحتين إحداهما إلى الأخرى، فلن تتمكنا من إنشاء الصلة والتبديل على نحو صحيح في نتائج البحث». — دراسة Ahrefs: أكثر من 67 % من نطاقات Hreflang لديها مشكلات
-
“Setting an x-default is not required. But it is recommended if you need a fallback page for users whose language settings don’t match any of your localized versions.” (الترجمة العربية) «إعداد x-default ليس مطلوبًا، لكنه موصى به إذا احتجت إلى صفحة احتياطية للمستخدمين الذين لا تتطابق إعدادات لغتهم مع أي من نسخك الموطنة». — المصدر نفسه: أكثر من 67 % من نطاقات Hreflang
Gary Illyes من Google — لماذا يعجز GSC عن تدقيق hreflang ولماذا لا يوجد مدقق
أوضح Illyes في Search Off the Record أن Search Console لا يقدم تقارير إلا عن الصفحات الأساسية، ولذلك لا ترى فعليًا الأعضاء غير الأساسيين في كثير من عناقيد hreflang التي لا تكون بدائلها صفحات أساسية؛ إذ تضعها Google في عنقود النسخ المكررة من دون تخزين تفاصيل البدائل. وقال أيضًا إن Google لم تقدم قط مدققًا لـ hreflang؛ كان لديها بعض التقارير قليلة الاستخدام ثم أزالتها، وهي تحيل الناس الآن إلى أدوات خارجية. هذه صياغة بتصرف من النص؛ تحقق من الألفاظ في صفحة الحلقة قبل نقلها كاقتباس حرفي.
ملاحظة: تم التحقق حرفيًا من اقتباسات وثائق Google أعلاه مقابل الصفحة المنشورة. أما تصريحات Search Off the Record فصيغت بتصرف من نص الحلقة ولم تُنقل حرفيًا، ويبدو أن تاريخ إدراج Libsyn لا يتسق مع مراجع الحلقة نفسها؛ لذا تحقق من الصياغة والتاريخ مقابل المصدر المنشور قبل اعتبارهما نهائيين.أي نتيجة ينبغي أن أصلح أولًا؟
أتممت الزحف وتواجه الآن جدارًا من النتائج الحمراء. مرر كل نتيجة عبر المسار الآتي:
-
هل رابط الإرجاع مفقود أو رمزه غير متسق، أي هل الخلية غير متناظرة؟ ← نعم ← المستوى 1. أصلحه الآن. فهذا يكسر الزوج كله وفق وثائق Google، وتنتظر سائر المشكلات خلفه. ← لا ← تابع.
-
هل يشير hreflang إلى عنوان URL لا يعيد 200، أو يعيد التوجيه، أو يحمل noindex، أو ليس الرابط الأساسي؟ ← نعم ← المستوى 2. أصلحه تاليًا. لا يستطيع الهدف حمل الإشارة. وفي حالة الرابط غير الأساسي تحديدًا، تحقق مقابل عنوان URL المفهرس بواسطة URL Inspection، لا مقابل وسم canonical وحده. ← لا ← تابع.
-
هل رمز اللغة/المنطقة خاطئ؟ ← هل هو رمز محجوز تتجاهله Google بصمت (
UKأوEUأوUN)؟ ← نعم ← أولوية منخفضة. تسقط Google ذلك الجزء وحده؛ أصلحه لضمان الصحة لا بوصفه حالة طارئة. ← هل هو رمز خاطئ فعلًا يعطل المطابقة، مثلjpبدلjaأو الخطأjsأو الرمز الثلاثيgbr؟ ← نعم ← المستوى 2. أصلحه تاليًا. فهذا يعطل العلاقة. -
هل يمزج عنوان URL بين المطلق والنسبي (
//example.com/…أو/…)؟ ← نعم ← المستوى 3، لكن افحص القالب. يكون ذلك في الغالب خللًا في قالب على مستوى الموقع؛ فحالة واحدة قد تعني آلاف الحالات. أصلح القالب وعالج البقية دفعة واحدة. -
هل المشكلة غياب الإشارة الذاتية أو x-default؟ ← نعم ← المستوى 4. أخيرًا. إنها من سلامة التنفيذ ولا تكسر العنقود. x-default «موصى به، لا مطلوب»، والإشارة الذاتية تسهّل النسخ واللصق. عالجها في الجولة النهائية.
القاعدة الكامنة تحت شجرة القرار: رتّب حسب الضرر لا عدد الصفوف التي أعادتها الأداة. الخطأ الأكثر شيوعًا، وهو x-default، هو الأقل ضررًا.
إجراء التشغيل القياسي: تدقيق hreflang الدوري
يتعطل hreflang بصمت كلما نشر المطورون تغييرًا في القوالب؛ لذلك نفّذ هذا الإجراء وفق جدول زمني، شهريًا للمواقع الدولية النشطة أو بعد أي إصدار يمس القوالب الموطنة.
التحضير
- تأكد من أن نطاق الزاحف يغطي كل خاصية في شبكة hreflang، بما فيها جميع نطاقات ccTLD والنطاقات الفرعية والمجلدات الفرعية. في Screaming Frog أضف النطاقات الشقيقة ضمن Config > CDNs، وفي Ahrefs Site Audit تأكد من وجودها في نطاق المشروع.
- تأكد من أن الزاحف يقرأ مواضع الإشارات الثلاثة كلها: رأس HTML وترويسات HTTP من نوع
Linkوخريطة موقع XML. تحقق من ذلك بفحص صفحة تعرف مسبقًا أنها تستخدم hreflang المعتمد على خريطة الموقع.
الزحف 3. فعّل استخراج hreflang (في Screaming Frog: Configuration > Spider > Crawl Hreflang)، ثم شغّل الزحف. 4. شغّل التحليل اللاحق للزحف (في Screaming Frog: Crawl Analysis) كي تمتلئ مرشحات روابط الإرجاع. وفي Ahrefs انتظر اكتمال Site Audit وافتح مجموعة مشكلات hreflang.
الفرز، بهذا الترتيب 5. المستوى 1 — Missing Return Links وInconsistent Return-Link Codes. صدّرها أولًا. افتح العناقيد الأكثر تضررًا في رسم/مصفوفة returntag لشرح الروابط المعطلة، واحتفظ بتصدير الزاحف مصدرًا للتغطية على مستوى الموقع. 6. المستوى 2 — الأهداف غير الأساسية أو المعطلة أو التي تحمل noindex، والرموز الخاطئة فعلًا. 7. المستوى 3 — مزج عناوين URL المطلقة والنسبية، ويُصلح في القالب، وغياب الإشارة الذاتية. 8. المستوى 4 — غياب x-default. أخيرًا.
التقسيم 9. اجمع كل نتيجة حسب الخاصية/النطاق، لا حسب نوع الخطأ وحده؛ إذ تتجمع الأخطاء في المواضع التي تختلف فيها أنماط URL بين الخصائص. وهكذا تعرف قالب أي فريق يحتاج إلى الإصلاح.
التحقق 10. بعد نشر الإصلاحات أعد الزحف. ثم افحص عينات من صفحات العائد في كل سوق بواسطة URL Inspection للتأكد من أن hreflang يشير إلى عنوان URL المفهرس، لا إلى عنوان استُبعد لصالح رابط أساسي آخر. 11. سجل أعداد الأخطاء حسب المستوى في كل دورة كي تتمكن من رؤية الانحراف بمرور الوقت.
خرافات وأخطاء تدقيق Hreflang
مفاهيم خاطئة ملموسة تدفع الناس إلى تدقيق الأشياء الخطأ؛ مع سبب خطئها وما ينبغي فعله بدلًا منها.
1. «يعرّض hreflang المعطل موقعي لعقوبة، لذا فكل خطأ عاجل».
- سبب الخطأ: تتجاهل Google hreflang المعطل أو غير المتناظر، ولا تعاقب عليه. قال Gary Illyes صراحة إن تنفيذ hreflang تنفيذًا خاطئًا لن يضر الموقع؛ بل تتجاهله Google ببساطة، كما أورد Search Engine Roundtable وأكد Search Engine Journal. التكلفة هي فرصة ضائعة، مثل ظهور صفحات باللغة الخطأ أو تنافس الأسواق داخليًا، لا عقوبة ترتيب.
- افعل بدلًا من ذلك: رتّب كل عنقود حسب الفرصة الضائعة، مثل الزيارات والإيرادات، لا خوفًا من عقوبة غير موجودة.
2. «غياب x-default هو الخطأ الأكثر شيوعًا، لذا أصلحه أولًا».
- سبب الخطأ: الشيوع والشدة محوران مختلفان. x-default هو النتيجة الأكثر شيوعًا (56,3 % في دراستي و47,95 % في دراسة SALT.agency)، لكنه «موصى به، لا مطلوب»، ويعمل كخيار احتياطي لتجربة المستخدم لا كإشارة حاسمة للعنقود.
- افعل بدلًا من ذلك: ضع x-default أخيرًا. أصلح وسوم الإرجاع المفقودة أولًا؛ فهي تكسر أزواجًا كاملة.
3. «وسوم الإشارة الذاتية إلزامية؛ صنّف كل وسم مفقود منها حرجًا».
- سبب الخطأ: قال Illyes نفسه، وقد عمل على تنفيذ hreflang لدى Google، إنه غير متأكد من سبب طلب الإشارة الذاتية، ويرى أن العناقيد ستعمل من دونها؛ فهي أساسًا وسيلة تسهّل النسخ واللصق.
- افعل بدلًا من ذلك: أصلح الإشارة الذاتية في جولة سلامة التنفيذ النهائية، في المستوى 3–4، لا قبل أخطاء وسوم الإرجاع والرموز.
4. «السمة html lang إشارة لغة تفحصها Google، لذا دققها مع hreflang».
- سبب الخطأ: عندما سُئل Illyes مباشرة في Search Off the Record هل تهتم Google بسمة HTML من نوع
lang، قال لا؛ فهي غالبًا مضمنة افتراضيًا في قوالب CMS ولذلك لا يمكن الوثوق بها، فتكتشف Google اللغة من المحتوى المرئي بدلًا منها. - افعل بدلًا من ذلك: أبقِ
html langصحيحًا لتسهيل الوصول ولمحركات البحث الأخرى، لكن لا تدع عدم التطابق بين hreflang وlangيتقدم على خطأ فعلي في وسم الإرجاع عند الفرز.
5. «اختفى تقرير GSC، لذا لا أستطيع تدقيق hreflang من دون زاحف مدفوع».
- سبب الخطأ: يصلح فحص يدوي لمصدر الصفحة مع مدققات مجانية أو شبه مجانية، مثل أداة Aleyda Solis ومدقق Bill Hunt وأداة Merkle، للمواقع الصغيرة. وقد سمى Illyes هذه الأدوات بوصفها مما وجده يعمل جيدًا، مع أن وثائق Google توضح أنها لا تصون أدوات hreflang الخارجية ولا تتحقق منها. الحجم هو ما يتطلب زاحفًا، لا غياب GSC.
- افعل بدلًا من ذلك: طابق الأداة مع حجم الموقع. افحص المواقع الصغيرة يدويًا، واحتفظ بالزاحف للمواقع التي يستحيل فيها فحص العناقيد يدويًا فعلًا.
6. «ملف تصدير hreflang نظيف، إذن hreflang سليم».
- سبب الخطأ: لا يعني تصدير الوسوم النظيف أن الأهداف مفهرسة. يتبع hreflang عنوان URL المفهرس، لا الرابط الأساسي المعلن؛ لذلك يظل الوسم الذي يشير إلى عنوان استُبعد لصالح رابط أساسي آخر أو يحمل noindex معطلًا رغم أن شكله «صحيح».
- افعل بدلًا من ذلك: بعد فحص الوسوم، قارن حالة الفهرسة بواسطة URL Inspection لأهم العناقيد.
قبل/بعد: قراءة الأنماط الأربعة
أمثلة موجزة وملموسة لكل نمط من الأخطاء وإصلاحه. الشيفرة توضيحية.
1. وسم إرجاع مفقود، وهو ما يكسر الزوج
قبل الإصلاح — تشير الصفحة الأمريكية إلى الصفحة البريطانية، لكن الصفحة البريطانية لا تشير في الاتجاه المعاكس:
<!-- https://example.com/us/ (present) -->
<link rel="alternate" hreflang="en-US" href="https://example.com/us/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/" />
<!-- https://example.com/uk/ (BROKEN — no link back to /us/) -->
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/" />بعد الإصلاح — تسمي الصفحة البريطانية الصفحة الأمريكية في الاتجاه المعاكس، فيصبح الزوج متناظرًا:
<!-- https://example.com/uk/ (fixed) -->
<link rel="alternate" hreflang="en-US" href="https://example.com/us/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/" />2. رمز لغة/منطقة خاطئ
قبل الإصلاح — jp رمز بلد لا رمز اللغة اليابانية، وen-UK غير صالح:
<link rel="alternate" hreflang="jp" href="https://example.com/jp/" />
<link rel="alternate" hreflang="en-UK" href="https://example.com/uk/" />بعد الإصلاح — لغة وفق ISO 639-1 (ja) ومنطقة وفق ISO 3166-1 alpha-2 (GB لا UK):
<link rel="alternate" hreflang="ja" href="https://example.com/jp/" />
<link rel="alternate" hreflang="en-GB" href="https://example.com/uk/" />3. مزج عناوين URL المطلقة والنسبية، وهو خلل قالب على نطاق واسع
قبل الإصلاح — عناوين نسبية إلى البروتوكول وإلى جذر الموقع؛ بينما تشترط Google عناوين مكتملة:
<link rel="alternate" hreflang="fr-FR" href="//example.com/fr/" />
<link rel="alternate" hreflang="de-DE" href="/de/" />بعد الإصلاح — عناوين مكتملة، بما في ذلك طريقة النقل:
<link rel="alternate" hreflang="fr-FR" href="https://example.com/fr/" />
<link rel="alternate" hreflang="de-DE" href="https://example.com/de/" />4. هدف غير أساسي، يبدو صالحًا لكنه يظل معطلًا
قبل الإصلاح — يشير hreflang إلى عنوان URL تستبعده عملية تحديد الرابط الأساسي لصالح النسخة المفهرسة:
<!-- hreflang points here… -->
<link rel="alternate" hreflang="es-ES" href="https://example.com/es/producto?ref=nav" />
<!-- …but /es/producto?ref=nav has: <link rel="canonical" href="https://example.com/es/producto"> -->بعد الإصلاح — يشير hreflang إلى عنوان URL الأساسي والمفهرس، فتظل سلسلة الإشارات متصلة:
<link rel="alternate" hreflang="es-ES" href="https://example.com/es/producto" />المشكلة في المثال #4 أنك لا تستطيع رؤيتها من الوسم وحده. تأكد من عنوان URL المفهرس بواسطة URL Inspection قبل أن تثق بأن المشكلة أُصلحت.
جمع hreflang وفحصه بنفسك
هذه الأدوات للفحوص الموضعية والاستخراج عند الحاجة والتحقق من إصلاح قبل الزحف الكامل التالي. يظل الزاحف مصدر الحقيقة على نطاق واسع؛ أما هذه فتغطي ما بين عمليات الزحف.
وحدة تحكم Chrome DevTools — اعرض كل hreflang في الصفحة الحالية
الصق الشيفرة في وحدة التحكم بأي صفحة لسرد إشاراتها ووضع علامة على عناوين URL النسبية إلى البروتوكول أو جذر الموقع:
[...document.querySelectorAll('link[rel="alternate"][hreflang]')]
.map(l => {
const href = l.getAttribute('href');
const bad = /^\/\//.test(href) || /^\/(?!\/)/.test(href);
return `${l.hreflang}\t${href}${bad ? '\t⚠ not fully-qualified' : ''}`;
})
.join('\n') || 'No HTML hreflang tags on this page (check headers / sitemap).';إذا طبعت “No HTML hreflang tags,” فقد تسلّم الصفحة hreflang عبر ترويسة HTTP أو خريطة الموقع. لا ترى وحدة التحكم إلا DOM، لذا افحص المصدرين الآخرين بصورة منفصلة.
Bookmarklet — فحص موضعي لتبادلية العنقود بنقرة واحدة
يجلب كل بديل تسميه الصفحة الحالية ويبلغ عن البدائل التي لا تربط بها في الاتجاه المعاكس. يعمل داخل الأصل نفسه فقط بسبب CORS في المتصفح؛ أما أزواج ccTLD العابرة للنطاقات فتحتاج إلى الزاحف:
javascript:(async()=>{const base=location.href.split('#')[0];const alts=[...document.querySelectorAll('link[rel="alternate"][hreflang]')].map(l=>({lang:l.hreflang,href:l.href})).filter(a=>a.lang!=='x-default');const out=[];for(const a of alts){try{const html=await(await fetch(a.href)).text();const back=/hreflang=["'][^"']*["']\s+href=["']([^"']+)["']/gi;let m,found=false;while((m=back.exec(html))){if(m[1].split('#')[0].replace(/\/$/,'')===base.replace(/\/$/,'')){found=true;break;}}out.push(`${found?'✓':'✗ MISSING RETURN'} ${a.lang} ${a.href}`);}catch(e){out.push(`? ${a.lang} ${a.href} (fetch blocked — cross-origin)`);}}alert(out.join('\n'));})();grep / تعبير نمطي — استخرج hreflang من خريطة موقع أو نسخة HTML محفوظة
استخرج كل إشارة من خريطة موقع XML منزلة أو من تصدير HTML لعملية زحف:
# From an XML sitemap using xhtml:link hreflang
grep -oE 'hreflang="[^"]+"[^>]*href="[^"]+"' sitemap.xml
# From a directory of saved HTML pages — list hreflang value + href per file
grep -rhoE '<link[^>]*hreflang="[^"]+"[^>]*>' ./pages/ \
| grep -oE 'hreflang="[^"]+"|href="[^"]+"'Python — ابنِ مصفوفة التبادلية من تصدير Screaming Frog
حوّل تصديرًا على نمط hreflang_all.csv من Screaming Frog، بأعمدة عنوان URL المصدر وقيمة hreflang وعنوان URL الهدف، إلى مجموعة من الأزواج أحادية الاتجاه ذات رابط الإرجاع المفقود:
import csv
from collections import defaultdict
links = defaultdict(set) # source -> set of targets it points to
with open("hreflang_export.csv", newline="", encoding="utf-8") as f:
for row in csv.DictReader(f):
src, tgt = row["Address"].strip(), row["Occurrence URL"].strip()
if src and tgt and src != tgt:
links[src].add(tgt)
missing = [(a, b) for a, targets in links.items()
for b in targets
if a not in links.get(b, set())]
print(f"{len(missing)} one-way (missing-return) pairs:")
for a, b in missing[:50]:
print(f" {a} -> {b} (no return link)")عدّل أسماء الأعمدة لتطابق ملف التصدير. تمثل المخرجات بالضبط الخلايا غير المتناظرة في مصفوفة وسوم الإرجاع، أي إصلاحات المستوى 1.
أدوات لتدقيق hreflang على نطاق واسع
- returntag (الأداة الأساسية للفحص الموضعي بالرسم/المصفوفة). تحوّل أداتي المجانية عنقود صفحة أو خريطة موقع إلى رسم بياني ومصفوفة تبادلية، ثم تسمي علاقات الإرجاع المفقودة وإصلاحاتها. يفحص وضع Page URL عنقود صفحة، ولا يتحقق وضع Sitemap إلا مما تعلنه خريطة الموقع. استخدمها للتحقيق في عنقود محدد وشرحه، لا بديلًا من زحف الموقع كاملًا.
- Ahrefs Site Audit (على نطاق واسع). يستخرج hreflang من HTML والترويسات وخرائط الموقع، ويجري فحوص التبادلية، ويعرض كل عنقود كرسم شبكة في URL Details > Hreflangs tab مع الروابط المعطلة باللون الأحمر. إنها أسرع طريقة لرؤية العلاقة المعطلة وأسهلها لعرضها على صاحب مصلحة. استخدم Page Explorer لترشيح الصفحات حسب نوع مشكلة hreflang قبل التعمق في الرسوم الفردية.
- Screaming Frog SEO Spider. فعّل Configuration > Spider > Crawl Hreflang، وأضف نطاقات ccTLD الشقيقة ضمن Config > CDNs للتحقق العابر للنطاقات، ثم شغّل Crawl Analysis لملء مرشحات روابط الإرجاع (Missing Return Links وInconsistent Language & Region Return Links وNon-Canonical Return Links وNoindex Return Links وNon-200 Hreflang URLs وUnlinked Hreflang URLs). صدّر عبر Reports > Hreflang. ويعد دليل hreflang لديهم المرجع الحاسم للإعداد.
- Google Search Console — URL Inspection. لا يصلح للتدقيق الجماعي، لأن تقرير International Targeting أزيل ولأن GSC لم يكن يعرض إلا العضو الأساسي من العنقود، لكنه ضروري في الخطوة 5 لتأكيد أن hreflang يشير بعد الإصلاح إلى عنوان URL المفهرس.
- مدققات مجانية أو شبه مجانية للمواقع الصغيرة والفحوص الموضعية — مولد/مختبر وسوم hreflang من Aleyda Solis ومدقق Bill Hunt وأداة Merkle. سماها Gary Illyes من Google أدوات يعرف أنها تعمل جيدًا، مع أن وثائق Google تصرح بأنها لا تصون أدوات hreflang الخارجية ولا تتحقق منها. استخدمها عندما يظل الفحص اليدوي ممكنًا، واحتفظ بالزاحف للحجم الحقيقي، وتعامل مع حكم أي أداة كتشخيص لا كحكم رسمي.
- Bing Webmaster Tools — لا تتحقق من hreflang؛ دقق Content-Language بصورة منفصلة لأسواق Bing.
موارد تستحق وقتك
مقالات ذات صلة كتبتها
- أكثر من 67 % من النطاقات التي تستخدم Hreflang لديها مشكلات (دراسة 374 756 نطاقًا) — دراستي المقدمة في Brighton SEO عام 2023، وهي أكبر دراسة لـhreflang حتى الآن وعماد هذه المنهجية؛ ومنها توزيع الأخطاء وأرقام وسم الإرجاع وx-default.
- Hreflang: الدليل السهل للمبتدئين — دليل التنفيذ من Ahrefs للأساسيات التي يفترض هذا المقال أنك تعرفها.
- دليل المبتدئين إلى SEO التقني — موضع الإشارات الدولية في الصورة التقنية الأوسع.
محاضراتي
- دراسة Hreflang ومشكلات مثيرة للاهتمام — Brighton SEO 2023 (Speaker Deck) — الشرائح التي تستند إليها الدراسة.
- أكثر مشكلات hreflang شيوعًا عبر 374 756 نطاقًا — Brighton SEO، سبتمبر 2023 (YouTube) — المحاضرة نفسها.
- SEO الدولي: الأجزاء التقنية الغريبة — Pubcon Vegas 2019 (SlideShare) — حيث أوضح أن «hreflang يتبع النسخة المفهرسة، لا الرابط الأساسي»، وهي النقطة التي تقود الخطوتين 3 و5.
من أنحاء المجال
- إبلاغ Google بالنسخ الموطنة من صفحتك — مرجع Google الأساسي لـhreflang: التبادلية وعناوين URL المكتملة والرموز المحجوزة.
- حلقة Search Off the Record عن آلية العرض وhreflang — فريق Search Relations في Google، Illyes وSplitt وSassman، عن سبب اقتصار تقارير GSC على الصفحات الأساسية وغياب المدقق وتوليد المواقع الكبيرة متعددة الخصائص معظم الأخطاء.
- كيفية تدقيق Hreflang واختباره (Screaming Frog) — الشرح الحاسم لإعداد كل مرشح.
- دراسة: 31 % من المواقع الدولية تحتوي أخطاء hreflang (Search Engine Land) — دراسة Dan Taylor / SALT.agency المستقلة لـ18 786 نطاقًا، وهي مقارنة مفيدة مع دراستي الأكبر.
- Google تقول إنها ستتجاهل تنفيذ hreflang الخاطئ (Search Engine Roundtable) — نقطة «يُتجاهل ولا يعرّض لعقوبة» التي تعيد ترتيب الفرز بعيدًا عن الذعر.
- رؤى Google: هل يمكن أن تضر وسوم Hreflang الخاطئة بـSEO؟ (Search Engine Journal) — يؤكد النتيجة نفسها.
اختبر نفسك: تدقيق hreflang على نطاق واسع
خمسة أسئلة سريعة عن المنهجية على نطاق واسع. اختر إجابة لكل سؤال ثم تحقق منها.
سجل التغييرات
تم التحديث في 22 أغسطس 2026.
ملخص تحريري وتفاصيل التغيير المسجلة.تفاصيل التغيير
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
المقارنة الكاملة غير متاحة — لم تُؤرشف لقطة سابقة لهذه المراجعة.
تم التحديث في 22 أغسطس 2026.
ملخص تحريري وتفاصيل التغيير المسجلة.تفاصيل التغيير
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
المقارنة الكاملة غير متاحة — لم تُؤرشف لقطة سابقة لهذه المراجعة.
تم التحديث في 13 أغسطس 2026.
ملخص تحريري وتفاصيل التغيير المسجلة.تفاصيل التغيير
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
المقارنة الكاملة غير متاحة — لم تُؤرشف لقطة سابقة لهذه المراجعة.
تم التحديث في 13 أغسطس 2026.
ملخص تحريري وتفاصيل التغيير المسجلة.تفاصيل التغيير
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
المقارنة الكاملة غير متاحة — لم تُؤرشف لقطة سابقة لهذه المراجعة.
تم التحديث في 25 يوليو 2026.
ملخص تحريري وتفاصيل التغيير المسجلة.تفاصيل التغيير
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
المقارنة الكاملة غير متاحة — لم تُؤرشف لقطة سابقة لهذه المراجعة.
تم التحديث في 18 يوليو 2026.
ملخص تحريري وتفاصيل التغيير المسجلة.تفاصيل التغيير
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
-
تفاصيل التغيير متاحة حاليًا باللغة الإنجليزية.
المقارنة الكاملة غير متاحة — لم تُؤرشف لقطة سابقة لهذه المراجعة.