Scribe

السيو متعدد اللغات في Next.js: روابط hreflang وخرائط الموقع وحلول اللغات البديلة

إعداد عملي لروابط hreflang البديلة، وx-default، وخرائط الموقع المترجمة، والروابط الصديقة المترجمة، وتسلسل اللغات البديلة في مواقع Next.js متعددة اللغات.

View as Markdown

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

إليك القائمة التي نطبقها، وكيف يولد Scribe معظمها من المحتوى الذي يعرفه بالفعل.

روابط hreflang البديلة في كل صفحة

يجب أن تعلن كل صفحة مترجمة عن جميع الصفحات المشابهة لها، بما في ذلك نفسها، بالإضافة إلى x-default يشير إلى النسخة المخصصة للغات غير المتطابقة. في Next.js، يتم ذلك من خلال حقل alternates.languages في بيانات الصفحة الوصفية.

الجزء المزعج هو الروابط الصديقة المترجمة. إذا كان /docs/getting-started هو /fr/docs/premiers-pas باللغة الفرنسية، فيجب أن تستخدم روابطك البديلة الرابط المترجم وليس الإنجليزي مع بادئة اللغة. يخزن Scribe الرابط المترجم مع كل ترجمة، ويعيد المساعد alternates() في بيئة التشغيل الخريطة الكاملة لكل مستند، لذا يكون كود البيانات الوصفية عبارة عن حلقة تكرارية بدلاً من جدول بحث تديره يدويًا.

هناك قاعدتان تمنعان الأخطاء الشائعة:

  • يجب أن تكون روابط hreflang متبادلة. إذا أدرجت الصفحة الفرنسية الصفحة الألمانية، فيجب أن تدرج الصفحة الألمانية الصفحة الفرنسية. إنشاء كلا الجانبين من نفس المصدر يضمن ذلك.
  • يجب أن تشير الروابط الأساسية (Canonical) إلى نفسها لكل لغة. الرابط الأساسي للصفحة الفرنسية هو الرابط الفرنسي. توجيه الرابط الأساسي لكل لغة إلى الإنجليزية يخبر جوجل بإسقاط ترجماتك من الفهرس.

خريطة موقع تفهم اللغات

يجب أن يحمل كل رابط في خريطة الموقع نفس الروابط البديلة بالإضافة إلى x-default. يعيد sitemapEntries() في Scribe إدخالاً واحدًا لكل مستند مع جميع روابط اللغات وlastmod المستمد من الحقول المدمجة publishedAt وupdatedAt، لذا تظل خريطة الموقع دقيقة بدون تواريخ يدوية.

يجب ألا تختفي المستندات التي تحيلها للتقاعد ببساطة. يحتفظ Scribe بعمليات إعادة التوجيه في ملف _redirects.json لكل نوع، ويتم توجيه الروابط المتقاعدة (301) إلى بديلها في كل لغة، مما يحافظ على قيمة الروابط التي كسبتها.

اللغات البديلة بدلاً من أخطاء 404

ما الذي يجب أن يعرضه /fr-CA/guide إذا ترجمت الصفحة إلى الفرنسية ولكن ليس إلى الفرنسية الكندية؟ إرجاع خطأ 404 يهدر الترجمة التي لديك، بينما تقديم الإنجليزية بصمت يربك القراء.

يحل Scribe هذا من خلال سلسلة بدائل تلقائيًا: تعود اللغة الإقليمية إلى لغتها الأساسية قبل الإنجليزية. يجرب fr-CA اللغة fr ثم en. يجرب zh-Hant-TW اللغة zh-Hant ثم zh ثم en. تبلغ بيئة التشغيل عن اللغة التي تم عرضها فعليًا في actualLocale، لذا يمكن لتصميمك تصنيف الصفحة بصدق، وتتضمن المتغيرات المعالجة مسبقًا الروابط البديلة لتكون الصفحات موجودة في وقت البناء.

البيانات الوصفية هي محتوى أيضًا

تعتبر العناوين والأوصاف الوصفية مساحة للتصنيف، لذا يجب ترجمتها بنفس العناية كالنص الأساسي. في Scribe، هي حقول عادية قابلة للترجمة في البيانات الوصفية، يتم التحقق منها مثل أي شيء آخر. تم تصميم موجه الترجمة لإعادة الصياغة الإبداعية بدلاً من الترجمة الحرفية، وهو أمر مهم لـ 60 حرفًا من علامة العنوان أكثر من أي مكان آخر.

الخلاصة

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

شاهد كيف تتكامل الأجزاء في دليل واجهة برمجة تطبيقات بيئة التشغيل أو ابدأ من دليل البداية.

السيو متعدد اللغات في Next.js: روابط hreflang وخرائط الموقع وحلول اللغات البديلة · Scribe