SEO & Discoverability

Cara menulis robots.txt yang benar-benar memblokir scraper AI

Panduan praktis untuk memblokir crawler AI yang patuh, memahami batasan robots.txt, dan menambahkan kontrol sisi server di tempat yang penting.

The Wux Webtools Team The Wux Webtools Team 9 menit baca Dibantu AI, ditinjau manusia
Illustration of crawler bots approaching a website gate controlled by a robots.txt file.
Daftar isi
  1. Kebenaran yang kurang nyaman tentang robots.txt
  2. Apa yang dapat dan tidak dapat dilakukan robots.txt
  3. Mulailah dengan keputusan kebijakan Anda
  4. Template robots.txt yang masuk akal untuk memblokir AI
  5. Berhati-hatilah dengan Google-Extended
  6. Uji file seperti kode produksi
  7. Tambahkan kontrol sisi server untuk bot yang mengabaikan aturan
  8. Pembatasan laju
  9. Pemfilteran user-agent
  10. Kontrol IP dan ASN
  11. Autentikasi dan paywall
  12. Minimalisasi konten
  13. Gunakan tag meta robots untuk aturan tingkat halaman
  14. Pantau log setelah publikasi
  15. Jaga file tetap kecil dan ditinjau
  16. Intinya

Kebenaran yang kurang nyaman tentang robots.txt

File robots.txt bukanlah gembok. Ia adalah tanda di pintu.

Perbedaan itu penting ketika tim bertanya apakah mereka bisa “memblokir scraper AI” dengan satu file teks kecil. Untuk crawler bereputasi yang mengikuti Robots Exclusion Protocol, ya: robots.txt yang ditulis dengan benar dapat memberi tahu mereka agar tidak merayapi halaman Anda. Untuk scraper yang tidak dikenal, peniru, otomasi browser, dan bot yang memang tidak peduli, file itu tidak akan melakukan apa pun dengan sendirinya.

Jadi tujuan praktisnya bukan “membuat scraping mustahil.” Tujuannya adalah:

  • Memberi tahu crawler AI yang patuh agar tidak menggunakan situs Anda.
  • Menghindari pemblokiran mesin pencari atau layanan berguna secara tidak sengaja.
  • Menambahkan kontrol sisi server yang lebih kuat untuk penyalahgunaan.
  • Menjaga kebijakan tetap mudah dipelihara saat nama crawler berubah.

Itulah versi yang membosankan. Itu juga versi yang berhasil.

Apa yang dapat dan tidak dapat dilakukan robots.txt

File robots.txt berada di root sebuah situs:

https://example.com/robots.txt

Crawler memintanya sebelum merayapi. File tersebut berisi kelompok aturan. Setiap kelompok dimulai dengan satu atau beberapa baris User-agent, diikuti oleh direktif Allow atau Disallow.

Blokir seluruh situs yang sederhana terlihat seperti ini:

User-agent: GPTBot
Disallow: /

Itu berarti: jika Anda adalah GPTBot, jangan merayapi apa pun di situs ini.

Namun robots.txt memiliki batasan tegas:

  1. Ia bersifat sukarela. Pelaku buruk dapat mengabaikannya.
  2. Ia tidak mencegah URL diminta oleh browser atau skrip biasa.
  3. Ia tidak menghapus konten yang sudah dikumpulkan di tempat lain.
  4. Ia tidak mendefinisikan hak cipta, lisensi, atau hak pelatihan dengan sendirinya.
  5. Ia dapat salah dikonfigurasi sehingga memblokir bot yang keliru.

Jika Anda membutuhkan kontrol akses yang sungguh-sungguh, gunakan autentikasi, otorisasi, pembatasan laju, kontrol berbasis IP, manajemen bot, atau kontrol hukum. Robots.txt tetap berguna, tetapi ia seharusnya menjadi bagian dari strategi perlindungan konten yang lebih luas.

Ini mirip dengan masalah tata kelola web lainnya: kontrol yang terlihat jarang merupakan keseluruhan kontrol. Jika organisasi Anda sudah memiliki penggunaan AI yang tidak terkelola secara internal, prinsip yang sama berlaku; audit shadow AI cepat sering kali lebih berguna daripada berpura-pura bahwa satu dokumen kebijakan menyelesaikan masalah.

Mulailah dengan keputusan kebijakan Anda

Sebelum mengedit file, tentukan apa yang sebenarnya ingin Anda blokir.

Setidaknya ada empat hal berbeda yang biasanya dimaksud orang dengan “scraper AI”:

  • Crawler yang digunakan untuk mengumpulkan data pelatihan.
  • Crawler pencarian AI atau mesin jawaban.
  • Fetcher yang dipicu pengguna, misalnya ketika seseorang meminta produk AI merangkum sebuah URL.
  • Scraper generik yang berpura-pura menjadi browser biasa.

