Cara Google menafsirkan spesifikasi robots.txt
Crawler otomatis Google mendukung Protokol Pengecualian Robot (REP). Artinya, sebelum meng-crawl situs, crawler Google mendownload dan mengurai file robots.txt situs untuk mengekstrak informasi tentang bagian situs mana yang boleh di-crawl. REP tidak berlaku untuk crawler Google yang dikontrol oleh pengguna (misalnya langganan feed), atau crawler yang digunakan untuk meningkatkan keamanan pengguna (misalnya analisis malware).
Halaman ini menjelaskan penafsiran Google terkait REP. Untuk mengetahui standar asli, lihat RFC 9309.
Apa itu file robots.txt
Jika Anda tidak ingin crawler mengakses bagian situs Anda, Anda dapat membuat file robots.txt dengan aturan sesuai kebutuhan. File robots.txt adalah file teks yang berisi aturan mengenai bagian situs mana saja yang dapat diakses oleh crawler. Misalnya, file robots.txt untuk example.com mungkin akan terlihat seperti ini:
# This robots.txt file controls crawling of URLs under https://example.com. # All crawlers are disallowed to crawl files in the "includes" directory, such # as .css, .js, but Google needs them for rendering, so Googlebot is allowed # to crawl them. User-agent: * Disallow: /includes/ User-agent: Googlebot Allow: /includes/ Sitemap: https://example.com/sitemap.xml
Jika Anda baru mengenalnya, mulai pelajari robots.txt dengan membaca pengantar robots.txt. Anda juga dapat menemukan tips untuk membuat file robots.txt.
Lokasi file dan rentang validitas
  Anda harus meletakkan file robots.txt di direktori tingkat atas situs, pada protokol
  yang didukung. URL untuk file robots.txt (seperti URL lainnya) peka huruf besar/kecil. Untuk
  Google Penelusuran, protokol yang didukung adalah HTTP, HTTPS, dan FTP. Pada HTTP dan HTTPS, crawler
  mengambil file robots.txt dengan permintaan GET non-kondisional HTTP; pada FTP,
  crawler menggunakan perintah RETR (RETRIEVE) standar dengan login secara anonim.
Hindari menayangkan versi file robots.txt yang berbeda kepada pemohon yang berbeda (dengan kata lain, penyelubungan), karena hal ini akan menimbulkan beban pemeliharaan, dapat mencegah Anda men-debug masalah crawl, atau memiliki konsekuensi yang tidak diinginkan.
Aturan yang dicantumkan pada file robots.txt hanya berlaku untuk host, protokol, dan nomor port tempat file robots.txt dihosting.
Contoh URL robots.txt yang valid
Tabel berikut berisi contoh URL robots.txt dan jalur URL yang valid. Kolom satu berisi URL file robots.txt, dan kolom dua berisi domain tempat file robots.txt tersebut akan berlaku dan tidak berlaku.
| Contoh URL robots.txt | |
|---|---|
| https://example.com/robots.txt | File ini merupakan kasus umum. File tersebut tidak valid untuk subdomain, protokol, atau nomor port lain. File ini valid untuk semua file di semua subdirektori di host, protokol, dan nomor port yang sama. Valid untuk: 
 Tidak valid untuk: 
 | 
| https://www.example.com/robots.txt | Robots.txt di subdomain hanya valid untuk subdomain tersebut. 
          Valid untuk:
           Tidak valid untuk: 
 | 
| https://example.com/folder/robots.txt | Bukan file robots.txt yang valid. Crawler tidak memeriksa keberadaan file robots.txt di subdirektori. | 
| https://www.exämple.com/robots.txt | IDN setara dengan versi punycode miliknya. Lihat juga RFC 3492. Valid untuk: 
 
          Tidak valid untuk:
           | 
| ftp://example.com/robots.txt | 
          Valid untuk:
           
          Tidak valid untuk:
           | 
| https://212.96.82.21/robots.txt | Robots.txt dengan alamat IP sebagai nama host hanya valid untuk crawling alamat IP tersebut sebagai nama host. Robots.txt ini tidak otomatis valid untuk semua situs yang dihosting di alamat IP tersebut (meskipun ada kemungkinan file robots.txt digunakan bersama, yang dalam hal ini juga akan tersedia pada nama host yang digunakan bersama). 
          Valid untuk:
           
          Tidak valid untuk:
           | 
