webtrajans
ar

ملف robots.txt: كيف تتحكم في زحف محركات البحث إلى موقعك؟

ملف نصي صغير في جذر موقعك يخبر Googlebot وBingbot بالمسارات التي لا يجب زحفها. سطر خاطئ واحد فيه قد يُخفي موقعك كله من نتائج البحث.

آخر تحديث: قراءة 5 دقائق

قبل أن يزحف Googlebot إلى أي صفحة في موقعك، يطلب أولًا ملفًا واحدًا: /robots.txt. هذا الملف هو بروتوكول استبعاد الروبوتات (Robots Exclusion Protocol)، وقد صار معيارًا رسميًا في RFC 9309 عام 2022. وظيفته بسيطة: تحديد المسارات التي لا تريد أن تزحفها الروبوتات. لكن بساطته تخدع، فكثير من المواقع العربية تكتشف بعد أشهر أن ملفًا منسيًا من مرحلة التطوير كان يحجب الموقع بالكامل.

الصيغة الأساسية

يتكون الملف من مجموعات، كل مجموعة تبدأ بسطر User-agent ثم قواعد Disallow وAllow:

User-agent: *
Disallow: /admin/
Disallow: /cart/
Allow: /admin/admin-ajax.php

Sitemap: https://example.com/sitemap.xml
  • User-agent: * تعني كل الروبوتات. يمكنك تخصيص مجموعة لـ Googlebot أو Bingbot.
  • Disallow: /admin/ تمنع كل ما يبدأ بهذا المسار.
  • Allow تستثني مسارًا من منع أوسع.
  • Sitemap تخبر المحركات بمكان خريطة الموقع، ويجب أن تكون عنوانًا كاملًا.

قواعد المطابقة

