Robots.txt: التحكم في زحف Googlebot، وحظر المجلدات، وتوجيهات معدل الزحف، وأفضل ممارسات SEO.

Robots.txt هو ملف بسيط لكنه قوي يتحكم في طريقة زحف محركات البحث لموقعكم. يقع على العنوان `https://example.com/robots.txt` ويحتوي على قواعد تحدد أي الصفحات والمجلدات يمكن لـ Google وBing وروبوتات أخرى زحفها. يساعدكم Robots.txt على إدارة ميزانية الزحف (عدد الصفحات التي يزحفها Google يومياً)، ويمنع إهدار الزحف على صفحات غير مهمة، ويبقي المحتوى الخاص بعيداً عن نتائج البحث.
تمتلك معظم المواقع ملف robots.txt، لكن الكثير منها معدّ بشكل خاطئ. يمكن لملف robots.txt المعدّ بشكل خاطئ أن يحظر بالخطأ صفحات مهمة، مما يهدر إمكانات الترتيب. يحسّن ملف robots.txt المعدّ بشكل صحيح كفاءة الزحف ويحمي خصوصية موقعكم. يغطي هذا الدليل بنية robots.txt وأفضل الممارسات وأمثلة واقعية.
Robots.txt هو ملف نصي موحّد ينقل تعليمات الزحف إلى روبوتات محركات البحث. عندما يزور روبوت موقعكم للمرة الأولى، فإنه يطلب `/robots.txt` قبل زحف أي شيء آخر. يقرأ الروبوت القواعد ويتبعها (بافتراض أن الروبوت يتصرف بشكل سليم).
توثيق Google لملف robots.txt هو المرجع الرسمي لهذا المعيار. تم إنشاء تنسيق robots.txt عام 1994 وتم اعتماده على نطاق واسع. تحترم جميع محركات البحث الرئيسية (Google وBing وBaidu) ملف robots.txt.
مهم: Robots.txt هو إرشاد، وليس جداراً نارياً. تحترم الروبوتات ذات السلوك السليم (Google وBing) قواعد robots.txt. أما الروبوتات الخبيثة وأدوات الاستخراج فتتجاهل robots.txt. استخدموا robots.txt لإدارة زحف محركات البحث، وليس لحظر القراصنة أو أدوات الاستخراج. للأمان، استخدموا أدوات على مستوى الخادم.
يستخدم Robots.txt بنية نصية بسيطة. يتكون كل قاعدة من جزأين: User-agent (الروبوت الذي تنطبق عليه القاعدة) ومسارات Disallow (الصفحات المراد حظرها).
مثال أساسي:
User-agent: *
Disallow: /admin/
Disallow: /staging/
Sitemap: https://example.com/sitemap.xml
يخبر هذا جميع الروبوتات (`*` تعني الجميع) بعدم زحف المجلدين `/admin/` و`/staging/`. يخبر سطر Sitemap الروبوتات بمكان وجود خريطة الموقع الخاصة بكم.
User-agent: \* تعني جميع الروبوتات. يمكنكم أيضاً تحديد روبوتات معينة:
ينطبق `User-agent: Googlebot` على روبوت Google فقط. وينطبق `User-agent: Bingbot` على روبوت Bing فقط. يمكنكم تضمين عدة أقسام User-agent بقواعد مختلفة.
Disallow: /path/ يخبر الروبوتات بعدم زحف ذلك المسار. Disallow: / يحظر الموقع بأكمله. Disallow: (فارغ) يسمح بكل شيء. يمكنكم إدراج عدة قواعد Disallow لكل User-agent.
Allow: /path/ يسمح بزحف مسار معين حتى لو كان المجلد الأصل محظوراً. مثال: Disallow: /temp/ لكن Allow: /temp/important/ يسمح بزحف المجلد الفرعي /important/ فقط.
النمط 1: حظر صفحات الإدارة
User-agent: *
Disallow: /admin/
Disallow: /user/
Disallow: /account/
يحظر هذا زحف صفحات الإدارة والمستخدمين والحسابات. عادة ما لا تكون هذه الصفحات مخصصة لمحركات البحث.
النمط 2: حظر بيئة staging
User-agent: *
Disallow: /staging/
Disallow: /test/
يمنع الروبوتات من زحف نسخ الاختبار أو staging من موقعكم.
النمط 3: حظر أنواع ملفات معينة
User-agent: *
Disallow: /*.pdf
Disallow: /*.zip
يمنع الروبوتات من زحف ملفات PDF وZIP. هذا مفيد إذا كان لديكم العديد من ملفات PDF التي لا ينبغي فهرستها.
النمط 4: إبطاء الروبوتات التي تثقل كاهل خادمكم
User-agent: AhrefsBot
Disallow: /
User-agent: SemrushBot
Crawl-delay: 10
يحظر بشكل كامل روبوت Ahrefs (إذا كنتم لا ترغبون في أن تزحف أدوات SEO موقعكم). يبطئ روبوت Semrush بإضافة تأخير مدته 10 ثوانٍ بين الطلبات. يُعد Crawl-delay مفيداً للروبوتات العدوانية التي تثقل كاهل خادمكم.
النمط 5: السماح بكل شيء (الوضع الافتراضي)
User-agent: *
Disallow:
هذا هو الوضع الافتراضي. Disallow فارغ يعني السماح بكل شيء. يمكنكم أيضاً حذف robots.txt بالكامل إذا كنتم تريدون أن يكون كل المحتوى قابلاً للزحف.
يحظر Robots.txt الزحف. بينما يحظر Meta robots noindex الفهرسة. يخدم كل منهما غرضاً مختلفاً.
استخدموا robots.txt عندما: ترغبون في توفير ميزانية الزحف. لديكم محتوى مكرر لا ينبغي زحفه. لديكم صفحات إدارة لا ينبغي أن تلمسها الروبوتات. ترغبون في إبطاء الروبوتات العدوانية.
استخدموا meta robots noindex عندما: ترغبون في أن يتم زحف صفحة ما دون فهرستها (لرؤية الأخطاء والمشكلات). ترغبون في منع الفهرسة مع السماح بالروابط الداخلية والزحف. ترغبون في إزالة صفحة من البحث في نهاية المطاف مع إبقائها منشورة.
مثال: يمكن حظر الصفحات المرقمة مثل `/products?page=2` في robots.txt لتوفير ميزانية الزحف (نظراً لأن Google يوحّد عادةً الترقيم). لكن قد ترغبون في زحفها لتحديد علاقات canonical. في هذه الحالة، استخدموا canonicals بدلاً من robots.txt.
ميزانية الزحف هي عدد عناوين URL التي يزحفها Google يومياً في موقعكم. لا يمكن للمواقع الكبيرة التي تضم ملايين الصفحات أن يتم زحف جميع صفحاتها يومياً. يخصص Google ميزانية الزحف بناءً على سلطة موقعكم وتكرار التغييرات فيه. ميزانية الزحف محدودة. إهدارها على صفحات غير مهمة يعني زحف الصفحات المهمة بوتيرة أقل.
حسّنوا ميزانية الزحف من خلال حظر الصفحات التي لا ينبغي زحفها: المحتوى المكرر، ونتائج البحث المرقمة، وصفحات حساب المستخدم، وصفحات الاختبار. كل صفحة تحظرونها تمنح Google ميزانية إضافية لزحف المحتوى المهم لديكم.
مهدرات ميزانية الزحف الشائعة: الترقيم اللانهائي (تُنشئ مرشحات المنتجات عناوين URL غير محدودة)، والمحتوى المكرر بمعاملات مختلفة، ومعرّفات الجلسة (session) المُضافة إلى كل عنوان URL، وصفحات التقويم/الأحداث التي تُنشئ عناوين URL لا نهائية. استخدموا robots.txt لحظر هذه الأنماط.
تعرض Google Search Console إحصاءات الزحف الخاصة بموقعكم. راقبوا طلبات الزحف يومياً. إذا كان Google يزحف نفس الصفحات بشكل متكرر دون اكتشاف محتوى جديد، راجعوا ملف robots.txt واستراتيجية الحظر لديكم.
أدرجوا عنوان URL الخاص بخريطة موقعكم في robots.txt. أضيفوا `Sitemap: https://example.com/sitemap.xml` في نهاية ملف robots.txt الخاص بكم. يخبر هذا Google بمكان العثور على خريطة موقعكم بصيغة XML. يمكنكم إدراج عدة خرائط مواقع إذا كان لديكم عدة ملفات.
مثال:
User-agent: *
Disallow: /admin/
Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/sitemap-news.xml
إدراج خرائط المواقع في robots.txt أمر اختياري (يمكنكم إرسال خرائط المواقع عبر Google Search Console)، لكنه يُعد من أفضل الممارسات.
تحتوي Google Search Console على أداة لاختبار robots.txt. انتقلوا إلى Settings > Crawling > Test robots.txt. أدخلوا عنوان URL وشاهدوا ما إذا كان robots.txt يحظره. هذا أمر بالغ الأهمية للتحقق من قواعدكم قبل النشر.
اختبروا دائماً قبل نشر تغييرات robots.txt. يمكن لخطأ واحد (مثل `Disallow: /` الذي يحظر موقعكم بأكمله) أن يدمر ترتيبكم. استخدموا أداة الاختبار للتحقق من:
عدم حظر الصفحات المهمة. حظر صفحات الإدارة. حظر أنماط المحتوى المكرر. عدم حظر أي مسارات حرجة بالخطأ.
بعد نشر robots.txt، راقبوا تقرير الزحف (Crawl report) في Google Search Console بحثاً عن أي تغييرات. إذا انخفض معدل الزحف بشكل غير متوقع، فقد تكونون قد حظرتم محتوى مهماً بالخطأ.
الخطأ 1: حظر CSS وJavaScript. إذا حظرتم `/css/` أو `/js/` في robots.txt، لن يتمكن Google من زحف ملفات CSS وJavaScript الخاصة بكم. بدون CSS، لا يستطيع Google عرض صفحاتكم بشكل صحيح. لا تحظروا CSS أو JavaScript.
الخطأ 2: حظر محتوى مهم. اختبروا دائماً قبل النشر. يمكن لخطأ إملائي مثل `Disallow: /p` بدلاً من `Disallow: /staging/` أن يحظر `/products/` عن غير قصد.
الخطأ 3: استخدام robots.txt للأمان. لا تعتمدوا على robots.txt لحماية البيانات الحساسة. يجب أن تتطلب الصفحات الحساسة أمنياً مصادقة (authentication)، وليس فقط robots.txt. ملف robots.txt عام ويمكن تجاوزه بسهولة.
الخطأ 4: عدم اتساق robots.txt عبر النطاقات. إذا كان لديكم عدة نطاقات، حافظوا على سياسات robots.txt متسقة. يمكن أن تتسبب القواعد المختلفة عن غير قصد في مشكلات تتعلق بكفاءة الزحف.
الخطأ 5: حظر خريطة الموقع نفسها. لا تحظروا أبداً `/sitemap.xml` في robots.txt. يحتاج Google إلى زحف خريطة الموقع لاكتشاف الصفحات.
Crawl-delay وRequest-rate: تُبطئ هذه التوجيهات الروبوتات. يضيف `Crawl-delay: 10` تأخيراً مدته 10 ثوانٍ بين الطلبات. يسمح `Request-rate: 1/10` بطلب واحد كل 10 ثوانٍ. استخدموا هذه التوجيهات للروبوتات التي تثقل كاهل خادمكم. يوصي Google باستخدام إعدادات Search Console بدلاً من هذه التوجيهات.
توجيه Allow: يسمح بزحف مسار معين حتى لو كان المسار الأصل محظوراً. مفيد لاستثناء بعض الحالات. مثال: `Disallow: /temp/` لكن `Allow: /temp/keep/` يسمح بزحف المجلد الفرعي keep فقط.
توثق مواصفات robots.txt الخاصة بـ Google جميع التوجيهات المدعومة. نادراً ما تكون معظم الميزات مطلوبة. التزموا بـ User-agent وDisallow وSitemap الأساسية لمعظم المواقع.
تسمح القواعد الخاصة بكل User-agent بقواعد زحف مختلفة لروبوتات مختلفة. يمكنكم تحديد قواعد لـ Googlebot وBingbot وuser-agents أخرى بشكل منفصل. هذا مفيد إذا كنتم تريدون أن يزحف Google موقعكم بالكامل مع تقييد وصول Bing إلى أقسام معينة. حددوا user-agent في بداية كل كتلة قواعد:
ينطبق `User-agent: Googlebot` على قواعد زاحف Google فقط. بينما ينطبق `User-agent: *` على قواعد جميع الروبوتات. تنطبق القواعد على user-agent المحدد حتى توجيه user-agent التالي. يمكنكم إنشاء عدة كتل قواعد لروبوتات مختلفة.
تخبر توجيهات Crawl-delay وrequest-rate الروبوتات بمدى تكرار الزحف. يخبر `Crawl-delay: 5` الروبوت بالانتظار 5 ثوانٍ بين الطلبات. هذا يقلل من الحمل على الخادم. يخبر `Request-rate: 1/10` الروبوت بإجراء طلب واحد على الأكثر كل 10 ثوانٍ. يفصّل توثيق Google لملف robots.txt جميع التوجيهات المدعومة.
تخبر توجيهات موقع Sitemap الروبوتات بمكان العثور على خريطة موقعكم. يوجّه `Sitemap: https://example.com/sitemap.xml` الروبوتات إلى خريطة موقعكم بصيغة XML. يمكنكم تحديد عدة خرائط مواقع. يُنصح بهذا لأنه يساعد الروبوتات على اكتشاف جميع صفحاتكم بكفاءة.
يزيل توجيه Clean-param معاملات عنوان URL قبل الزحف. يخبر `Clean-param: utm_source&utm_medium https://example.com` محرك Google بتجاهل معاملات UTM على example.com. هذا يمنع Google من التعامل مع الروابط المتتبّعة كمحتوى مكرر. أصبح استخدام هذا أقل شيوعاً الآن نظراً لأن Google يتعامل تلقائياً مع معظم معاملات التتبّع.
اختبروا ملف robots.txt الخاص بكم في أداة اختبار robots.txt في Google Search Console. تعرض الأداة عناوين URL التي سيحظرها ملف robots.txt الخاص بكم بالنسبة لـ Googlebot. هذا يمنع الحظر العرضي للصفحات المهمة.
Robots.txt هو ملف بسيط لكنه بالغ الأهمية لإدارة زحف محركات البحث وحماية خصوصية موقعكم. يحظر ملف robots.txt المعدّ بشكل صحيح الصفحات غير المهمة، ويوفر ميزانية الزحف، ويمنع زحف المحتوى المكرر عدة مرات. يمكن لملف robots.txt المعدّ بشكل خاطئ أن يحظر بالخطأ محتوى مهماً ويدمر ترتيبكم.
اختبروا دائماً تغييرات robots.txt قبل نشرها. استخدموا أداة اختبار Google Search Console للتحقق من صحة القواعد. راقبوا إحصاءات الزحف الخاصة بكم شهرياً. احظروا المحتوى غير المهم وأدروا ميزانية الزحف بفعالية. استخدموا أداة تدقيق GEO SEO الخاصة بنا لتدقيق إعدادات robots.txt لديكم وتحديد المشكلات المحتملة المتعلقة بقابلية الزحف والفهرسة عبر موقعكم بأكمله.
لا. حظر صفحة في robots.txt يمنع Google من زحفها لكنه لا يساعد في تحسين SEO. إذا كنتم لا ترغبون في فهرسة صفحة ما، استخدموا بدلاً من ذلك وسم noindex. استخدموا robots.txt لتوفير ميزانية الزحف.
لا. لا تحظروا أبداً ملفات CSS أو JavaScript في robots.txt. يحتاج Google إلى الوصول إلى هذه الموارد لفهم صفحتكم بشكل كامل. حظرها يمنع Google من عرض المحتوى الخاص بكم بشكل صحيح.
بشكل عام، لا تحتاجون إلى تحديد معدل زحف إلا إذا كان Google يقوم بعدد كبير جداً من الطلبات. إذا كان Google يستنزف عرض النطاق الترددي الخاص بكم، استخدموا توجيه Crawl-delay. تستطيع معظم المواقع التعامل مع معدل الزحف الافتراضي لدى Google.