Anda mungkin ingin memblokir semuanya. Atau Anda mungkin menginginkan penemuan melalui pencarian sambil memilih keluar dari pelatihan model. Keduanya bukan kebijakan yang sama.

Misalnya, OpenAI mendokumentasikan user agent terpisah untuk tujuan yang berbeda, termasuk GPTBot, ChatGPT-User, dan OAI-SearchBot. Google menggunakan Google-Extended sebagai token kontrol untuk beberapa kasus penggunaan Gemini dan Vertex AI, sementara perayapan Google Search biasa ditangani oleh user agent Googlebot lainnya.

Pemisahan itu penting. Jika Anda memblokir user agent yang luas secara ceroboh, Anda dapat merusak visibilitas pencarian biasa saat mencoba memblokir pelatihan AI.

Template robots.txt yang masuk akal untuk memblokir AI

Berikut adalah titik awal konservatif untuk memblokir beberapa crawler terkait AI yang umum didokumentasikan sambil membiarkan crawler pencarian umum tetap berjalan:

# AI training and AI product crawlers
User-agent: GPTBot
Disallow: /

User-agent: ChatGPT-User
Disallow: /

User-agent: OAI-SearchBot
Disallow: /

User-agent: Google-Extended
Disallow: /

User-agent: CCBot
Disallow: /

User-agent: ClaudeBot
Disallow: /

User-agent: Claude-Web
Disallow: /

User-agent: PerplexityBot
Disallow: /

User-agent: Amazonbot
Disallow: /

User-agent: Bytespider
Disallow: /

User-agent: Meta-ExternalAgent
Disallow: /

# Default rule for other crawlers
User-agent: *
Allow: /

Ini bukan daftar universal yang ajaib. Ini adalah pola yang dapat dipelihara.

Beberapa catatan:

  • Disallow: / berarti “jangan merayapi path apa pun.”
  • User-agent: * berlaku untuk crawler yang tidak cocok dengan kelompok yang lebih spesifik.
  • Allow: / tidak benar-benar wajib untuk kelompok default, tetapi membuat maksud Anda jelas.
  • Jaga komentar tetap singkat. Beberapa parser cukup toleran, tetapi robots.txt sebaiknya tetap membosankan.
  • Jangan sertakan URL privat di robots.txt. File ini bersifat publik, dan mencantumkan path sensitif dapat mengiklankannya.

Poin terakhir layak diulang. Robots.txt bukan mekanisme kerahasiaan. Jika /client-contracts/ tidak boleh publik, lindungi dengan autentikasi. Jangan sekadar melakukan disallow.

Berhati-hatilah dengan Google-Extended

Google-Extended sering disalahpahami. Ini tidak sama dengan memblokir Google Search.

Menurut dokumentasi Google, Google-Extended adalah token produk mandiri yang dapat digunakan penerbit untuk mengelola apakah konten situs boleh membantu meningkatkan kemampuan Gemini dan Vertex AI tertentu. Memblokirnya seharusnya, dengan sendirinya, tidak memblokir Googlebot dari perayapan untuk Search.

Meski begitu, jangan mengganti semua direktif Google dengan blokir luas seperti ini kecuali Anda benar-benar bermaksud demikian:

User-agent: Googlebot
Disallow: /

Itu akan memberi tahu crawler utama Google Search agar tidak merayapi situs Anda. Untuk sebagian besar situs web publik, itu bukan yang Anda inginkan.

Perbedaan yang sama juga berlaku di tempat lain. Beberapa vendor memisahkan crawler pelatihan dari penjelajahan yang dipicu pengguna atau crawler pencarian AI. Vendor lain tidak. Anda perlu membaca dokumentasi untuk bot yang Anda pedulikan dan memperlakukan robots.txt sebagai file hidup, bukan kotak centang sekali saja.

Uji file seperti kode produksi

Robots.txt terlihat sederhana, sehingga mudah rusak.

Kesalahan umum meliputi:

  • Mengunggahnya ke tempat yang salah, seperti /assets/robots.txt alih-alih /robots.txt.
  • Menggunakan smart quotes yang disalin dari editor dokumen.
  • Memblokir semua crawler dengan User-agent: * dan Disallow: / secara tidak sengaja.
  • Menganggap file milik satu domain berlaku untuk subdomain lain.
  • Lupa bahwa host http://, https://, www, dan non-www dapat ditangani berbeda tergantung pengaturan Anda.

Untuk situs multi-domain, periksa setiap host kanonis. File robots di https://www.example.com/robots.txt tidak otomatis mengatur https://app.example.com/robots.txt.

