متوفر أيضًا بلغات أخرى: English · Español · Português · Français
مولّد ملف robots.txt
أنشئ ملف robots.txt وافحص رابطًا عليه، والقاعدةُ الحاكمة معروضةٌ إلى جوار الجواب.
ما ملف robots.txt؟
ملفُّ robots.txt يوضع في جذر النطاق ليخبر الزواحف أي أجزاء الموقع لها أن تطلبها. وهو ملفُّ نصٍّ بسيطٍ مؤلَّفٌ من مجموعات: سطرٌ أو أكثر من User-agent يسمّي زاحفًا، تتبعه أسطرُ Allow وDisallow تسمّي مسارات. وهذه هي الصيغة كلها.
وظل خمسًا وعشرين سنةً عُرفًا لا مواصفة، ومن هنا جاء ما أحاط به من مرويّات. ثم تغير ذلك في سبتمبر 2022 حين نُشر بوصفه RFC 9309، أي بروتوكول استبعاد الروبوتات. ووجودُ مواصفةٍ حقيقية يعني أن أسئلةً كانت تُجاب بالرأي صار لها مرجعٌ يُستشهد به، وهذا المولّد يتبعه.
وأنفعُ ما يُفهم أن robots.txt يضبط الزحف لا الفهرسة، وأنه طلبٌ لا سياج. فالزواحفُ حسنةُ الأدب تحترمه، ولا شيء يوقف سيئها، والملفُّ علنيٌّ فليس موضعًا تسرد فيه المسارات التي تحرص أشد الحرص على سترها.
كيف تستعمله؟
- املأ الزاحف والمسارات. اترك النجمة لتخاطب كل الزواحف، أو سمِّ واحدًا لتكتب قواعد تخصه وحده. وDisallow يقبل مسارًا في كل سطر، وAllow للاستثناءات داخل مسارٍ محجوب. والاختصاراتُ تعطيك نقطة بدءٍ للسماح بالكل أو حجب الكل أو حجب بضعة مسارات.
- حرّر أو ألصق في صندوق المخرجات مباشرةً. فالملفُّ المولَّد قابلٌ للتحرير، ولك أن تستبدل به ملف robots.txt عندك بتمامه. وكلُّ ما تحت الصندوق يقرأ ما فيه، فيعمل الفاحصُ على ملفٍ لم تكتبه هذه الأداة عملَه على ما كتبته.
- افحص رابطًا حقيقيًّا عليه. اكتب مسارًا واسم زاحف، فتقول الأداةُ مسموحٌ أو محجوب، ثم تسمّي القاعدة الحاكمة وطولها بالبايت والمجموعة التي انطبقت. وهذا هو الموضع الجدير بالنظر، فالقاعدةُ الحاكمة كثيرًا ما تكون غير التي تتوقع.
ماذا تقول المواصفة حقًّا، وماذا لا تقول
يعرّف RFC 9309 ثلاث تعليماتٍ لا رابع لها: User-agent وAllow وDisallow. وليست Crawl-delay في المواصفة، ولا Host. وليست Sitemap من البروتوكول كذلك، وإن ذكرتها المواصفة مثالًا على سجلٍّ قد تختار الزواحفُ تفسيره، ولذلك تكتبها هذه الأداة وتُعلِمها امتدادًا لا تعليمة.
ولهذا ليس هنا حقلٌ لـCrawl-delay، وذلك قصدٌ لا إغفال. فقد صرّحت جوجل بأنها تتجاهل ذلك السطر، وهو ليس في المواصفة، فالمولّدُ الذي يعرضه عليك يسلّمك شيئًا يشبه حدَّ سرعةٍ وليس به. فإن كان في ملفك أصلًا فألصقه، تسردْه الأداةُ فيما في الملف مؤشَّرًا عليه بأنه خارج المواصفة. فلا شيء يُخفى، ولا شيء يُختلق.
والعكسُ جديرٌ بالمعرفة أيضًا، وهو أدعى للعجب. فالشائعُ أن النجمة وعلامة الدولار امتدادٌ من جوجل. وهما في المواصفة: النجمةُ تقابل صفرًا فأكثر من أي محرف، وعلامةُ الدولار تعيّن نهاية النمط. فالتعليماتُ التي يعدّها الناس معياريةً أكثرها ليس كذلك، والصياغةُ التي يعدّونها غير معيارية هي المعيارية.
الحاكمُ أطولُ قاعدة لا أولاها
إذا انطبقت قواعدُ عدة على رابطٍ واحد فالمواصفةُ قاطعة: يجب أخذُ الانطباق الأخصّ، والأخصُّ هو الأكثرُ بايتات. ولا أثر لترتيب الأسطر في الملف. فـDisallow يليه شرطةٌ وحرف، ثم Allow بشرطةٍ وحرفين، يسمح بالمسار الأطول، لأن Allow أربعةُ بايتات في مقابل اثنين. وهذا أشيعُ سوء فهمٍ لـrobots.txt، ولذلك يعرض الفاحصُ القاعدةَ الحاكمة وطولها بدل حكمٍ مجرد.
وإذا انطبق Allow وDisallow بالطول نفسه تمامًا فالمواصفةُ تقول إن Allow ينبغي أن يغلب. والأداةُ تنبّه إلى ذلك صراحةً حين يقع، فقاعدتان متساويتا الطول متعاكستا الاتجاه علامةٌ في الغالب على أن الملف يقول ما لم يُرِده كاتبه.
وثمة قاعدتان أخريان توقعان الناس، وهما متعاكستان. فأسماءُ الزواحف تُقابَل دون تفريقٍ بين كبير الحروف وصغيرها، فـGooglebot وgooglebot مجموعةٌ واحدة. وأما المسارات فتُقابَل مع التفريق، فـDisallow بحرفٍ كبير لا يصنع شيئًا بمسارٍ بحرفٍ صغير. ملفٌّ واحد وقاعدتان مختلفتان في الحروف الكبيرة. وقريبٌ منه أن المواصفة توجب، إذا سمّت أكثرُ من مجموعةٍ الزاحفَ نفسه، دمجَ قواعدها في مجموعةٍ واحدة بدل أن تغلب أولاها.
وأخيرًا، القاعدةُ التي لا تنطبق ليست قاعدةً تحجب. فإن لم تنطبق واحدةٌ فالرابط مسموح، وسطرُ Disallow الفارغ يعني ذلك بعينه: السماحَ بالكل. والمجموعةُ الخالية من القواعد لا تقول شيئًا البتة، ولذلك يكتب هذا المولّد Disallow فارغًا صريحًا حين تطلب السماح بالكل.
حدودٌ صادقة
أهمُّ حدٍّ ليس في هذه الأداة بل في الملف نفسه. فـDisallow يمنع الزاحف من طلب صفحة، ولا يخرجها من نتائج البحث. فالرابطُ الموصولُ به من موضعٍ آخر قد يظل ظاهرًا بلا وصف، وذلك لأن الزاحف أُمر ألا ينظر إليه. فإن أردت إخراج صفحةٍ من فهرس فلا بد أن تبقى قابلةً للزحف وتحمل تعليمة noindex، أو تُزال. وحجبُها في robots.txt هو بعينه ما يضمن ألا تُقرأ تلك التعليمة أبدًا.
وليس ضبطًا للوصول كذلك. فالملفُّ يقرؤه من شاء في عنوانٍ متوقَّع، فسردُ مسارٍ حساسٍ فيه إعلانٌ عنه. وما يجب حقًّا ألا يُبلَغ يحتاج استيثاقًا لا رجاءً مهذبًا.
وثمة سلوكٌ يحسن معرفته قبل مسّ ملفٍ في الإنتاج، ولا يكاد أحدٌ يعرفه. فإن ردّ robots.txt برمز 404 جاز للزاحف أن يصل إلى ما شاء، وهي الحالُ المتساهلة. وإن ردّ بخطأ خادمٍ من فئة 5xx فالمواصفةُ تقول إن على الزاحف أن يفترض الحجب التام. فملفٌّ صحيحٌ تمامًا على خادمٍ يمر بيومٍ سيئ يُقرأ عند زاحفٍ ملتزم كأن الموقع كله محجوب. وذلك عطبُ نشرٍ لا عطبُ صياغة، ولا يستطيع مدقِّقٌ أن ينبّهك إليه.
وهذه الأداة تفحص فوق ذلك ملفًا معزولًا. فلا تخبرك أموجودةٌ المساراتُ التي كتبتَها، ولا أيقدّم خادمُك الملفَّ في الجذر فعلًا، ولا كيف يسلك زاحفٌ بعينه عمليًّا، لأن المواصفة تترك سعةً والزواحفُ تستعملها. إنما تنفّذ ما تنصّ عليه الـRFC، وحيث يتجاوزه زاحفٌ قالت ذلك بدل أن تحزر.
لماذا هي مجانية؟
لأن الداخل نصٌّ والخارج نص. فليس ثمة خادمٌ في الأمر ولا شيءٌ يُنزَّل: المحلِّلُ والمقابِلُ والمولّد كلها تجري في متصفحك، فلا يُرفع شيءٌ مما تكتبه أو تلصقه ولا يُسجَّل ولا يُخزَّن. وملفُّ robots.txt عندك علنيٌّ، أما بقيةُ بنية موقعك التي قد تظهر في الصندوق بجواره فليست كذلك، وهي لا تغادر الصفحة.
فلا حساب ولا تسجيل ولا شيء محجوب. والمحرّك والفحوصُ التي تتحقق منه في المستودع إلى جوار الصفحة، ومنها مسحٌ شاملٌ لـ248248 تركيبةً من نمطٍ ومسار في مقابل مقابِلٍ مستقل، دون خلافٍ واحد.