| https://example.com:443/robots.txt | 
          Nomor port standar ( Valid untuk: 
 
          Tidak valid untuk:
           | 
| https://example.com:8181/robots.txt | File robots.txt di nomor port non-standar hanya valid untuk konten yang disediakan melalui nomor port tersebut. 
          Valid untuk:
           
          Tidak valid untuk:
           | 
Penanganan kode status HTTP dan error
Saat meminta file robots.txt, kode status HTTP dari respons server memengaruhi bagaimana file robots.txt akan digunakan oleh crawler Google. Tabel berikut merangkum cara Googlebot memperlakukan file robots.txt untuk kode status HTTP yang berbeda.
| Penanganan kode status HTTP dan error | |
|---|---|
| 2xx (success) | Kode status HTTP yang menunjukkan keberhasilan meminta crawler Google memproses file robots.txt seperti yang disediakan oleh server. | 
| 3xx (redirection) | 
          Google mengikuti setidaknya lima lompatan pengalihan seperti yang didefinisikan oleh
          RFC 1945 lalu
          berhenti dan memperlakukannya sebagai  Google tidak mengikuti pengalihan logis di file robots.txt (pengalihan jenis frame, JavaScript, atau refresh meta). | 
| 4xx (client errors) | 
          Crawler Google memperlakukan semua error  | 
| 5xx (server errors) | Jika Google menemukan file robots.txt tetapi tidak dapat mengambilnya, Google akan menunjukkan perilaku berikut: 
 | 
| Error lainnya | File robots.txt yang tidak dapat diambil karena masalah jaringan atau DNS, seperti waktu tunggu habis, respons tidak valid, koneksi direset atau terputus, dan error pemotongan HTTP, akan diperlakukan sebagai error server. | 
Menyimpan ke cache
  Google biasanya meng-cache konten file robots.txt hingga 24 jam, tetapi dapat meng-cache-nya
  lebih lama dalam situasi ketika pemuatan ulang versi yang di-cache tidak memungkinkan (misalnya karena
  waktu tunggu habis atau error 5xx). Respons yang di-cache dapat digunakan bersama dengan crawler lain.
  Google dapat menambah atau mengurangi masa aktif cache berdasarkan header HTTP
  max-age Cache-Control.
Format file
  File robots.txt harus berupa
  file teks biasa berenkode UTF-8
  dan setiap baris harus dipisahkan dengan CR, CR/LF, atau
  LF.
Google mengabaikan baris yang tidak valid dalam file robots.txt, termasuk Byte Order Mark (BOM) Unicode di awal file robots.txt, dan hanya menggunakan baris yang valid. Misalnya, jika konten yang didownload adalah HTML, bukan aturan robots.txt, Google akan mencoba mengurai konten dan mengekstrak aturan, lalu mengabaikan yang lain.
Demikian pula jika encoding karakter file robots.txt bukan UTF-8, Google dapat mengabaikan karakter yang bukan bagian dari rentang UTF-8. Keadaan ini berpotensi membuat aturan robots.txt tidak valid.
Google menerapkan batas maksimal ukuran file robots.txt sebesar 500 kibibyte (KiB). Konten yang melampaui ukuran file maksimum akan diabaikan. Anda dapat mengurangi ukuran file robots.txt dengan menggabungkan aturan yang menyebabkan ukuran file robots.txt terlalu besar. Misalnya, tempatkan materi yang dikecualikan di direktori terpisah.
Sintaksis
  Baris robots.txt yang valid terdiri dari sebuah kolom, sebuah titik dua, dan sebuah nilai. Spasi bersifat opsional, tetapi
  direkomendasikan untuk meningkatkan keterbacaan. Spasi di awal dan di akhir baris akan
  diabaikan. Untuk menyertakan komentar, awali komentar Anda dengan karakter #. Perlu
  diperhatikan bahwa apa pun setelah karakter # akan diabaikan. Format umumnya adalah
  <field>:<value><#optional-comment>.
  Google mendukung kolom berikut (kolom lain seperti crawl-delay tidak didukung):
- user-agent: mengidentifikasi crawler mana yang akan menerima penerapan aturan.
- allow: jalur URL yang boleh di-crawl.
- disallow: jalur URL yang tidak boleh di-crawl.
- sitemap: URL lengkap peta situs.
  Kolom allow dan disallow juga disebut dengan aturan (atau
  perintah). Aturan tersebut selalu ditentukan dalam bentuk
  rule: [path] dengan [path] yang bersifat opsional. Secara default, tidak ada
  pembatasan crawling untuk crawler yang ditentukan. Crawler akan mengabaikan aturan tanpa
  [path].
  Nilai [path], jika ditentukan, berkaitan dengan root situs dari tempat
  file robots.txt diambil (menggunakan protokol, nomor port, host, dan nama domain yang sama).
  Nilai jalur harus diawali dengan / untuk menentukan root dan nilainya bersifat
  peka huruf besar/kecil. Pelajari lebih lanjut
  Pencocokan URL berdasarkan nilai jalur.
user-agent
  Baris user-agent mengidentifikasi crawler mana yang akan menerima penerapan aturan. Lihat
  String agen pengguna dan crawler Google
  untuk mengetahui daftar lengkap string agen pengguna yang dapat Anda gunakan dalam file robots.txt.
  Nilai baris user-agent tidak peka huruf besar/kecil.
disallow
  Aturan disallow menentukan jalur yang tidak boleh diakses oleh crawler
  yang diidentifikasi oleh baris user-agent yang dikelompokkan dengan aturan disallow.
  Crawler akan mengabaikan aturan tanpa jalur.
Google tidak dapat mengindeks konten halaman yang tidak boleh di-crawl, tetapi masih dapat mengindeks URL dan menampilkannya di hasil penelusuran tanpa cuplikan. Pelajari cara memblokir pengindeksan.
  Nilai aturan disallow peka huruf besar/kecil.
Penggunaan:
disallow: [path]
allow
  Aturan allow menentukan jalur yang dapat diakses oleh crawler
  yang ditetapkan. Jika tidak ada jalur yang ditetapkan, aturan akan diabaikan.
  Nilai aturan allow peka huruf besar/kecil.
Penggunaan:
allow: [path]
sitemap
  Google, Bing, dan mesin telusur utama lainnya mendukung kolom sitemap di
  robots.txt, seperti yang didefinisikan oleh sitemaps.org.
  Nilai kolom sitemap peka huruf besar/kecil.
Penggunaan:
sitemap: [absoluteURL]
  Baris [absoluteURL] mengarah ke lokasi peta situs atau file indeks peta situs.
  Harus berupa URL yang sepenuhnya memenuhi syarat, termasuk protokol dan host, serta tidak harus berupa
  URL yang dienkode. URL tidak harus berada di host yang sama dengan file robots.txt. Anda dapat
  menentukan beberapa kolom sitemap. Kolom peta situs tidak terikat dengan
  agen pengguna mana pun dan dapat diikuti oleh semua crawler, selama tidak ada larangan crawling.
Contoh:
user-agent: otherbot disallow: /kale sitemap: https://example.com/sitemap.xml sitemap: https://cdn.example.org/other-sitemap.xml sitemap: https://ja.example.org/テスト-サイトマップ.xml
Pengelompokan baris dan aturan
  Anda dapat mengelompokkan aturan yang berlaku untuk beberapa agen pengguna dengan mengulangi
  baris user-agent untuk setiap crawler.
Contoh:
user-agent: a disallow: /c user-agent: b disallow: /d user-agent: e user-agent: f disallow: /g user-agent: h
Dalam contoh ini, ada empat grup aturan yang berbeda:
- Satu grup untuk agen pengguna "a".
- Satu grup untuk agen pengguna "b".
- Satu grup untuk agen pengguna "e" dan "f".
- Satu grup untuk agen pengguna "h".
Untuk deskripsi teknis grup, lihat bagian 2.1 REP.
Urutan prioritas untuk agen pengguna
  Hanya satu grup yang valid untuk crawler tertentu. Crawler Google menentukan
  grup aturan yang tepat dengan menelusuri file robots.txt untuk menemukan grup yang memiliki agen pengguna
  paling spesifik dan cocok dengan agen pengguna crawler. Grup lain akan diabaikan. Semua teks yang tidak cocok akan
  diabaikan (misalnya googlebot/1.2 dan googlebot*
  setara dengan googlebot). Urutan grup dalam file robots.txt
  tidak relevan.
  Jika ada lebih dari satu grup khusus yang dideklarasikan untuk agen pengguna, semua aturan dari
  grup yang berlaku untuk agen pengguna tertentu akan digabungkan secara internal menjadi satu grup. Grup
  khusus agen pengguna dan grup global (*) tidak digabungkan.
Contoh
Pencocokan kolom user-agent
user-agent: googlebot-news (group 1) user-agent: * (group 2) user-agent: googlebot (group 3)
Berikut cara crawler memilih grup yang relevan:
| Grup yang diikuti per crawler | |
|---|---|
| Googlebot-News | googlebot-newsmengikuti grup 1, karena grup 1 adalah grup yang paling spesifik. | 
| Googlebot (web) | googlebotmengikuti grup 3. | 
| Googlebot Storebot | Storebot-Googlemengikuti grup 2, karena tidak ada grupStorebot-Googleyang spesifik. | 
| Googlebot-News (saat meng-crawl gambar) | Saat meng-crawl gambar, googlebot-newsmengikuti grup 1.googlebot-newstidak meng-crawl gambar dari Google Gambar, jadi googlebot-news hanya
        mengikuti grup 1. | 
| Bot lain (web) | Crawler Google lain mengikuti grup 2. | 
| Otherbot (berita) | Crawler Google lain yang meng-crawl konten berita, tetapi tidak mengidentifikasi diri sebagai googlebot-news, mengikuti grup 2. Meskipun jika ada entri untuk crawler
        terkait, entri hanya valid jika benar-benar cocok. | 
Pengelompokan aturan
Jika ada beberapa grup dalam file robots.txt yang relevan untuk agen pengguna tertentu, crawler Google menggabungkan grup-grup tersebut secara internal. Contoh:
user-agent: googlebot-news disallow: /fish user-agent: * disallow: /carrots user-agent: googlebot-news disallow: /shrimp
Crawler mengelompokkan aturan secara internal berdasarkan agen pengguna, misalnya:
user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots
  Aturan selain allow, disallow, dan user-agent akan
  diabaikan oleh parser robots.txt. Artinya, cuplikan robots.txt berikut diperlakukan
  sebagai satu grup, sehingga user-agent a dan b
  terpengaruh oleh aturan disallow: /:
user-agent: a sitemap: https://example.com/sitemap.xml user-agent: b disallow: /
  Saat memproses aturan robots.txt, crawler akan mengabaikan baris sitemap.
  Misalnya, seperti inilah crawler akan memahami cuplikan robots.txt sebelumnya:
user-agent: a user-agent: b disallow: /
Pencocokan URL berdasarkan nilai jalur
  Google menggunakan nilai jalur di aturan allow dan disallow sebagai
  dasar dalam menentukan apakah suatu aturan berlaku untuk URL khusus di suatu situs atau tidak. Tindakan ini berfungsi dengan
  membandingkan aturan dengan komponen jalur URL yang akan diambil crawler.
  Karakter ASCII yang bukan 7 bit di dalam jalur dapat disertakan sebagai karakter UTF-8 atau sebagai karakter
  yang dienkode UTF-8 percent-escaped berdasarkan
  RFC 3986.
Google, Bing, dan mesin telusur utama lainnya mendukung bentuk terbatas karakter pengganti untuk nilai jalur. Karakter pengganti ini adalah:
- *menentukan 0 atau lebih instance karakter valid apa pun.
- $menentukan akhir URL.
Tabel berikut menunjukkan pengaruh berbagai karakter pengganti terhadap penguraian:
| Contoh kecocokan jalur | |
|---|---|
| / | Cocok dengan root dan URL level lebih rendah. | 
| /* | Setara dengan /. Karakter pengganti di akhir diabaikan. | 
| /$ | Hanya cocok dengan root. Setiap URL level lebih rendah diizinkan untuk crawling. | 
| /fish | 
          Cocok dengan jalur apa pun yang diawali dengan  Hasil yang cocok: 
 Tidak cocok dengan: 
 | 
| /fish* | 
          Setara dengan  Hasil yang cocok: 
 Tidak cocok dengan: 
 | 
| /fish/ | 
          Cocok dengan apa pun di folder  Hasil yang cocok: 
 Tidak cocok dengan: 
 | 
| /*.php | 
          Cocok dengan jalur apa pun yang berisi  Hasil yang cocok: 
 Tidak cocok dengan: 
 | 
| /*.php$ | 
          Cocok dengan jalur apa pun yang diakhiri dengan  Hasil yang cocok: 
 Tidak cocok dengan: 
 | 
| /fish*.php | 
          Cocok dengan jalur apa pun yang berisi  Hasil yang cocok: 
 
          Tidak cocok dengan:
           | 
Urutan prioritas untuk aturan
Saat mencocokkan aturan robots.txt dengan URL, crawler menggunakan aturan paling spesifik berdasarkan panjang jalur aturan. Jika terdapat aturan yang bertentangan, termasuk aturan yang menggunakan karakter pengganti, Google menggunakan aturan yang paling longgar.
Contoh berikut menunjukkan aturan mana yang akan diterapkan oleh crawler Google pada URL yang ditentukan.
| Contoh situasi | |
|---|---|
| https://example.com/page | allow: /p disallow: / 
          Aturan yang berlaku:  | 
| https://example.com/folder/page | allow: /folder disallow: /folder 
          Aturan yang berlaku:  | 
| https://example.com/page.htm | allow: /page disallow: /*.htm 
          Aturan yang berlaku:  | 
| https://example.com/page.php5 | allow: /page disallow: /*.ph 
          Aturan yang berlaku:  | 
| https://example.com/ | allow: /$ disallow: / 
          Aturan yang berlaku:  | 
| https://example.com/page.htm | allow: /$ disallow: / 
          Aturan yang berlaku:  |