Saat men-debug, periksa respons HTTP yang sebenarnya, bukan hanya apa yang ditampilkan pratinjau CMS Anda. Anda menginginkan respons 200 OK, tipe konten text/plain jika memungkinkan, dan file persis yang Anda harapkan. Jika redirect, caching, atau aturan CDN terlibat, inspeksi header mentah membantu. Alur kerja dalam men-debug redirect dan header HTTP di produksi berlaku langsung di sini.

Tambahkan kontrol sisi server untuk bot yang mengabaikan aturan

Jika crawler patuh, robots.txt adalah sinyal paling bersih. Jika crawler bersifat abusif, Anda membutuhkan penegakan.

Kontrol praktis meliputi:

Pembatasan laju

Tetapkan ambang untuk pola permintaan yang tidak biasa: terlalu banyak halaman per menit, penelusuran pagination yang dalam, 404 berulang, atau volume permintaan tinggi dari sekumpulan kecil IP. Batas laju harus cukup longgar agar tidak menghukum pengguna sungguhan dan cukup ketat agar ekstraksi massal menjadi mahal.

Pemfilteran user-agent

Anda dapat memblokir user agent crawler AI yang terdokumentasi di server web, reverse proxy, CDN, atau lapisan aplikasi. Ini lebih kuat daripada robots.txt karena mengembalikan respons penolakan yang nyata.

Misalnya, Nginx dapat memblokir pola user agent, meskipun aturan produksi harus diuji dengan cermat:

if ($http_user_agent ~* "GPTBot|CCBot|ClaudeBot|Bytespider") {
    return 403;
}

Ini bukan solusi anti-gagal. String user-agent mudah dipalsukan. Namun ini menghentikan trafik yang jujur atau malas dan mengurangi beban.

Kontrol IP dan ASN

Beberapa operator menerbitkan rentang IP, tetapi banyak ekosistem scraper tidak. Pemblokiran berbasis IP dapat bekerja untuk penyalahgunaan yang jelas, terutama dari rentang cloud hosting tanpa trafik pengguna normal, tetapi juga dapat menimbulkan false positive. Gunakan log sebelum aturan.

Autentikasi dan paywall

Jika konten tidak boleh disalin dalam skala besar, jangan letakkan konten lengkap pada URL publik. Robots.txt tidak cocok untuk materi rahasia, basis data berlisensi, komunitas privat, atau arsip berbayar.

Minimalisasi konten

Terkadang perlindungan terbaik bersifat arsitektural. Jangan mengekspos API yang tidak perlu, payload JSON besar, metadata tersembunyi, endpoint draf, atau arsip penuh jika halaman publik hanya membutuhkan subset kecil. Situs yang banyak menggunakan gambar juga perlu memikirkan metadata apa yang mereka publikasikan; logika privasi dalam menghapus metadata EXIF sebelum membagikan foto secara online juga berlaku untuk operasi konten.

Gunakan tag meta robots untuk aturan tingkat halaman

Robots.txt mengontrol perayapan. Tag meta robots dan header X-Robots-Tag mengontrol perilaku pengindeksan dan snippet untuk mesin pencari dan crawler yang patuh.

Misalnya:

<meta name="robots" content="noindex, noarchive">

Atau sebagai header HTTP:

X-Robots-Tag: noindex, noarchive

Ini bukan perisai khusus AI. Ini berguna ketika Anda ingin sebuah halaman dapat diakses tetapi tidak diindeks. Namun, jika Anda memblokir crawler agar tidak mengambil halaman melalui robots.txt, crawler itu mungkin tidak pernah melihat tag meta tingkat halaman. Jangan mengandalkan tag noindex pada URL yang dilarang dirayapi oleh crawler.

Aturan kasarnya:

  • Gunakan robots.txt untuk mengurangi atau mencegah perayapan.
  • Gunakan meta robots atau X-Robots-Tag untuk mengontrol perilaku pengindeksan.
  • Gunakan kontrol sisi server untuk menegakkan akses.

Pantau log setelah publikasi

Menerbitkan file hanyalah langkah pertama. Setelah itu, periksa log Anda.

Cari:

  • Permintaan ke /robots.txt dari user agent yang Anda sebutkan.
  • Perayapan yang berlanjut setelah aturan disallow disajikan.
  • User agent mencurigakan dengan volume tinggi.
  • User agent yang menyerupai browser meminta ribuan halaman secara berurutan.
  • Akses berulang ke feed, sitemap, halaman pencarian, dan pagination.

Jika bot meminta robots.txt, melihat disallow penuh, lalu berhenti, robots.txt telah menjalankan tugasnya. Jika terus berjalan, pindahkan bot itu ke penegakan: batas laju, blokir, atau autentikasi.

