Saya menjalankan crawler Web skala besar. Kami berusaha sangat keras untuk mengoperasikan perayap dalam standar komunitas yang diterima, dan itu termasuk menghormati robots.txt. Kami mendapat sedikit keluhan tentang perayap, tetapi ketika kami melakukannya sebagian besar tentang penanganan kami atas robots.txt. Paling sering Webmaster membuat kesalahan di robots.txt dan kami dengan baik menunjukkan kesalahannya. Namun secara berkala kami mengalami area abu-abu yang melibatkan penanganan Allowdan Disallow.
The robots.txt Halaman tidak mencakup Allow. Saya telah melihat halaman lain, beberapa di antaranya mengatakan bahwa crawler menggunakan aturan "pencocokan pertama", dan yang lain tidak menentukan. Itu menyebabkan beberapa kebingungan. Misalnya, halaman Google tentang robots.txt yang digunakan untuk memiliki contoh ini:
User-agent: Googlebot
Disallow: /folder1/
Allow: /folder1/myfile.html
Jelas, aturan "pencocokan pertama" di sini tidak akan berfungsi karena perayap akan melihat Disallowdan pergi, tidak pernah merayapi file yang secara khusus diizinkan.
Kita berada di tempat yang jelas jika kita mengabaikan semua Allowbaris, tetapi kemudian kita mungkin tidak merangkak sesuatu yang kita boleh jelajahi. Kami akan kehilangan banyak hal.
Kami telah sukses besar dengan memeriksa Allowterlebih dahulu, dan kemudian memeriksa Disallow, gagasan yang Allowdimaksudkan lebih spesifik daripada Disallow. Itu karena, secara default (yaitu dengan tidak adanya instruksi yang bertentangan), semua akses diperbolehkan. Tapi kemudian kita menemukan sesuatu seperti ini:
User-agent: *
Disallow: /norobots/
Allow: /
Maksudnya di sini sudah jelas, tetapi itu Allow: /akan menyebabkan bot yang memeriksa Allowterlebih dahulu untuk berpikir ia dapat merayapi apa pun di situs.
Bahkan itu bisa diselesaikan dalam kasus ini. Kami dapat membandingkan pencocokan Allowdengan pencocokan Disallowdan menentukan bahwa kami tidak diizinkan untuk merayapi apa pun di / norobots /. Tapi itu rusak ketika berhadapan dengan wildcard:
User-agent: *
Disallow: /norobots/
Allow: /*.html$
Pertanyaannya, kemudian, apakah bot diizinkan merangkak /norobots/index.html?
The "pencocokan pertama" aturan menghilangkan semua ambiguitas, tapi saya sering melihat situs yang menunjukkan sesuatu seperti contoh Google tua, menempatkan lebih spesifik Allow setelah itu Disallow. Sintaks itu membutuhkan lebih banyak pemrosesan oleh bot dan mengarah ke ambiguitas yang tidak dapat diselesaikan.
Pertanyaan saya, lalu, apakah cara yang benar untuk melakukan sesuatu? Apa yang diharapkan oleh Webmaster dari bot yang berperilaku baik ketika menangani robots.txt?