hreflang للمواقع ثنائية اللغة: التنفيذ والتحقق

hreflang للمواقع ثنائية اللغة: التنفيذ والتحقق

hreflang سهل الشرح وسهل الخطأ. هذا هو التنفيذ الذي يصمد، والـ Crawl الذي يثبته، لموقع بالعربية والإنجليزية.

hreflang سطر HTML واحد يقول: «هذه الصفحة موجودة أيضاً بهذه اللغة الأخرى على هذا العنوان». سهل الشرح، وفي معظم المواقع ثنائية اللغة التي نراجعها يكون خاطئاً بواحدة على الأقل من خمس طرق متوقعة. وثمن الخطأ أن تتنافس النسختان اللغويتان، أو تظهر النسخة الخطأ في النتائج، أو يتجاهل محرك البحث المجموعة كلها بصمت. هذا هو التنفيذ الذي يصمد، والـ Crawl الذي يثبته.

قرّر بنية الروابط أولاً

hreflang يصف روابط، فلا بد أن تستقر الروابط قبل أن تكتب أي Tag.

لموقع شركة ثنائي اللغة، البنية التي تحفظ أكثر ما يمكن وتربك أقل ما يمكن هي: اللغة الأساسية على الجذر بلا بادئة، واللغة الثانية في مجلد فرعي.

https://example.com/services/        الإنجليزية
https://example.com/ar/services/     العربية

ثلاثة أسباب. كل رابط إنجليزي قائم يحتفظ بعنوانه وبقوة روابطه. والمجلد يُظهر اللغة للبشر وللزواحف دون سمعة منفصلة كما في الـ Subdomain. والاقتران آلي: أزل /ar/ أو أضفه فتحصل على التوأم.

لا تضع اللغة في معامل (?lang=ar)، ولا تبدّل اللغة بـ Cookie أو بإعداد المتصفح دون تغيير الرابط. يجب أن يتلقّى الزاحف والإنسان دائماً المستند نفسه على العنوان نفسه؛ فالصفحة التي تغيّر لغتها بحسب من يطلبها لا يمكن فهرستها بثقة بأي من اللغتين.

اختر طريقة واحدة لإصداره

هناك ثلاثة مواضع صحيحة لـ hreflang. اختر واحداً والتزم به عبر الموقع كله.

  1. Tags من نوع <link> في الـ Head. الأكثر شيوعاً، والأسهل فحصاً في View Source. كل صفحة تذكر كل نسخها.
  2. الـ XML Sitemap، ببدائل xhtml:link على كل مدخل. أفضل للمواقع الضخمة حيث يصعب إضافة Tags إلى القوالب.
  3. HTTP Headers، للملفات غير HTML مثل PDF.

لموقع على Next.js أو WordPress أو ما شابه، استخدم Tags الـ Head، وفكّر في إصدارها في الـ Sitemap أيضاً؛ الاثنان معاً مقبولان ما داما متفقين.

القواعد التي تجعله يعمل

كل صفحة تذكر كل النسخ، بما فيها نفسها

على الصفحة الإنجليزية:

<link rel="alternate" hreflang="en" href="https://example.com/services/" />
<link rel="alternate" hreflang="ar" href="https://example.com/ar/services/" />
<link rel="alternate" hreflang="x-default" href="https://example.com/services/" />

وعلى الصفحة العربية، الأسطر الثلاثة نفسها بالضبط. ليس «الأخرى فقط»، بل كلها. الصفحة التي تُغفل نفسها تكسر المجموعة.

الأزواج يجب أن تكون متبادلة

إن أشارت الصفحة الإنجليزية إلى العربية، فيجب أن تشير العربية إليها بالمقابل. الإشارات أحادية الاتجاه تُتجاهل. وهذا هو الخطأ الذي ينتجه عطل في القالب أكثر من غيره: الصفحات الإنجليزية تذكر النسختين، والعربية تذكر نفسها فقط.

فقط للصفحات الموجودة فعلاً باللغتين

إن لم يكن لمقال إنجليزي نسخة عربية، فلا يجوز أن تدّعي الصفحة الإنجليزية وجودها. توجيه hreflang إلى صفحة تقدّم محتوى إنجليزياً تحت /ar/ لأن الـ CMS «يرجع إلى الإنجليزية» أسوأ من عدم وجود Tag أصلاً: يجد محرك البحث المحتوى نفسه على رابطين، أحدهما بعلامة خاطئة. القاعدة في الكود: أصدر البديل العربي فقط حين يوجد المستند العربي.

