أضفت مجموعة خاصة بالزاحف Googlebot فصار يتجاهل قواعد المجموعة العامة *، لماذا؟
لأن الزاحف، بحسب RFC 9309، يبحث عن المجموعة التي تحمل اسمه، فإن وجدها اتبعها وحدها وتجاهل مجموعة * بالكامل. المجموعات لا تُجمع فوق بعضها. لذلك كل قاعدة تريدها لكل الزواحف يجب أن تتكرر داخل مجموعة Googlebot أيضًا.
المثال الذي يكشف المشكلة
بنينا في منشئ ملف robots.txt هذا الملف: مجموعة لكل الزواحف تمنع /admin/ و/cart/، ثم مجموعة لزاحف Googlebot تمنع /search فقط، بقصد إضافة قاعدة له:
User-agent: *
Disallow: /admin/
Disallow: /cart/
User-agent: Googlebot
Disallow: /search
ثم اختبرنا المسار /admin/login مع زاحفين:
- Googlebot: مسموح بالزحف. لا قاعدة مطابقة، والمجموعة المستخدمة هي Googlebot. مجموعته لا تذكر /admin/، ولم يرث شيئًا من *.
- Bingbot: ممنوع بالقاعدة /admin/. لا توجد مجموعة باسمه، فاستُخدمت مجموعة * وحدها.
والمسار /search?q=oud مع Googlebot كان ممنوعًا بقاعدته الخاصة، أي أن المجموعة تعمل، لكنها تعمل وحدها. الأداة تقول ذلك صراحة حين تستخدم مجموعة *: استُخدمت مجموعة * وحدها دون دمجها مع غيرها.
الإصلاح: كرّر القواعد المشتركة
انسخ كل قاعدة تريدها لجميع الزواحف إلى مجموعة Googlebot أيضًا:
User-agent: *
Disallow: /admin/
Disallow: /cart/
User-agent: Googlebot
Disallow: /admin/
Disallow: /cart/
Disallow: /search
- في مجموعة Googlebot، الصق كل أسطر Disallow وAllow التي في مجموعة *.
- أضف تحتها القاعدة الخاصة به.
- في «اختبار مسار» جرّب /admin/login مع Googlebot مرة أخرى، وتأكد أنه صار ممنوعًا.
- جرّب أيضًا مسارًا عاديًا مثل /products/oud لتتأكد أنك لم تحجب ما لا تقصده.
تفاصيل تستحق الانتباه
- الاسم يُقارن دون اعتبار لحالة الأحرف، فمجموعة googlebot تنطبق على Googlebot.
- الأداة تأخذ من سلسلة الزاحف الطويلة اسمه الأول فقط، فالسلسلة Googlebot/2.1 مع بقية ترويستها تُعامل كزاحف Googlebot.
- الاسم المختلف ولو قليلًا يُعدّ زاحفًا آخر. حين اختبرنا Googlebot-Image مع الملف الأول، استُخدمت مجموعة * لأنه لا توجد مجموعة بهذا الاسم الكامل. الزواحف الحقيقية قد تتصرف بشكل مختلف في هذه التفاصيل، فراجع وثائق كل محرك بحث عن زواحفه.
- إن ذكرت اسم الزاحف نفسه في مجموعتين، تنبّهك الأداة، لأن الزواحف تدمج المجموعات التي تحمل الاسم نفسه، والأوضح أن تكون مجموعة واحدة.
أسطر Sitemap مختلفة: هي تسري على الملف كله لا على مجموعة، فلا تحتاج إلى تكرارها. اكتب رابط الخريطة التي أنشأتها في منشئ خريطة الموقع XML مرة واحدة في خانة Sitemap. والأداة لا تقرأ ملفك الحالي، فانقل قواعده إليها قبل الاختبار.
أسئلة شائعة
هل يمكن أن أجعل Googlebot يرث قواعد * تلقائيًا؟
لا في الصيغة القياسية. إن أردت القواعد نفسها لكل الزواحف فلا تنشئ له مجموعة خاصة أصلًا.
هل ترتيب المجموعات مهم؟
لا. الزاحف يختار المجموعة بالاسم لا بالموضع.
هل أكتب عدة أسماء في مجموعة واحدة؟
نعم، افصلها بفاصلة في خانة User-agent، فتشترك في القواعد نفسها.
