قائمة SEO التقني لمواقع RTL بالعربية والفارسية
بنود SEO التقني التي تفلت كثيرا في مواقع RTL: dir و lang، خصائص CSS المنطقية، طول الـ slug بترميز النسبة المئوية، ZWNJ وأشكال الأرقام.
بقلم Roozbeh Nazari · CEO
النسخ العربية والفارسية هي في معظم المشاريع الطبقة التي تضاف آخرا وتدقق أقل. تبدو بصريا كأنها تعمل، لأن المتصفح يجيد صف النص من اليمين إلى اليسار من تلقاء نفسه. المشكلات لا تتراكم في الطبقة البصرية بل في الوسم وجانب URL، وعادة لا تلاحظ إلا بعد أسابيع من النشر. هذا المقال يرتب البنود التقنية التي تفلت أكثر من غيرها في نسخ RTL.
شرحنا سير التدقيق العام في قائمة تدقيق SEO التقني لدينا؛ هذا المقال هو ملحقها الخاص بـ RTL. أما الموضوع كاملا على الجانب المؤسسي ففي صفحة خدمة SEO التقني لدينا.
dir و lang: لا يحلان بـ CSS
الخطأ الأكثر شيوعا هو إعطاء معلومة الاتجاه في جانب الأنماط فقط. دليل W3C المخصص لهذا الموضوع حاسم في هذه النقطة: لا تستخدم CSS لتطبيق الاتجاه الأساسي في صفحات HTML. والمبرر ليس تقنيا بل دلاليا؛ فلأن معلومة الاتجاه قد تؤثر في معنى المحتوى، يجب أن تكون جزءا من الوسم.
المقابل العملي سطران. إن كان الاتجاه العام للمستند من اليمين إلى اليسار يضاف dir="rtl" إلى وسم html. والدليل نفسه يوصي بكتابة dir على العناصر البنيوية في المستويات الأدنى فقط حين يلزم تغيير الاتجاه الأساسي لتلك الكتلة؛ ولأن الاتجاه يورث من html إلى الأسفل، لا يبقى في معظم الصفحات حاجة إلى وسم إضافي.
أما في جانب lang فالتمييز يفلت من النظر: ar للعربية و fa للفارسية. ولأن اللغتين تستخدمان الأبجدية نفسها، تكثر الإعدادات التي تكتفي بقيمة واحدة للاثنتين. وهذا يفسد طبقة إمكانية الوصول واستهداف اللغة معا.
النص مختلط الاتجاه
حين يدخل اسم علامة تجارية أو وحدة قياس أو URL من اليسار إلى اليمين داخل جملة من اليمين إلى اليسار، قد يختل الترتيب بشكل غير متوقع. في العناوين والأوصاف التعريفية يؤدي هذا إلى تبادل الكلمات لمواضعها بشكل مرئي. والعرض الكلاسيكي هو انزلاق علامة الترقيم إلى الجانب الخطأ حين يقع جزء بالحروف اللاتينية عند نهاية السطر.
طريقة الفحص بسيطة: فتح ثلاثة عناوين تجمع بين اسم علامة إنجليزية ورقم وعلامة ترقيم على جهاز حقيقي وقراءتها. ترى المشكلة في العرض الحقيقي، لا في أدوات المطور في المتصفح.
الـ slug: الحرف الواحد ستة أحرف
أقسى الحدود في مشاريع RTL هنا. الحروف العربية والفارسية تمثل في URL بترميز النسبة المئوية، وكل حرف يشغل ما يصل إلى ستة أحرف. الطول الذي يبدو مريحا في slug بالحروف اللاتينية يضغط على الحد في المقابل العربي للمحتوى نفسه. والـ slug الذي يتجاوز مئتين وأربعين حرفا في حالته المرمزة يسبب لدينا مشكلة في وقت البناء.
كقاعدة، لا تترك الـ slug على الطول الطبيعي للترجمة؛ ولده من العنوان ثم قصره يدويا. ويلزم أتمتة الفحص قبل النشر، لأن slug يبدو قصيرا بالعين قد يكون فوق الحد حين يرمز.
في الجانب الفارسي بند إضافي: قد يتسرب حرف ZWNJ إلى الـ slug. ولأنه غير مرئي لا يلاحظ، ويشغل مكانا حين يرمز وينتج عنوانين مختلفين. استبدال ZWNJ بشرطة أو مسافة عند توليد الـ slug أرخص من كتابة تحويلات لاحقا.
اتساق نقاط الترميز
حرفا الياء والكاف الفارسيان نقطتا ترميز مختلفتان عن نظيريهما العربيين ولا يميزان بالعين. إن كان المحتوى يأتي من مصادر مختلفة، فقد تجتمع نقطتا ترميز مختلفتان في الصفحة نفسها. النتيجة: الكلمة نفسها لا تتطابق في البحث الداخلي، والـ slug تتباعد بصمت، والمقارنات لا تصح.
المكان الصحيح هو تطبيق تطبيع أحادي الاتجاه أثناء الاستيراد وفعل ذلك في لحظة الحفظ. أما التصحيح في لحظة النشر فيكون متأخرا.
خصائص CSS المنطقية
يوصي دليل W3C باستخدام المقابلات المنطقية بدلا من اليسار واليمين للهوامش والمحاذاة؛ وبذلك تتكيف الأنماط من تلقاء نفسها أثناء التوطين. عمليا يضمن هذا ألا تبقى الحشوة اليسرى الثابتة والأيقونات المحاذاة إلى اليسار في الجانب الخطأ في نسخة RTL. لا يبدو هذا بندا من بنود SEO، لكن حين يختل التخطيط يغادر المستخدم الصفحة، ولهذا مقابل قابل للقياس.
الأرقام والتواريخ
في المحتوى العربي والفارسي يمكن كتابة الأرقام بالأرقام العربية المشرقية أو الفارسية. هذه مسألة تفضيل، لكن اختلاط الشكلين في الصفحة نفسها واستخدام الأرقام المحلية في البيانات المنظمة مشكلة منفصلة. الحقول الرقمية في البيانات المنظمة يجب أن تبقى بالشكل المعياري لأن الآلة هي التي ستقرؤها؛ أما استخدام الشكل المحلي في النص الظاهر فحر.
وفي الجانب الفارسي التقويم عنوان مستقل أيضا: إن كان النص يستخدم التاريخ الهجري الشمسي، فيجب أن تبقى حقول التاريخ في جانب الآلة منفصلة ومتسقة.
الخط وتشكيل الحروف والاقتطاع
تنتج الطبقة البصرية في نسخ RTL أخطاء صامتة أيضا. لأن الأبجدية العربية تكتب متصلة، تغير الحروف شكلها بحسب موضعها؛ والخط الذي لا يدعم التشكيل دعما كاملا يعرض النص مقروءا لكن خطأ. وتحتاج الفارسية إضافة إلى ذلك خطا يتضمن الأشكال الصحيحة لحرفي الياء والكاف؛ فالخط المختار للعربية لا يعطي دائما نتيجة صحيحة في الفارسية.
الموضوع الثاني الاقتطاع. عمليات القص بحسب حد الأحرف في حقول العنوان والوصف قد تقسم الكلمة من وسطها في الكتابة المتصلة وتخرج سلسلة غير مقروءة. القص عند حد الكلمة لا الحرف أشد أهمية في جانب RTL منه في الجانب اللاتيني.
الثالث ارتفاع السطر. في العربية والفارسية تشغل امتدادات الحروف العلوية والسفلية مساحة أكبر من الحروف اللاتينية؛ وارتفاع السطر الضيق المضبوط للاتينية يجعل الحروف تتراكب في هاتين اللغتين. يبدو هذا مشكلة جمالية، لكن النص الذي لا يقرأ لا يقرأ.
طريقة تدقيق هذه البنود الثلاثة واحدة: فتح الصفحة على جهاز حقيقي بمحتوى حقيقي. الفحوص التي تجرى بنص بديل لا تظهر أيا من هذه الأخطاء.
hreflang والتبادلية
عند ربط النسخ اللغوية ببعضها لا تتغير القاعدة الأساسية في توثيق جوجل للنسخ المترجمة: يجب أن تشير كل نسخة إلى جميع النسخ بما فيها نفسها، ويجب أن تكون الروابط متبادلة. والخطر الإضافي في جانب RTL هو كتابة عناوين URL المرمزة بالنسبة المئوية في الوسوم في حالة نصف مرمزة؛ فالعنوان نفسه مرمزا في مكان وغير مرمز في آخر يكسر التبادلية بصمت.
وللصيغة المفصلة من هذا العنوان يمكنك الاطلاع على مقال أخطاء hreflang واكتشافها.
قائمة قصيرة قبل النشر
- هل dir في وسم html صحيح، وهل قيمة lang مفصولة إلى ar و fa؟
- هل تقرأ العناوين التي تحتوي جزءا بالحروف اللاتينية قراءة صحيحة على جهاز حقيقي؟
- هل طول الـ slug بترميز النسبة المئوية تحت الحد؟
- هل بقي ZWNJ في الـ slug؟
- هل اختلطت نقاط الترميز العربية والفارسية في المحتوى؟
- هل الأرقام في البيانات المنظمة بالشكل المعياري؟
- هل روابط hreflang متبادلة وبالترميز نفسه؟
إضافة هذه البنود السبعة إلى قائمة فحص النشر تستبق الجزء الأكبر من الأعمال التي تظهر لاحقا في نسخ RTL. معظم البنود قابل للأتمتة؛ أما خطوة القراءة على جهاز حقيقي فلا تؤتمت ويجب إجراؤها يدويا قبل كل نشر.