النمط ما الذي يطابقه؟
Disallow: / الموقع كله
Disallow: (فارغ) لا شيء، أي السماح بكل شيء
Disallow: /search /search و/search-results و/search/arabic
Disallow: /*?sort= أي عنوان يحتوي ?sort=
Disallow: /*.pdf$ العناوين التي تنتهي بـ .pdf

المسارات حساسة لحالة الأحرف: /Admin/ ليست /admin/. وإذا تعارضت قاعدتا Allow وDisallow، تطبّق Google القاعدة الأطول والأكثر تحديدًا، وعند التساوي تختار القاعدة الأقل تقييدًا (Allow).

ملاحظات تقنية

  • تقرأ Google أول 500 كيلوبايت فقط من الملف؛ ما بعدها يُتجاهل.
  • يجب أن يكون الملف نصًا عاديًا بترميز UTF-8.
  • الروابط التي تحتوي أحرفًا عربية تُكتب في الملف بصيغتها المرمّزة (percent-encoded)، مثل /%D9%85%D9%86%D8%AA%D8%AC%D8%A7%D8%AA/ بدل /منتجات/، لضمان المطابقة.

أمثلة جاهزة

موقع ووردبريس

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /?s=
Disallow: /search/

Sitemap: https://example.com/sitemap_index.xml

لاحظ أننا لا نحجب /wp-content/ ولا /wp-includes/؛ تحتاج Google إلى ملفات CSS وJavaScript لترى الصفحة كما يراها الزائر.

متجر إلكتروني

User-agent: *
Disallow: /cart
Disallow: /checkout
Disallow: /account
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*&price=

Sitemap: https://example.com/sitemap.xml

صفحات الفلترة والترتيب قد تولّد آلاف العناوين المتكررة من الفئة نفسها (حسب السعر، اللون، المقاس). حجبها يوفر ميزانية الزحف لصفحات المنتجات الفعلية. لكن احذر: إذا كانت بعض الفلاتر تمثل صفحات تريد ترتيبها (مثل “عبايات سوداء”)، فاجعلها عناوين ثابتة ولا تحجبها.

موقع قيد التطوير

User-agent: *
Disallow: /

هذا الملف مناسب لنسخة الاختبار (staging) فقط، والأفضل حمايتها بكلمة مرور. أكثر الكوارث شيوعًا هي نقل هذا الملف إلى الموقع الحقيقي عند الإطلاق.

يمكنك إنشاء ملف مناسب لموقعك عبر مولد robots.txt، ثم اختبار أي عنوان عبر أداة اختبار robots.txt لترى هل هو مسموح أم محجوب ولماذا.

robots.txt مقابل noindex

هذا هو الالتباس الأكثر تكلفة:

الهدف الأداة الصحيحة
منع الزحف لتوفير موارد الخادم Disallow في robots.txt
منع ظهور الصفحة في نتائج البحث <meta name="robots" content="noindex"> أو رأس X-Robots-Tag
إخفاء محتوى سري كلمة مرور أو حجب على الخادم

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

ولا تستخدم Noindex: داخل robots.txt؛ Google توقفت عن دعمه منذ سبتمبر 2019.

وتذكّر أن robots.txt ملف عام: أي شخص يستطيع قراءته. كتابة Disallow: /secret-admin-panel/ تدل المتطفلين على المسار بدل إخفائه.

روبوتات الذكاء الاصطناعي

صار كثير من أصحاب المواقع يتحكمون عبر robots.txt في روبوتات جمع البيانات لتدريب نماذج الذكاء الاصطناعي، مثل GPTBot أو CCBot، ورمز Google-Extended الذي يتحكم في استخدام المحتوى لنماذج Google دون أن يؤثر على الظهور في بحث Google:

User-agent: GPTBot
Disallow: /

User-agent: Google-Extended
Disallow: /

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

أخطاء شائعة

  1. ترك Disallow: / بعد الإطلاق. افحص الملف في يوم الإطلاق نفسه.
  2. حجب ملفات CSS وJS، فتبدو الصفحة لـ Google مكسورة وغير متوافقة مع الجوال.
  3. حجب صفحات تحمل تحويلات أو وسوم canonical، فلا تُقرأ الإشارة.
  4. كتابة المسار دون شرطة البداية: Disallow: admin غير صحيح.
  5. إعادة الخادم صفحة HTML بدل الملف (مثلًا صفحة 404 مخصصة برمز 200).
  6. نسيان سطر Sitemap أو وضع عنوان نسبي فيه.

كيف تختبر الملف بعد كل تعديل؟

  1. افتح https://example.com/robots.txt في المتصفح وتأكد أن ما تراه هو النسخة الجديدة، لا نسخة مخزنة في CDN.
  2. اختبر أهم العناوين: الصفحة الرئيسية، صفحة منتج، صفحة مقال، ملف CSS رئيسي. يجب أن تكون كلها مسموحة.
  3. اختبر العناوين التي أردت حجبها، مثل السلة ونتائج البحث، للتأكد أن القاعدة تعمل.
  4. في Google Search Console، يعرض تقرير robots.txt آخر نسخة جلبتها Google وأي أخطاء في قراءتها، ويمكنك طلب إعادة الجلب بعد التعديل العاجل.

ملفات robots.txt والنطاقات الفرعية

لكل نطاق فرعي ملفه الخاص: blog.example.com/robots.txt منفصل عن example.com/robots.txt. وإن كان متجرك على نطاق فرعي لمنصة خارجية، فقد لا تتحكم في ملفه بالكامل؛ راجع إعدادات المنصة. كذلك نسخة http ونسخة https تُعاملان كموقعين، لكن مع تحويل 301 صحيح إلى HTTPS تقرأ المحركات الملف من الوجهة النهائية.

هل تحجب ملفات الوسائط؟

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

قائمة تحقق

  • الملف موجود في https://example.com/robots.txt ويعيد الرمز 200.
  • لا يوجد Disallow: / على الموقع الحقيقي.
  • CSS وJavaScript والصور غير محجوبة.
  • صفحات البحث الداخلي والسلة والحساب والفلاتر المكررة محجوبة.
  • سطر Sitemap موجود بعنوان كامل؛ راجع دليل خريطة الموقع XML.
  • لم تُستخدم robots.txt لإخفاء محتوى سري أو لمنع الفهرسة.

الأسئلة الشائعة

هل يمنع robots.txt ظهور الصفحة في Google؟

لا. هو يمنع الزحف فقط. إذا كانت هناك روابط خارجية إلى الصفحة فقد تظهر في النتائج بعنوانها دون وصف. لمنع الفهرسة استخدم وسم noindex واترك الصفحة قابلة للزحف.

أين يجب أن يكون ملف robots.txt؟

في جذر النطاق تمامًا، مثل https://example.com/robots.txt. لكل نطاق فرعي وكل بروتوكول ملف خاص به، فملف www لا يسري على shop.

هل تدعم Google أمر Crawl-delay؟

لا، Google تتجاهله. بعض محركات البحث الأخرى مثل Bing تأخذه في الاعتبار.

ماذا يحدث إذا لم يوجد ملف robots.txt؟

إذا أعاد الخادم 404 فستعتبر محركات البحث أن كل شيء مسموح بزحفه. أما أخطاء 5xx المستمرة فقد تجعل Google تتوقف عن الزحف مؤقتًا.

أدلة ذات صلة