Technical SEO menengah
Robots.txt: Cara Kerja, Aturan, dan Kesalahan Umum
Berkas teks kecil di root domain yang dibaca crawler sebelum mengambil URL apa pun. Sederhana di permukaan, tapi aturan pencocokannya sering disalahpahami, dan kesalahan satu karakter bisa menghapus seluruh situs dari antrean crawl.
robots.txt adalah berkas di https://domain/robots.txt yang memberi tahu crawler bagian mana dari situs yang boleh atau tidak boleh mereka ambil. Ia mengatur crawling, bukan indexing: URL yang diblokir masih bisa muncul di hasil pencarian kalau ada link yang menunjuk ke sana, hanya tanpa isi.
Apa yang dilakukan robots.txt, dan apa yang tidak
| Bisa | Tidak bisa |
|---|---|
| Mencegah crawler yang patuh mengambil URL dengan pola tertentu | Mencegah URL muncul di indeks (pakai noindex) |
| Mengurangi beban server dari crawler yang mengambil halaman tak penting (filter, hasil pencarian internal, kalender tanpa batas) | Mengamankan data. Berkasnya publik dan crawler jahat mengabaikannya |
| Memberi tahu lokasi sitemap | Menghapus URL yang sudah terindeks |
| Membedakan aturan per crawler (Googlebot, Bingbot, GPTBot, dan lainnya) | Mengatur kecepatan crawl Google (Crawl-delay diabaikan Googlebot) |
Sintaks yang dipahami Google
Google mendokumentasikan empat field. Yang lain diabaikan tanpa error.
| Field | Fungsi | Catatan |
|---|---|---|
User-agent: | Membuka grup aturan untuk crawler tertentu | Tidak peka huruf besar-kecil. * berarti semua crawler yang tidak punya grup sendiri. |
Disallow: | Path yang tidak boleh diambil | Peka huruf besar-kecil. Disallow: kosong berarti boleh semua. |
Allow: | Pengecualian dari Disallow | Dipakai untuk membuka sub-path di dalam direktori yang diblokir. |
Sitemap: | URL absolut sitemap | Boleh lebih dari satu. Berlaku global, tidak terikat grup. |
# Contoh robots.txt untuk situs statis sederhana
User-agent: *
Disallow: /cari/
Disallow: /admin/
Allow: /admin/public/
User-agent: GPTBot
Disallow: /
Sitemap: https://www.example.com/sitemap.xmlAturan pencocokan: siapa yang menang
Bagian inilah yang paling sering salah dipahami dan paling jarang dijelaskan. Google mengevaluasi robots.txt dengan tiga aturan:
- Grup yang dipakai adalah grup dengan user-agent paling spesifik yang cocok. Googlebot hanya membaca grup
User-agent: Googlebotkalau ada; kalau ada, grup*diabaikan sama sekali untuk Googlebot. Ini sering mengejutkan: menambah grup khusus Googlebot berarti semua aturan di grup*tidak lagi berlaku untuk Googlebot. - Di dalam grup, aturan dengan path paling panjang (paling spesifik) menang, terlepas dari urutannya di berkas.
- Kalau panjangnya sama, aturan yang paling longgar (Allow) dipakai.
| Aturan | URL diuji | Hasil | Kenapa |
|---|---|---|---|
Disallow: /blog/Allow: /blog/seo/ | /blog/seo/canonical/ | Boleh | /blog/seo/ (10 karakter) lebih panjang dari /blog/ (6). |
Disallow: /*.pdf$ | /panduan.pdf | Diblokir | $ menandai akhir URL; * mencocokkan apa saja. |
Disallow: /*.pdf$ | /panduan.pdf?v=2 | Boleh | URL tidak berakhir dengan .pdf. |
Disallow: /produk | /produk-baru/ | Diblokir | Path dicocokkan sebagai awalan. Tanpa garis miring, semua yang diawali /produk kena. |
Disallow: /Allow: / | /apa-saja/ | Boleh | Panjang sama, Allow menang. |
User-agent: *Disallow: /privat/User-agent: GooglebotDisallow: /draf/ | /privat/ untuk Googlebot | Boleh | Googlebot hanya membaca grupnya sendiri. Blokir /privat/ tidak berlaku untuknya. |
Kalau ingin menguji aturan tanpa menunggu Google, robots.txt tester di situs ini meniru tiga aturan di atas dan menunjukkan aturan mana yang menang.
Bagaimana Google memperlakukan berkas yang bermasalah
Yang terjadi kalau robots.txt tidak bisa diambil ternyata bergantung pada kode statusnya, dan dokumentasi Google cukup rinci di sini.
| Respons | Perlakuan Google |
|---|---|
| 200 | Dipakai apa adanya. Kalau isinya kosong, semua boleh di-crawl. |
| 3xx | Diikuti sampai lima hop. Lebih dari itu dianggap 404. |
| 404 dan 4xx lain | Dianggap tidak ada robots.txt: semua boleh di-crawl. Kecuali 429, yang memengaruhi laju crawl. |
| 5xx | 12 jam pertama: crawling situs dihentikan sambil dicoba lagi. Sampai 30 hari: memakai salinan cache terakhir. Setelah 30 hari: dianggap tidak ada batasan kalau situs bisa diakses. |
| Ukuran > 500 KiB | Bagian setelah batas itu diabaikan. |
Implikasi praktisnya: kalau server mengembalikan 503 untuk robots.txt saat maintenance, Google berhenti meng-crawl seluruh situs, bukan hanya berkas itu. Google juga men-cache robots.txt umumnya sampai 24 jam, jadi perubahan tidak langsung berlaku.
Lima kesalahan yang sering terjadi
- Memblokir CSS dan JavaScript. Google perlu memuatnya untuk merender halaman. Kalau diblokir, Google melihat halaman yang rusak dan bisa menilai kontennya tidak ada. Cek dengan URL Inspection, bagian "Page resources".
- Memakai robots.txt untuk menghapus halaman dari hasil pencarian. Halamannya tetap bisa tampil tanpa snippet. Pakai noindex, dan pastikan halamannya boleh di-crawl supaya noindex-nya terbaca.
Disallow: /yang tertinggal dari staging. Ini penyebab klasik seluruh situs hilang setelah peluncuran. Masukkan pemeriksaan robots.txt ke dalam checklist QA.- Menambah grup Googlebot tanpa menyalin aturan dari grup
*. Aturan umum langsung tidak berlaku untuk Googlebot. - Path tanpa garis miring awal atau dengan huruf besar yang salah.
Disallow: admin/tidak cocok dengan apa pun;Disallow: /Admin/tidak memblokir/admin/.
robots.txt dan crawler AI
Berkas yang sama dipakai untuk mengatur crawler dari OpenAI, Anthropic, Perplexity, dan token Google-Extended milik Google. Tiap vendor punya token berbeda untuk pelatihan model dan untuk pencarian, dan keputusan memblokir salah satunya punya konsekuensi berbeda. Daftar token per vendor beserta contoh berkasnya ada di panduan crawler AI dan robots.txt.
Cara mengecek
- Buka
https://domain/robots.txtdi browser. Pastikan status 200 dan isinya yang diharapkan, bukan halaman HTML. - Di Search Console, laporan Settings → robots.txt menampilkan versi yang terakhir diambil Google beserta tanggal dan status.
- Uji beberapa URL penting dengan robots.txt tester: beranda, satu halaman artikel, satu berkas CSS, satu gambar.
- Setelah mengubah berkas, tunggu sampai Google mengambil ulang (umumnya di bawah 24 jam), lalu cek URL Inspection pada URL yang tadinya diblokir.
Rujukan
- Introduction to robots.txt Google Search Central
- How Google interprets the robots.txt specification Google Search Central
- Create and submit a robots.txt file Google Search Central
- RFC 9309: Robots Exclusion Protocol IETF