استخدم روابط مطلقة، وهي الـ Canonical

روابط https:// كاملة، وبالنسخة التي تشير إليها الصفحة كـ Canonical. لا توجّه hreflang أبداً إلى رابط يعيد التوجيه، ولا إلى نسخة http، ولا إلى نسخة بشرطة مائلة في النهاية أو بدونها تختلف عن الـ Canonical. الـ Redirect في هدف hreflang يكسر ذلك الزوج.

رموز لغة لا رموز منطقة، إلا إن قصدت ذلك

en و ar. إضافة منطقة (ar-SA و en-US) تخبر محرك البحث أن الصفحة مخصّصة تحديداً لسكان ذلك البلد، فيضيق الجمهور إلى هؤلاء الزوار وتصبح الصفحة مطابقة أضعف لكل من يقرأ اللغة في مكان آخر. استخدم المناطق فقط حين تقدّم فعلاً محتوى مختلفاً لكل بلد، كأسعار أو منتجات مختلفة.

x-default صفحة حقيقية

x-default يسمّي الصفحة التي تُعرض حين لا تطابق لغة الزائر أي بديل. يجب أن يكون أحد البدائل المذكورة، وعادةً رابط اللغة الأساسية. ويجب ألا يكون صفحة اختيار لغة، وألا يشير إلى Redirect.

أنماط التنفيذ

Helper واحد لكل صفحة

نمط الفشل في المواقع المخصّصة أن يضيف المطوّر hreflang إلى أربعة قوالب وينسى الاثني عشر الأخرى. ابنِ دالة واحدة تُعطى المسار وما إذا كان التوأم العربي موجوداً، فتعيد المجموعة كاملة، واستدعها من Metadata كل صفحة. على موقع Next.js هي Helper باسم pageMeta تستخدمه كل الصفحات؛ وعلى WordPress هي مخرجات Plugin تعدد اللغات، التي تتحقق منها بدل أن تثق بها.

مبدّل اللغة يجب أن يربط إلى التوأم

رابط اللغة الظاهر في الصفحة يجب أن يذهب إلى الصفحة نفسها باللغة الأخرى، لا إلى الصفحة الرئيسية للغة الأخرى، ولا عبر Redirect. محركات البحث تستخدمه للتحقق المتقاطع، والبشر يستخدمونه باستمرار.

أبعد hreflang عن الصفحات المحجوبة عن الفهرسة

الصفحة التي أخبرت الزاحف ألا يفهرسها يجب ألا تشارك في مجموعة hreflang. إن كان موقع الـ Staging أو مسودة لغة محجوبة بـ noindex، فأزلها من البدائل حتى تصبح حية.

الأخطاء الشائعة وكيف تبدو

الخطأالعرضالإصلاح
الصفحات العربية تذكر نفسها فقطأخطاء «No return tags» في Search Consoleأصدر المجموعة كاملة من Helper واحد على كل صفحة
hreflang يشير إلى رابط يعيد التوجيهالأزواج تُتجاهل بصمتأشر إلى رابط الـ Canonical بالشرطة المائلة الصحيحة
ar-SA على موقع يخدم كل قرّاء العربيةظهور ضعيف للاستعلامات العربية خارج تلك المنطقةاستخدم ar
بديل عربي على صفحات ترجع إلى الإنجليزيةمحتوى مكرّر عبر اللغاتأصدر ar فقط حين يوجد المستند العربي
x-default على صفحة اختيار لغةصفحة الاختيار تتصدّر بدل صفحة حقيقيةوجّه x-default إلى صفحة اللغة الأساسية
hreflang موجود لكن <html lang> خاطئإشارات متضاربة؛ اتجاه خاطئ على الصفحات العربيةاضبط lang و dir من الـ Locale
بدائل الـ Sitemap تخالف Tags الـ Headتعليقات غير متسقة، بعضها يُتجاهلولّد الاثنين من مصدر حقيقة واحد

تحقّق بـ Crawl لا بلقطة شاشة من Plugin

