القاعدة
يقدّم Next.js حمولةً إلى جانب كل صفحة للتنقّل في العميل. هذه تقع عند عناوين مثل /contact/index.txt، ولا نفع فيها لمحرّك بحث. فقال الملفّ:
Disallow: /index.txt$
Disallow: /*/index.txt$اقرأها بصوت مرتفع فهي صائبة بداهةً. كل index.txt، في الجذر وفي أي مجلّد، ممنوع. بقيت في الإنتاج أسابيع.
لماذا لم تطابق شيئًا
ترسو $ بالنمط عند نهاية الرابط — لا عند نهاية المسار. وNext لا يطلب تلك الحمولات عاريةً. بل يُلحق بها بصمة بناء:
/contact/index.txt?_rsc=gzsk8هذا الرابط لا ينتهي بـ.txt. إنه ينتهي بـgzsk8. فأخفقت المرساة، ولم تنطبق القاعدة، وجلب Googlebot كلًّا منها. وضعت إحصاءات الزحف الكلفة عند خمسة وثلاثين بالمئة من كل طلب أرسلته جوجل إلى الموقع في أسبوع — ميزانية أُنفقت على ملفّات لا وجود لها إلا لتجعل ضغطة رابط تبدو سريعة.
الجزء الذي يجعلها خطرة
لم يبلّغ شيء عنها، ولم يكن ليستطيع. فالقاعدة التي لا تطابق شيئًا تُنتج المُخرَج نفسه تمامًا الذي تنتجه القاعدة التي لا شيء لها لتطابقه: سطر نصّ ولا أثر. لا خطأ، ولا تحذير، ولا عدّاد يهبط إلى صفر. الملفّ صحيح. العَرَض الوحيد في تقرير زحف لا يقرؤه أحد أسبوعيًّا.
أصلح ذلك حذفُ حرفَي $. فصيغة البادئة تطابق كل ما يبدأ بذلك المسار، بسلسلة الاستعلام، وهو ما كان مقصودًا طوال الوقت.
القواعد الثلاث كاملةً
لمطابق جوجل ثلاثة سلوكيات لا رابع لها. فـ* تنوب عن أي سلسلة حروف. و$ ترسو عند نهاية الرابط. ما عدا ذلك بادئة حرفيّة — فـDisallow: /admin يمنع /administrator-guide/ كذلك، وهذا يوقع الناس في الاتّجاه المعاكس.
الأسبقيّة بـطول النمط، لا بالموضع. فتفوز أطول قاعدة مطابقة حيثما كُتبت، والتعادل يذهب إلى Allow. ذلك ما يجعل Allow: /public/reports/ ينتشل فرعًا من Disallow: /public/ حتى لو كُتب Allow أوّلًا، أو آخرًا، أو بين سطرين لا علاقة لهما.
أمران لا يفعلهما robots.txt
لا يزيل صفحةً من البحث. فالمنع يوقف الجلب لا الإدراج. جوجل تستطيع أن تدرج رابطًا قيل لها ألّا تزحف إليه وتفعل، بلا مقتطف تحته، بقوّة الروابط المشيرة إليه. لإبقاء صفحة خارج الفهرس، اسمح بزحفها وأعطها وسم noindex — والتعليمتان يستبعد بعضهما بعضًا، والمنع يفوز بمنعه الوسم من أن يُقرأ أصلًا.
ولا يخفي شيئًا. فالملفّ عامّ وكثيرًا ما يكون أوّل ما يقرؤه مهاجم. إدراج /internal-admin/ فيه إعلان عنه. استعمل الاستيثاق لكل ما يهمّ.
فحصه كما ينبغي
افحص بسلسلة الاستعلام لا بدونها. فتلك هي الهيئة التي يطلبها الزاحفون فعلًا والهيئة التي تفوتها القاعدة المرساة. افحص الاتّجاهين: ما يجب منعه، وما يجب أن يبقى متاحًا — /_next/ و/assets/ وads.txt وخريطة الموقع.
فاحص robots.txt يقيّم رابطًا بالمطابق أعلاه ويسمّي القاعدة التي حسمته، وهو نصف الجواب الذي يخبرك بما تغيّره. وجّه الملفّ المكتمل إلى خريطة موقع مبنيّة بـمولّد خريطة الموقع.