Tinjau juga eksposur sitemap Anda. Sitemap berguna bagi mesin pencari, tetapi juga merupakan peta yang nyaman bagi scraper. Itu tidak berarti Anda harus menghapusnya dari situs biasa. Artinya, Anda tidak boleh menyertakan URL yang tidak ingin Anda biarkan ditemukan oleh sistem publik.

Jaga file tetap kecil dan ditinjau

Robots.txt cenderung membusuk. Tim pemasaran menambahkan microsite kampanye. Developer menambahkan path staging. Vendor mengubah nama crawler-nya. Dua tahun kemudian tidak ada yang tahu mengapa separuh aturan itu ada.

Perlakukan sebagai konfigurasi:

  • Simpan di version control jika memungkinkan.
  • Tambahkan komentar singkat untuk setiap kelompok crawler AI.
  • Tinjau setiap kuartal.
  • Periksa dokumentasi vendor sebelum menambahkan aturan luas.
  • Uji setelah perubahan CDN, CMS, atau hosting.

Jika situs Anda menerbitkan konten yang dibantu AI, pisahkan juga kebijakan crawler dari transparansi editorial. Memblokir scraper AI berkaitan dengan akses dan penggunaan ulang. Pengungkapan berkaitan dengan kepercayaan pembaca. Keduanya tumpang tindih secara etis, tetapi bukan kontrol yang sama. Pendekatan pengungkapan praktis dibahas dalam seperti apa pengungkapan AI yang jujur di situs web kecil.

<!-- tool-cta:start -->

💡 Coba ini: Setelah menambahkan aturan untuk crawler AI, konfirmasikan sintaksnya dengan Robots.txt Tester agar Anda tidak secara tidak sengaja memblokir bot yang sah juga.

<!-- tool-cta:end -->

Intinya

File robots.txt yang baik akan memblokir crawler AI yang patuh. Ia tidak akan menghentikan scraping yang gigih, string user-agent yang disalin, browser yang dikompromikan, atau orang yang menempelkan konten Anda ke sistem AI secara manual.

Itu tidak membuatnya tidak berguna. Itu menjadikannya satu lapisan.

Tulis aturan eksplisit untuk crawler AI yang terdokumentasi. Hindari blokir luas yang merusak visibilitas pencarian. Uji file yang disajikan, bukan drafnya. Pantau log. Tegakkan dengan kontrol sisi server ketika perilaku bergeser dari tidak diinginkan menjadi abusif.

Web selalu berjalan di atas campuran protokol, norma, dan penegakan. Robots.txt adalah lapisan norma. Gunakan, tetapi jangan mengiranya sebagai tembok.

Pertanyaan yang sering diajukan

Bisakah robots.txt menghentikan perusahaan AI melatih model dengan konten saya?
Ia dapat memberi tahu crawler AI yang patuh agar tidak merayapi situs Anda untuk tujuan tersebut. Ia tidak dapat secara teknis mencegah scraper yang tidak patuh mengakses halaman publik, dan tidak menghapus konten yang sudah dikumpulkan.
Haruskah saya memblokir User-agent: * untuk menghentikan semua scraper?
Biasanya tidak. `User-agent: *` berlaku untuk semua crawler yang tidak cocok dengan aturan yang lebih spesifik. `Disallow: /` di bawah kelompok itu dapat memblokir perayapan pencarian biasa dan bot berguna lainnya.
Apakah Google-Extended sama dengan Googlebot?
Tidak. Google mendokumentasikan `Google-Extended` sebagai token produk terpisah untuk mengontrol beberapa penggunaan Gemini dan Vertex AI. Memblokir `Googlebot` adalah tindakan yang jauh lebih luas dan dapat memengaruhi perayapan Google Search.
Bagaimana jika scraper AI mengabaikan robots.txt?
Beralihlah dari pemberian sinyal ke penegakan. Gunakan pembatasan laju, blokir user-agent, kontrol IP atau ASN jika sesuai, manajemen bot, autentikasi, serta eksposur API/konten yang lebih ketat.
Apakah saya membutuhkan robots.txt dan tag meta robots sekaligus?
Keduanya menyelesaikan masalah berbeda. Robots.txt mengontrol perayapan. Tag meta robots dan header `X-Robots-Tag` mengontrol perilaku pengindeksan dan snippet untuk crawler patuh yang dapat mengakses halaman.

Sumber & bacaan lebih lanjut

  1. RFC 9309: The Robots Exclusion Protocol
  2. Google Search Central: robots.txt specifications
  3. OpenAI: GPTBot documentation
  4. Google Search Central: Google-Extended
Tentang penulis
The Wux Webtools Team

Terakhir diperbarui:

Terus membaca