صفحة إعدادات Plugin تعدد اللغات التي تقول «hreflang: مفعّل» ليست دليلاً. الدليل هو ما يحتويه الـ HTML.

  1. افحص الموقع بـ Crawler يعرض hreflang (في Screaming Frog تبويب مخصّص). صدّر تقرير hreflang.
  2. ابحث عن: روابط عودة ناقصة، وأهداف غير Canonical، وأهداف تعيد أي شيء غير 200، وصفحات بلا hreflang إطلاقاً، و x-default غير متسق.
  3. افتح تقرير الصفحات في Search Console وابحث عن «Duplicate, Google chose different canonical than user» على أزواج اللغات؛ فهكذا تبدو مجموعة hreflang متجاهَلة عملياً.
  4. اجلب ثلاث صفحات من كل قالب بكل لغة بـ curl واقرأ الـ Head. القوالب تكذب أقل من لوحات التحكم.
  5. أعد الـ Crawl بعد كل نشر يمسّ التوجيه. hreflang ينكسر حين يغيّر أحدهم قاعدة الشرطة المائلة، لا حين يعدّل أحدهم محتوى.

ما نفعله في المواقع التي نبنيها

Helper واحد يصدر الـ Canonical و hreflang و x-default لكل مسار، ويأخذ علامة تحدّد ما إذا كان التوأم العربي موجوداً حتى لا يكون الـ Tag كذبة أبداً. والـ Sitemap يُولَّد من البيانات نفسها. و lang و dir يُحسبان من الـ Locale ولا يُثبّتان في الكود أبداً. وبعد كل نشر يمسّ التوجيه يعاد الـ Crawl، لأن hreflang هو الجزء من الموقع ثنائي اللغة الذي ينكسر بصمت ويكلّف أكثر حين ينكسر.

أسئلة

هل أحتاج hreflang إذا كان موقعي بالعربية والإنجليزية فقط؟

نعم. hreflang هو ما يخبر محرك البحث أن الصفحة العربية هي النسخة العربية من الصفحة الإنجليزية لا نسخة مكرّرة ولا مستنداً منفصلاً. بدونه قد تتنافس النسختان على الاستعلام نفسه، وقد تظهر النسخة الخطأ.

هل أستخدم ar أم ar-SA في hreflang؟

استخدم رمز اللغة وحده (ar و en) ما لم تقدّم محتوى مختلفاً فعلاً لكل بلد. رموز المنطقة تضيّق الجمهور: صفحة ar-SA مطابقة أضعف لقارئ عربي في مكان آخر. رموز اللغة وحدها تغطي كل من يقرأ تلك اللغة.

إلى أين يجب أن يشير x-default؟

إلى النسخة التي تريد عرضها لزائر لا تقدّم لغته. في معظم مواقع الشركات ثنائية اللغة هي الصفحة الإنجليزية. يجب أن تكون صفحة حقيقية لا شاشة اختيار لغة، وأن تكون واحدة من البدائل المذكورة أصلاً.

صفحات ذات صلة

اعمل مع Alnitak

تحليلنا يتحقق من كل زوج hreflang في موقعك بـ Crawl ويخبرك أيها يتجاهله محرك البحث ولماذا.

تحليل Technical SEO ثنائي اللغةمن 1,700 دولار (5 إلى 7 أيام)

اطلب هذه الباقة عبر WhatsAppشاهد الباقاتتواصل معنا

مقالات ذات صلة

5 دقائق للقراءة

كيف يبحث المشتري B2B الناطق بالعربية: النية، واللهجة، وخرائط الكلمات ثنائية اللغة

صفحة الخدمة بالإنجليزية فقط تفوّت الاستعلامات التي تبدأ بها محادثة مشتريات بالعربية. هكذا تبدو تلك الاستعلامات، ولماذا لا تجدها ترجمة كلماتك الإنجليزية، وكيف تربطها بصفحات تحوّل.

اقرأ المزيد
6 دقائق للقراءة

قائمة تحقق لموقع عربي بـ RTL: الخطوط، والنص المختلط، والنماذج، والأرقام، والـ SEO

معظم المواقع العربية مواقع إنجليزية استُبدل نصها. هذه القائمة تغطي ما يجب أن يتغيّر فعلاً: الاتجاه، والخطوط، والنص المختلط، والنماذج، والأرقام، وإشارات الـ SEO التي يقرأها الزاحف.

اقرأ المزيد