تحسين محرّكات البحث (SEO) ليس سحراً ولا خدعة، بل ببساطة: مساعدة Google على فهم موقعك والوثوق به ليعرضه للباحثين عمّا تقدّمه. أغلب المكاسب تأتي من أساسيات تقنية ومحتوائية يمكن لأي صاحب موقع تطبيقها. إليك خارطة طريق عملية مرتّبة.
1. عنوان ووصف لكل صفحة
وسم <title> هو أهمّ عنصر منفرد. اجعله فريداً لكل صفحة، واضحاً، ويحوي الكلمة المفتاحية في بدايته (نحو 50–60 حرفاً). أما meta description فهو الإعلان الذي يظهر تحت العنوان في نتائج البحث؛ اكتبه جذّاباً ودقيقاً (نحو 150 حرفاً). لا يرفع الترتيب مباشرة، لكنه يرفع نسبة النقر.
2. عناوين هيكلية منطقية (H1–H3)
لكل صفحة <h1> واحد يصف موضوعها، ثم <h2> للأقسام و<h3> للتفريعات. هذا التسلسل يساعد المحرّك على فهم بنية المحتوى، ويحسّن إمكانية الوصول لقارئات الشاشة. لا تستعمل العناوين لمجرّد تكبير الخط — استعملها للمعنى.
3. خريطة الموقع وملف robots
ملف sitemap.xml يعطي المحرّك قائمة بكل صفحاتك المهمّة وأولويّاتها، فيُسرّع اكتشافها. وملف robots.txt يوجّه الزواحف: ما الذي يُفهرس وما الذي يُستثنى (مثل لوحة التحكّم). تأكّد أن خريطة الموقع تشير إلى نطاقك الفعلي، وأنّها مُسجّلة في Google Search Console.
canonical أو خريطة الموقع إلى نطاق مختلف عن نطاقك الحقيقي. عندها يظنّ Google أنّ «النسخة الأصلية» في مكان آخر فيتجاهل صفحاتك. اجعلها كلّها تشير لنطاقك الواحد المعتمد.
4. الروابط القانونية (Canonical)
حين يكون لنفس المحتوى أكثر من رابط (مع/بدون www، نسخة معاينة…)، يخبر <link rel="canonical"> المحرّكَ بالرابط «الرسمي» الذي يجب اعتماده. هذا يمنع مشكلة «المحتوى المكرّر» التي تشتّت قوّة صفحاتك. اختر نطاقاً واحداً (مثلاً بدون www) واجعل الباقي يعيد التوجيه إليه.
ومتى يكون canonical حرجاً فعلاً؟ في حالتين ملموستين لا في كل صفحة. الأولى: صفحة واحدة يمكن الوصول إليها بأكثر من مسار — ملف يُكتب في public/guide/week-1/index.html يمكن طلبه بـ/guide/week-1/ وبـ/guide/week-1 وبـ/guide/week-1/index.html: محتوى واحد بثلاثة روابط، والمحرّك لا يعرف أيّها تريد إلا أن تخبره. والثانية: محتوى متشابه بين نطاق ونطاق فرعي — صفحة «سياسة الخصوصية» في التطبيق ونسخة منها داخل طبقة المحتوى تعني نسختين تتنافسان على نفس العبارة. في المشروع الذي أشرحه بعد قليل حُلّت الثانية بقرار أبسط من canonical: لم تُولَّد صفحتا «الخصوصية» و«عن التطبيق» داخل الدليل أصلاً، بل يشير إليهما فهرس الدليل وتذييله في موضعهما الأصلي. منع التكرار من المصدر أنظف من ترقيعه بعد وقوعه.
5. المحتوى هو الملك
لا تقنية تعوّض غياب المحتوى. Google يكافئ الصفحات التي تقدّم قيمة أصلية وكافية تجيب فعلاً عن سؤال الباحث. اكتب بعمق، بلغتك، وبتجربتك. تجنّب المحتوى المنسوخ أو الرقيق (صفحة بجملتين)، فهو أكثر أسباب ضعف الترتيب — وأحد أشهر أسباب رفض برامج الإعلانات أيضاً.
6. الروابط الداخلية
اربط صفحاتك ببعضها بروابط نصّية ذات معنى («اقرأ دليل الأداء» بدل «اضغط هنا»). هذا يوزّع قوّة الصفحات، ويبقي الزائر أطول، ويساعد الزاحف على اكتشاف كل المحتوى. كل مقال يجب أن يقود إلى مقال أو صفحة ذات صلة.
7. السرعة والجوال
Google يعتمد فهرسة «الجوال أولاً»، أي يقيّم نسخة الجوال أساساً. تأكّد أن الموقع متجاوب ويُقرأ بسهولة على الهاتف، وأنّه سريع — فالسرعة عامل ترتيب مباشر. (راجع دليل تحسين الأداء لتفاصيل عملية).
8. البيانات المنظّمة (Structured Data)
البيانات المنظّمة بصيغة JSON-LD (من Schema.org) تشرح لِـGoogle معنى محتواك: هل هذه صفحة مقال؟ منتج؟ سؤال شائع؟ تعريف بشخص؟ هذا قد يمنحك «نتائج غنيّة» (Rich Results) — نجوم تقييم، أسئلة قابلة للطيّ، معلومات إضافية — ترفع ظهورك ونسبة النقر. ابدأ بأنواع بسيطة مثل Article وBreadcrumbList وFAQPage، وتحقّق منها بأداة «اختبار النتائج الغنية» من Google.
وعملياً، أقلّ نوع Article نافع يحوي هذه الحقول بالضبط: headline للعنوان، وdescription للوصف، وinLanguage للغة (وهي ar في المحتوى العربي)، وauthor للكاتب، وpublisher للناشر، وdatePublished لتاريخ النشر، وdateModified لتاريخ آخر تعديل. والشرط الذي يُغفَل كثيراً: يجب أن تكون هذه القيم مطابقة لما يراه الزائر في الصفحة فعلاً. عنوان في البيانات المنظّمة يخالف <h1>، أو dateModified يحمل تاريخ اليوم بلا تعديل حقيقي، أو وصف يَعِد بما لا تحويه الصفحة — كلّها تُصنّف تضليلاً هيكلياً، وعقوبتها إسقاط النتائج الغنيّة عن الموقع كلّه لا عن الصفحة وحدها. البيانات المنظّمة وصفٌ للصفحة لا دعاية لها.
9. السمعة والخبرة (E-E-A-T)
يقيّم Google جودة المحتوى عبر مبدأ E-E-A-T: الخبرة، التخصّص، الموثوقية، والجدارة بالثقة. عزّزها عملياً بـ:
- صفحة «من نحن» واضحة ووسيلة تواصل حقيقية.
- ذكر اسم الكاتب وخبرته في المقالات.
- محتوى دقيق ومُحدَّث، وروابط لمصادر موثوقة عند الحاجة.
- روابط خلفية طبيعية من مواقع ذات صلة (لا تشترِها أبداً).
الثقة تُبنى ببطء، لكنها أكثر ما يميّز المواقع التي تصمد في الصدارة.
10. تتبّع الأداء عبر Search Console
ما لا يُقاس لا يتحسّن. أداة Google Search Console مجانية وتُريك: ما الكلمات التي يصل بها الناس إليك، أيّ صفحات تُفهرَس وأيّها بها مشكلات، ومتوسّط ترتيبك ونسبة النقر. أرسل خريطة موقعك إليها، وراجعها شهرياً لتطوّر ما يعمل وتُصلح ما لا يُفهرَس.
ما فعلناه في مشروع حقيقي: من صفحة واحدة إلى ٥١ صفحة مفهرسة
كل ما سبق يبقى نظرياً حتى يصطدم بمشروع. المشروع هنا تطبيق لمتابعة الحمل يعمل على نطاق فرعي، وكان مبنياً كتطبيق صفحة واحدة: ملف index.html واحد، وجافاسكربت يبني كل شيء بعد الإقلاع — الأسابيع والمقالات والقوائم والتنقّل. النتيجة أن الموقع بكامله كان يملك عنواناً واحداً ووصفاً واحداً ورابطاً واحداً لعشرات آلاف الكلمات، لأن المحتوى كلّه محفوظ داخل مصفوفات جافاسكربت في ملف التطبيق ولا يوجد منه حرف واحد في HTML المُرسَل أوّل مرّة.
هذه أشهر علّة سيو في التطبيقات الحديثة، ومنشؤها خلط بين مفهومين: محرّك البحث لا يرتّب «المواقع» بل يرتّب الصفحات. وغياب الصفحة يعني غياب كل ما يُبنى عليها: لا عنوان، ولا وصف، ولا نصّ يطابق عبارة البحث، ولا رابط يمكن عرضه في النتائج. وحتى مع تنفيذ Google للجافاسكربت في كثير من الحالات، تبقى العلّة قائمة لأن المحتوى كلّه على رابط واحد، فلا شيء يُعرَض لباحثة عن موضوع بعينه من بين أربعين موضوعاً.
ولم يكن الحلّ كتابة صفحات بيدنا — لأنها ستتقادم بعد أوّل تعديل في التطبيق وتصير أسوأ من غيابها. الحلّ سكربت بناء (tools/build-seo.js) يولّد صفحات HTML ثابتة من نفس البيانات التي يقرأها التطبيق. ومخرجاته الفعلية: صفحة فهرس للدليل، و٤٠ صفحة (صفحة مستقلّة لكل أسبوع من ١ إلى ٤٠)، وعشر صفحات مواضيع وسياسات — أي ٥١ صفحة، تُكتب كلٌّ منها في مسار على هيئة public/<slug>/index.html ليكون رابطها نظيفاً بلا امتداد ولا معاملات.
وسرّ عدم التقادم في طبقة وسيطة صغيرة (tools/seo-data.js) تقرأ ملف التطبيق وتقتطع منه كتل البيانات نصّياً بين علامتين معلومتين، ثم تُقيّمها في بيئة vm معزولة بلا صلاحيات. لا نسخة ثانية من المحتوى، ولا مزامنة يدوية، ولا انجراف بين ما يقرؤه الزائر في التطبيق وما يقرؤه الزاحف في الصفحة. والأرقام المستخرجة في آخر بناء تعطي حجم ما نتحدّث عنه: ٤٠ أسبوعاً، و١٢ طعاماً آمناً، و١٢ ممنوعاً، و٧ تُؤكل بحذر، و٧ تمارين، و١٠ علامات خطر، و١٥ مصطلحاً طبياً، و٣٣٧ اسم مولود (١٧١ للبنات و١٦٦ للأولاد). تعديل جملة واحدة في بيانات التطبيق يظهر في الصفحة الثابتة عند البناء التالي، بلا لمس أي ملف HTML.
ولكل صفحة مولّدة ستّة عناصر سيو تُبنى آلياً:
- عنوان فريد مركّب من بيانات الصفحة نفسها، على نمط «الأسبوع ٢٢ من الحمل: تطور الجنين وأعراض الأم» — فلا يتكرّر عنوان بين ٥١ صفحة.
- وصف فريد مبني من نصّ الصفحة ومقتطع عند ١٥٨ حرفاً، وهو حدّ مقصود حتى لا يُقصّ الوصف في نتائج البحث بنقاط.
- رابط قانوني مبني من ثابت نطاق واحد في أعلى الملف؛ فما دام النطاق يُكتب مرّة واحدة، يستحيل أن تشير صفحة إلى نطاق مختلف.
- بيانات منظّمة في
@graphواحد يضمّ نوع الصفحة —Articleللمواضيع، وCollectionPageللفهرس، وWebPageللسياسات — معBreadcrumbListلمسار التنقّل. - روابط داخلية تلقائية: كل أسبوع يربط سابقه ولاحقه، والفهرس يربط الأربعين جميعاً، فلا تبقى صفحة يتيمة لا يصلها الزاحف.
- ترميز المحارف الخاصة بدالّة تُبدّل
&و<و>والاقتباسات، وأخرى تطوي المسافات لنصوص البيانات المنظّمة — فنصّ عربي فيه اقتباس واحد غير مُرمَّز يكسرJSON-LDبالكامل ويُسقط الصفحة من النتائج الغنيّة بلا أي رسالة خطأ.
ومكسب جانبي لم يكن مقصوداً: هذه الصفحات تُخدَم كملفات ثابتة بلا أي قراءة من قاعدة البيانات. فحين تنجح الفهرسة وتتضاعف الزيارات، لا تتحوّل الزيارة إلى فاتورة — وهي مشكلة حقيقية في المشاريع التي تبني كل صفحة من قاعدة بيانات عند كل طلب (لتفصيلها راجع ضبط تكلفة Firestore).
خريطة الموقع وrobots: مولّدة لا مكتوبة
الخطوة نفسها في السكربت تكتب sitemap.xml وrobots.txt مع كل بناء. والسبب أن خريطة الموقع المكتوبة بيدٍ تكذب بهدوء: تُنشر صفحة فتُنسى إضافتها، وتُعدَّل صفحة فيبقى lastmod على تاريخ قديم، وتُحذف صفحة فيبقى رابطها يقود الزاحف إلى خطأ ٤٠٤. أما الخريطة المولّدة فتمشي على قائمة الصفحات التي كُتبت فعلاً على القرص في هذا البناء، فلا يمكن أن تُدرِج صفحة غير موجودة ولا أن تُهمل صفحة موجودة. القائمة ليست وصفاً للموقع، بل هي الموقع.
والقيم مشتقّة آلياً كذلك: lastmod يأتي من تاريخ البناء لا من ذاكرة أحد، والأولوية تُحسَب من نوع الرابط — ١٫٠ للجذر، و٠٫٩ لفهرس الدليل، و٠٫٨ لصفحات الأسابيع، و٠٫٧ لما بقي. هذه القيم إشارات لا أوامر، لكن كونها مشتقّة يضمن أنها لا تناقض الواقع.
وللمقارنة الصادقة: خريطة هذا الموقع الذي تقرأ عليه (٢٥ رابطاً) ما تزال مكتوبة يدوياً، وأثر ذلك ظاهر لمن يفتحها — مقالات تحمل lastmod أقدم من آخر تعديل حقيقي عليها، وأخرى تشترك في تاريخ واحد لأنها حُدِّثت جملةً بحثاً وإبدالاً. لا يضرّ هذا كثيراً في ٢٥ رابطاً، ويصير فوضى في ٥١، ويستحيل ضبطه في ٥٠٠.
أمّا robots.txt المولّد فقراره كان التقليل المتعمَّد إلى ثلاثة أسطر:
User-agent: *Allow: /Sitemap: https://wsn.khccn.com/sitemap.xml
ولا سطر Disallow واحد للوحة الإدارة — وهذا اختيار لا إهمال. فملف robots.txt عامّ يقرؤه أي أحد بلا صلاحية، وكتابة مسار لوحة الإدارة فيه تكشفه ولا تحميه؛ هو أقرب إلى لافتة تدلّ على الباب المخفيّ. والحماية الحقيقية طبقتان: وسم noindex في صفحة الإدارة نفسها ليمنع الفهرسة، وقواعد صلاحيات على قاعدة البيانات لتمنع الوصول أصلاً (وهي المسألة الحقيقية، وتفصيلها في قواعد Firestore الآمنة عملياً). في المقابل، ملف robots اليدوي لهذا الموقع يسرد مسار لوحة التحكّم صراحةً — تنازل مقبول في موقع بسيط، لكن ينبغي أن يعرف صاحبه أنه إخفاء لا تأمين.
ونقطة عملية أخرى في الملف نفسه: زاحف الإعلانات منفصل عن زاحف البحث. فإن كنت تستخدم برنامج إعلانات فاسمح له صراحةً بسطرين لـMediapartners-Google وAdsBot-Google، لأن حجبهما — ولو ضمناً بقاعدة عامّة — يعطّل مطابقة الإعلانات مع محتوى الصفحة فتظهر فتحات فارغة أو إعلانات لا صلة لها بالموضوع، ويصعب تشخيص السبب لأن لا شيء في لوحة الإعلانات يشير إلى robots.txt.
النطاق الفرعي يُعامَل كموقع مستقلّ
ظنّ شائع أن النطاق الفرعي يورث سمعة النطاق الأمّ وفهرسته فيبدأ سباقه من منتصف الطريق. عملياً يعامله محرّك البحث كـموقع مستقلّ تقريباً، وعلى ذلك تُبنى ثلاث نتائج ملموسة لا يجوز إغفالها:
- ملف
robots.txtخاصّ به. الملف يُقرأ لكل «أصل» على حدة (المخطّط والمستضيف والمنفذ)، ويُطلب من جذر النطاق الفرعي نفسه؛ فملفُ النطاق الأمّ لا يحكم النطاق الفرعي أبداً، لا سماحاً ولا منعاً. - خريطة موقع خاصّة به. ولهذا يكتب المولّد الخريطة على جذر النطاق الفرعي بروابط مطلقة تبدأ بنطاقه هو، لا بنطاق الموقع الأمّ. وخريطةٌ تُدرِج روابط من مستضيف آخر تُعَدّ خريطة «متعدّية النطاق» وتُتجاهل عادةً إلا بإجراء تحقّق خاصّ.
- إرسال منفصل في أدوات المشرفين. النطاق الفرعي مِلكية مستقلّة في Search Console، لها تحقّقها وتقاريرها؛ فإضافة الموقع الأمّ لا تُدرِج الفرعي، ومن ينتظر ظهور صفحات الفرعي في تقرير الأمّ ينتظر إلى الأبد ثم يستنتج أن الفهرسة فشلت.
والنتيجة الأصعب أن السمعة تُبنى من الصفر: الظهور والنقرات والترتيب كلّها تُحسَب للنطاق الفرعي وحده، ولا ينتقل إليه من رصيد النطاق الأمّ إلا بمقدار ما يربطه به من روابط حقيقية. ولهذا لو كان القرار قابلاً للمراجعة من البداية، فوضع طبقة المحتوى في مسار داخل النطاق الأمّ أوفر من وضعها على نطاق فرعي.
الخطأ الذي كشفه المدقّق: ٨٩٧ فحصاً ناجحاً وخطأ واحد
التوليد يحلّ مشكلة ويفتح باب خطأ من نوع جديد: العطب لا يقع في صفحة واحدة بل يُنسَخ ٥١ مرّة. ولهذا كُتب مدقّق مرافق (tools/seo-validate.js) لا يعدّل شيئاً، بل يقرأ الناتج ويفشل عند أوّل خلل. وما يفحصه فعلاً: صلاحية JSON-LD بمحاولة تحليله لا بالنظر إليه، وتفرّد الرابط القانوني في كل الصفحات، وتطابقه مع مسار الصفحة التي يقع فيها، وتوازن الوسوم، ووجود رابطَي السابق والتالي في كل أسبوع، وربط الفهرس للأربعين. وأذكى فحوصه قائمة نصوص محرّمة تدلّ على قالب انكسر: [object Object]، وundefined، وNaN، وعلامة قالب نصّي لم تُستبدَل. والأخير هو الفخّ الحقيقي: قالب لم يُنفَّذ يُنتج صفحة سليمة الشكل تحمل شيفرة خامّة في عنوانها، ولا يلاحظها إلا من يقرأ العنوان في نتائج البحث بعد أسبوعين.
ثم كشف المدقّق خطأً في نفسه. تشغيله الآن يعطي بالحرف: ٨٩٧ فحصاً ناجحاً، وخطأ واحد — «عدد روابط خريطة الموقع ٥٢ والمتوقّع ٤٩». والسبب أن المدقّق يحمل قائمة يدوية بالصفحات المتوقّعة، وقد أُضيفت إلى المولّد لاحقاً ثلاث صفحات (علامات الخطر، والمصطلحات الطبية، وأسماء المواليد) دون تحديث تلك القائمة. فالصفحات موجودة وسليمة ومُدرَجة في الخريطة؛ والمخطئ هو من يَعُدّ.
والدرس أمضى من الخطأ نفسه: طبّقنا مبدأ «مصدر واحد للحقيقة» على المحتوى بإتقان، ثم نسيناه في الأداة التي تتحقّق منه. كل قائمة يدوية تُوازي قائمة مولّدة ستنجرف عنها، والمسألة مسألة وقت لا احتمال؛ والصواب أن يسأل المدقّق المولِّدَ عن قائمة صفحاته بدل أن يحتفظ بنسخة منها. وهو نفس درس lastmod في الخريطة اليدوية، ونفس درس أرقام إصدارات الكاش التي تُنسى فيُخدَم الزائر نسخةً قديمة ويظنّ المطوّر أن تعديله لم ينفّذ (وهو ما يعالجه ضبط إصدارات Service Worker). أيّ رقم أو قائمة يُكتب مرّتين ستختلف المرّتان.
وربط التوليد بخطّ البناء متعمَّد لهذا السبب: التوليد يُستدعى من سكربت البناء الرئيسي بعد تجهيز الأصول، وإن فشل فإن البناء يتوقّف بخطأ صريح — فلا يُنشَر إصدار بصفحات ناقصة. ويدعم ذلك أن مستخرِج البيانات يتحقّق قبل التوليد بتأكيدات صريحة: أن الأسابيع ٤٠ بالضبط، وأنها مرتّبة بلا فجوة، وأن كل أسبوع يحوي حقوله الأساسية، وأن قوائم الأطعمة والتمارين والمصطلحات ليست أقصر من حدّ أدنى معروف. وفلسفة هذه التأكيدات: أن يفشل البناء بصوت عالٍ خير من أن ينجح بصمت فيُنتج ٥١ صفحة نصفها فارغ — لأن الصفحة الفارغة المفهرسة أسوأ من الصفحة غير الموجودة.
وقبل كل توليد يُمسَح مجلد الصفحات القديم بكامله. وهذا أيضاً درس تجربة لا احتياط نظري: لو نقص عدد المواضيع أو حُذف موضوع، لبقيت صفحته القديمة على القرص، ولنُشرت مع النشرة التالية، ولظلّت مفهرسة بمحتوى لم يبق له مصدر — صفحة يتيمة لا يربطها شيء من الموقع ولا يعلم بوجودها أحد إلا محرّك البحث، وهي أصعب ما يُكتشف لأنك لا تراها في أي قائمة عندك.
ما لا يعالجه السيو
هنا الجزء الذي تتجنّبه أدلّة السيو عادةً. بعد كل ما سبق — ٥١ صفحة مفهرسة، وعناوين ووصوف فريدة، وخريطة موقع دقيقة، وبيانات منظّمة صالحة — تبقى حقيقة واحدة: الفهرسة تُوصِل الزائر، والمحتوى وحده يُقنعه. وموقع مفهرس فهرسةً مثالية بمحتوى بلا قيمة مضافة يبقى بلا قيمة؛ كل ما فعله السيو أنه ضاعف عدد من يكتشفون ذلك بأنفسهم.
والدرس هنا مدفوع الثمن. هذا الموقع الذي تقرأ عليه المقال كان سيوه سليماً: عناوين فريدة، ووصف لكل صفحة، وخريطة موقع صحيحة، وروابط قانونية موحّدة على نطاق واحد، وبيانات منظّمة تمرّ في أداة الاختبار بلا ملاحظة. ومع ذلك رُفض طلب انتسابه لبرنامج الإعلانات بعلّة واحدة: «محتوى بلا قيمة مضافة». والسبب أن مقالاته كانت صحيحة ومرتّبة وحسنة الصياغة — وعامّة؛ أي مدوّنة عربية تحوي نظيرها حرفياً. لم يكن العطب في الوسوم بل في أن القارئ يخرج من المقال بلا شيء لا يجده في عشرين موقعاً آخر.
والفارق ليس في الطول ولا في كثافة الكلمات المفتاحية، بل في وجود ما لا يمكن نسخه: رقم من مشروع فعلي، وقرار اتُّخذ ومعه سببه، وبديل رُفض ولماذا رُفض، وخطأ وقع وكيف ظهر وكيف عُولج. هذه المقالة نفسها لا تختلف عن غيرها في «تعريف canonical»، بل في أنها تعرف كم صفحة وُلِّدت، وعند أيّ حرف يُقتطع الوصف، ولماذا خلا ملف robots من سطر واحد يظنّه الجميع واجباً، وأيّ فحص من ٨٩٧ فحصاً فشل ولماذا كان المدقّق هو المخطئ. الأولى قابلة للنسخ من أي مكان، والثانية لا تُكتب إلا بعد الفعل.
ولهذا فترتيب العمل الصحيح معاكس للشائع: اكتب أوّلاً ما يستحقّ أن يُقرأ، ثم اجعله قابلاً للفهرسة. السيو مُكبِّر صوت لا مصدر صوت — يضاعف ما لديك، وإن كان ما لديك صفراً فضِعف الصفر صفر. وهذه بالمناسبة أكثر علّة في المواقع العربية التي تفشل في تحقيق أي دخل من محتواها: زيارات لا بأس بها، وصفحات مفهرسة بالمئات، ومحتوى لا يجعل أحداً يعود مرّة ثانية (وللسياق الأوسع: إعلانات المواقع العربية).
أسئلة شائعة
كم يستغرق ظهور أثر السيو؟ غالباً من 3 إلى 6 أشهر لمحتوى جديد، فالثقة والفهرسة تتراكمان مع الوقت. السيو سباق صبر لا عدوٌ سريع.
هل الكلمات المفتاحية ما تزال مهمّة؟ نعم، لكن اكتب للبشر أولاً. استعمل الكلمة بشكل طبيعي في العنوان والمقدّمة والعناوين الفرعية، دون حشو يُفسد القراءة.
هل أحتاج دفع المال لـGoogle لأُفهرَس؟ لا. الفهرسة والنتائج الطبيعية مجانية تماماً؛ الإعلانات المدفوعة شيء منفصل لا يرفع ترتيبك الطبيعي.
هل ما زلت بحاجة لصفحات ثابتة إن كان Google ينفّذ الجافاسكربت؟ نعم، والسبب ليس التنفيذ بل الروابط. حتى لو نفّذ المحرّك سكربتك بالكامل، فالمحتوى كلّه يبقى على رابط واحد بعنوان واحد، وأنت تحتاج رابطاً وعنواناً ووصفاً لكل موضوع. أضِف إلى ذلك أن التنفيذ يستهلك ميزانية زحف ويتأخّر أياماً، وأن الصفحة الثابتة تُخدَم فوراً لكل زاحف — بحثاً كان أو معاينة مشاركة في تطبيقات المحادثة.
أضع طبقة الصفحات على نطاق فرعي أم مسار داخلي؟ مسار داخلي أفضل في الغالب (مثل /guide/)، لأنه يبقى على المستضيف نفسه فيستفيد من روابط الموقع وسمعته وخريطته الواحدة. والنطاق الفرعي يبدأ من الصفر ويحتاج تحقّقاً وخريطة وإرسالاً مستقلّاً، فلا تختره إلا لسبب معماري حقيقي.
كم مرّة أعيد توليد خريطة الموقع؟ مع كل بناء ونشر، آلياً، بلا قرار بشري. الخريطة ليست مستنداً يُراجَع دورياً بل مخرَجاً من الحالة الحالية للموقع؛ وأيّ عملية تحتاج أن يتذكّرها إنسان ستُنسى في أوّل يوم مزدحم.
خلاصة
اضبط العناوين والوصف، رتّب العناوين الهيكلية، جهّز خريطة الموقع وrobots، وحّد الـcanonical على نطاق واحد، اكتب محتوى أصلياً عميقاً، اربط صفحاتك داخلياً، واهتمّ بالسرعة والجوال. هذه الأساسيات وحدها تضعك في مصافٍّ أعلى من غالبية المواقع — والباقي صبر واستمرارية في النشر.
وما أضافته التجربة العملية فوق ذلك ثلاثة دروس: أوّلاً لا تكتب بيدك ما تستطيع خطوة البناء توليده — عنواناً كان أو وصفاً أو رابطاً قانونياً أو بيانات منظّمة أو خريطة موقع — واجعل مصدر الصفحات هو مصدر بيانات التطبيق نفسه فلا ينجرف أحدهما عن الآخر. وثانياً ضع مدقّقاً يفشل بصوت عالٍ ويوقف النشر، ثم طبّق عليه القاعدة نفسها: لا قائمة يدوية فيه هو أيضاً، وإلّا وجدت نفسك تصحّح المدقّق لا المحتوى. وثالثاً وهو الأهمّ: ابدأ بما يستحقّ القراءة. الفهرسة تُضاعف قيمة المحتوى ولا تخلقها، والموقع المفهرس بمحتوى عامّ يظلّ موقعاً عامّاً — لكنه أكثر ظهوراً، وهذا وحده لا يكفي لشيء.