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 sederhana 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.
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:
|
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) |
Karena server tidak dapat memberikan respons yang pasti untuk permintaan robots.txt Google,
Google untuk sementara waktu menafsirkan error server
Jika Anda harus menangguhkan crawling untuk sementara, sebaiknya tayangkan
kode status HTTP
Jika kami dapat menyimpulkan bahwa konfigurasi situs tidak benar sehingga menampilkan
|
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.
Saat ini, 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:
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-news mengikuti grup 1, karena grup 1 adalah grup yang paling spesifik.
|
Googlebot (web) | googlebot mengikuti grup 3. |
Googlebot Storebot |
Storebot-Google mengikuti grup 2, karena tidak ada grup
Storebot-Google yang spesifik.
|
Googlebot-News (saat meng-crawl gambar) |
Saat meng-crawl gambar, googlebot-news mengikuti grup 1.
googlebot-news tidak meng-crawl gambar dari Google Gambar, jadi googlebot-news hanya
mengikuti grup 1.
|
Otherbot (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 Cocok dengan:
Tidak cocok dengan:
|
/fish* |
Setara dengan Cocok dengan:
Tidak cocok dengan:
|
/fish/ |
Cocok dengan apa pun di folder Cocok dengan:
Tidak cocok dengan:
|
/*.php |
Cocok dengan jalur apa pun yang berisi Cocok dengan:
Tidak cocok dengan:
|
/*.php$ |
Cocok dengan jalur apa pun yang diakhiri dengan Cocok dengan:
Tidak cocok dengan:
|
/fish*.php |
Cocok dengan jalur apa pun yang berisi Cocok dengan:
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: |