Crawler AI: kunjungan GPTBot dan ClaudeBot yang diukur serta pemblokiran dengan robots.txt dan nginx

Crawler AI adalah bot yang dipakai perusahaan AI untuk mengumpulkan halaman web demi pelatihan model, pencarian AI, dan menjawab pertanyaan pengguna. Untuk melihat seberapa sering bot ini mengunjungi server dengan konfigurasi Nginx + Apache, UA dalam log akses server asal selama 14 hari dicocokkan dengan rentang IP yang dipublikasikan setiap perusahaan; permintaan dari rentang resmi berjumlah 18,605, dan pengaturan untuk memblokir atau mengizinkannya di robots.txt dan nginx dirangkum berdasarkan dokumentasi resmi.
Periodenya 4–17 Oktober 2026; permintaan yang dijawab cache depan sehingga tidak sampai ke server asal, dan permintaan yang IP aslinya tidak tercatat, tidak termasuk dalam angka ini.
1️⃣ Mengenali crawler AI: UA di log akses dan rentang IP resmi
Tidak semua permintaan yang tercatat sebagai GPTBot di log berasal dari OpenAI. UA adalah teks yang ditulis dan dikirim sendiri oleh pihak yang meminta, sehingga siapa pun bisa mengirim permintaan dengan nama GPTBot atau ClaudeBot.
Karena itu, jumlah permintaan per nama bot dihitung dulu dari UA, lalu dicocokkan dengan rentang IP yang dipublikasikan setiap perusahaan. Berikut hasil penghitungan nama bot AI dalam log satu hari.
grep -oiE '(GPTBot|OAI-SearchBot|ChatGPT-User|ClaudeBot|Claude-User|Claude-SearchBot|PerplexityBot|Perplexity-User|Bytespider|CCBot|Amazonbot|meta-externalagent)/' access.log-20261018 | sort | uniq -c | sort -rn 2968 GPTBot/
2084 ClaudeBot/
622 meta-externalagent/
535 Amazonbot/
167 PerplexityBot/
99 OAI-SearchBot/
30 ChatGPT-User/
21 Claude-User/
17 Claude-SearchBot/
12 Meta-ExternalAgent/
10 Perplexity-User/
7 CCBot/Jika dihitung dengan [/] di belakang nama, teks yang bukan nama, seperti alamat kontak claudebot@ di dalam UA Claude-SearchBot, tidak ikut terhitung, dan nama yang tercatat dengan huruf besar-kecil berbeda dihitung terpisah. Berikutnya, dari kolom pertama diperiksa dari IP mana saja permintaan GPTBot datang.
grep 'GPTBot/' access.log-20261018 | awk '{print $1}' | sort | uniq -c | sort -rn | head -5 2524 74.7.x.x
428 185.152.x.x
12 34.53.x.x
1 74.7.x.x
1 172.182.x.xUntuk permintaan yang lewat CDN atau proxy, kolom pertama mencatat alamat server perantara, jadi baris seperti itu dicocokkan dengan alamat di kolom X-Forwarded-For di akhir baris log. OpenAI memublikasikan rentang IP GPTBot sebagai file JSON.
curl -s https://openai.com/gptbot.json -o gptbot.jsonApakah sebuah IP ada di dalam file rentang yang diunduh bisa diperiksa dengan ipaddress, modul bawaan Python.
# inrange.py — memeriksa apakah IP ada di dalam file rentang JSON
import json, sys, ipaddress
nets = [ipaddress.ip_network(p.get('ipv4Prefix') or p.get('ipv6Prefix')) for p in json.load(open(sys.argv[1]))['prefixes']]
for a in sys.argv[2:]:
ip = ipaddress.ip_address(a)
print(a, 'IN' if any(ip in n for n in nets) else 'OUT')Masukkan IP yang akan diperiksa setelah nama file rentang.
python3 inrange.py gptbot.json 74.7.x.x 34.53.x.x74.7.x.x IN
34.53.x.x OUTIP yang mengirim 2,524 permintaan berada di dalam rentang resmi, sedangkan IP yang mengirim 12 permintaan berada di luar rentang. Anthropic, Perplexity, Apple, Common Crawl, Google, dan Bing juga memublikasikan file rentang dengan format yang sama, sedangkan Amazonbot diperiksa dari apakah DNS baliknya berakhir dengan crawl.amazonbot.amazon. Ini sama seperti pemeriksaan imigrasi di bandara yang mencocokkan paspor, bukan nama di boarding pass.
Hasil pencocokan 14 hari dengan cara ini menunjukkan 70 IP bergantian memakai 23 nama bot, termasuk GPTBot, ClaudeBot, dan Googlebot, untuk mengirim 48,041 permintaan, dan 57% di antaranya ke alamat yang mencari kerentanan seperti .php atau .env. Semua 809 permintaan bernama Google-Extended juga berasal dari kelompok ini; menurut dokumentasi Google, Google-Extended adalah token khusus robots.txt yang tidak memiliki UA untuk permintaan HTTP.
2️⃣ Jumlah kunjungan per UA: pengukuran 14 hari dan tren mingguan
Tabel di bawah menunjukkan jumlah permintaan selama 14 hari, 4–17 Oktober. Untuk bot yang punya rentang resmi, hanya permintaan dari dalam rentang yang dihitung; bot yang tidak dicocokkan dengan rentang dihitung berdasarkan UA, tanpa kelompok penyamar.
| Bot | Perusahaan | Permintaan 14 hari | Cara verifikasi | Kelompok penyamar |
|---|---|---|---|---|
| ClaudeBot | Anthropic | 10,305 | Rentang IP resmi | 2,387 |
| PerplexityBot | Perplexity | 3,406 | Rentang IP resmi | 2,262 |
| GPTBot | OpenAI | 2,546 | Rentang IP resmi | 2,328 |
| OAI-SearchBot | OpenAI | 1,399 | Rentang IP resmi | 2,347 |
| ChatGPT-User | OpenAI | 334 | Rentang IP resmi | 2,409 |
| Applebot | Apple | 330 | Rentang IP resmi | 2,372 |
| CCBot | Common Crawl | 275 | Rentang IP resmi | 2,275 |
| Claude-User | Anthropic | 10 | Rentang IP resmi | 2,192 |
| Claude-SearchBot | Anthropic | 0 | Rentang IP resmi | 2,297 |
| Perplexity-User | Perplexity | 0 | Rentang IP resmi | 2,235 |
| Meta-ExternalAgent | Meta | 14,384 | UA | 2,339 |
| Bytespider | ByteDance | 6,569 | UA | 2,336 |
| Amazonbot | Amazon | 3,493 | UA · DNS balik | 2,379 |
| Googlebot (pembanding) | 10,545 | Rentang IP resmi | 3,951 | |
| bingbot (pembanding) | Microsoft | 13,477 | Rentang IP resmi | 1,551 |
Di antara crawler AI yang terverifikasi dari rentang resmi, ClaudeBot paling banyak dengan 10,305 permintaan, disusul PerplexityBot 3,406 dan GPTBot 2,546. Claude-SearchBot dan Perplexity-User tidak punya permintaan dari rentang resmi; semua permintaan dengan nama itu berasal dari kelompok penyamar.
Masalah yang tersisa setelah penyamar disaring adalah bot yang tidak dicocokkan dengan rentang. Meta-ExternalAgent paling banyak berdasarkan UA dengan 14,384 permintaan, tetapi dokumentasi crawler Meta yang diperiksa tidak memuat daftar rentang IP, jadi hanya dihitung berdasarkan UA.
Per minggu, GPTBot naik turun antara 12 dan 3,383 permintaan, sedangkan ClaudeBot tetap di kisaran 6,930–10,217 selama kelima minggu.
3️⃣ Alamat apa yang diambil: jenis URL dan kode respons
Crawler AI tidak hanya mengambil isi artikel. Selama 14 hari, 21% permintaan Meta-ExternalAgent adalah gambar, sedangkan GPTBot dari rentang resmi meminta feed RSS 476 kali dan ClaudeBot meminta sitemap 314 kali.
Alamat versi bahasa lain juga ikut dikumpulkan: dari rentang resmi, 1,111 permintaan ClaudeBot dan 436 permintaan GPTBot adalah artikel versi bahasa lain. Kode respons bisa langsung dihitung dari log satu hari.
grep 'ClaudeBot/' access.log-20261018 | awk '{print $9}' | sort | uniq -c | sort -rn | head -4 1357 200
665 301
31 304
21 404Bahkan dalam satu hari, 301 mencapai hampir sepertiga, dan selama 14 hari, 5,915 (57%) dari 10,305 permintaan ClaudeBot dari rentang resmi adalah 301. Dari jumlah itu, 4,736 adalah permintaan tanpa [/] di akhir alamat, sehingga WordPress menjawab 301 ke alamat yang ditambah [/] dan artikel yang sama diminta sekali lagi.
4️⃣ Pengaturan robots.txt: token untuk pelatihan dan untuk pencarian
robots.txt cocok untuk menangani bot pelatihan dan pencarian yang mengumpulkan secara otomatis, tetapi tidak cocok untuk bot yang mengambil halaman saat pengguna bertanya. Dokumentasi OpenAI dan Perplexity menyebutkan bahwa aturan robots.txt mungkin tidak berlaku untuk permintaan ChatGPT-User dan Perplexity-User.
Setiap perusahaan membagi tokennya menurut kegunaan, dan menurut dokumentasi OpenAI, memblokir satu token tidak memengaruhi pengaturan token lain. Berikut token yang diperiksa dari dokumentasi resmi setiap perusahaan.
| Token robots.txt | Perusahaan | Kegunaan | Jika diblokir (dokumentasi resmi) |
|---|---|---|---|
| GPTBot | OpenAI | Pengumpulan untuk pelatihan model | Sinyal agar tidak dipakai untuk pelatihan |
| OAI-SearchBot | OpenAI | Pencarian ChatGPT | Dikeluarkan dari jawaban pencarian ChatGPT (masih bisa muncul sebagai tautan navigasi) |
| ChatGPT-User | OpenAI | Permintaan pengguna | Aturan robots.txt mungkin tidak berlaku |
| ClaudeBot | Anthropic | Pengumpulan untuk pelatihan model | Materi berikutnya dikeluarkan dari data pelatihan |
| Claude-SearchBot | Anthropic | Peningkatan kualitas pencarian | Kemunculan di hasil pencarian bisa berkurang |
| Claude-User | Anthropic | Permintaan pengguna | Tidak mengambil halaman untuk pertanyaan pengguna |
| PerplexityBot | Perplexity | Pencarian (bukan pelatihan) | Dikeluarkan dari hasil pencarian |
| Perplexity-User | Perplexity | Permintaan pengguna | Umumnya tidak mengikuti robots.txt |
| Google-Extended | Pelatihan · grounding Gemini | Tidak memengaruhi kemunculan · peringkat di Google Penelusuran | |
| Applebot-Extended | Apple | Pelatihan model dasar | Tidak memengaruhi kemunculan di pencarian Apple |
| meta-externalagent | Meta | Pelatihan model AI, dll. | Diblokir dengan Disallow (contoh di dokumentasi) |
Google-Extended dan Applebot-Extended bukan bot pengumpul tersendiri, melainkan token yang hanya dipakai di robots.txt. Pengumpulan tetap dilakukan crawler Google dan Apple yang sudah ada, dan token ini hanya menentukan apakah konten yang dikumpulkan boleh dipakai untuk melatih model AI.
robots.txt yang hanya menolak pengumpulan untuk pelatihan sambil tetap mempertahankan kemunculan di pencarian AI seperti di bawah ini; dokumentasi OpenAI, Perplexity, dan Meta menyebutkan perubahan bisa butuh hingga 24 jam untuk berlaku.
# tolak pengumpulan untuk pelatihan
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: Applebot-Extended
Disallow: /
User-agent: meta-externalagent
Disallow: /
# izinkan bot pencarian AI
User-agent: OAI-SearchBot
Allow: /
User-agent: Claude-SearchBot
Allow: /
User-agent: PerplexityBot
Allow: /robots.txt server Nginx + Apache saat ini tidak punya baris yang menyebut bot AI.
curl -s https://example.com/robots.txt# berlaku untuk semua bot mesin pencari
User-agent: *
# blokir halaman admin (keamanan)
Disallow: /wp-admin/
# izinkan komunikasi ajax di antara fungsi admin (wajib agar berjalan normal)
Allow: /wp-admin/admin-ajax.php
# tambahan: blokir hasil pencarian spam (perlindungan SEO)
Disallow: /search/
Disallow: /?s=
# petunjuk lokasi sitemap (mempercepat pengindeksan)
Sitemap: https://example.com/sitemap_index.xmlTanpa baris bot AI ini, 2,546 permintaan GPTBot dari rentang resmi selama 14 hari dijawab tanpa 403: 200 sebanyak 2,090 dan 301 sebanyak 432. Pada periode yang sama, permintaan robots.txt yang tercatat di log asal dari rentang resmi adalah Googlebot 36, ClaudeBot 8, dan OAI-SearchBot 6, sedangkan GPTBot dan PerplexityBot 0. Permintaan robots.txt juga tidak tercatat di log asal jika dijawab cache depan.
5️⃣ Memblokir crawler AI di nginx dan batasannya
Meskipun diblokir di robots.txt, permintaan yang tidak membaca aturan tetap masuk sampai ke server. Di nginx, [map] mengisi variabel dengan 1 jika UA memuat nama bot.
# di dalam blok http — 1 jika nama bot pelatihan ada di UA
map $http_user_agent $ai_train_bot {
default 0;
~*GPTBot/ 1;
~*ClaudeBot/ 1;
~*Bytespider 1;
~*CCBot/ 1;
}Di blok server, kembalikan 403 jika variabel itu bernilai 1.
# di dalam blok server
location / {
if ($fake_searchbot) {
return 403;
}
if ($ai_train_bot) {
return 403;
}
# pengaturan yang sudah ada di bawah ini
}Cara memblokir dengan UA hanya memeriksa nama, jadi permintaan penyamar ikut terblokir jika namanya sama dan lolos jika namanya diganti. Permintaan yang meminjam nama bot pencarian yang diizinkan baru tersaring jika dicocokkan dengan rentang IP resmi.
Untuk mengizinkan OAI-SearchBot sambil hanya menolak permintaan bernama sama dari luar rentangnya, jadikan rentang resmi sebagai variabel dengan [geo], lalu cocokkan bersama UA.
# di dalam blok http — rentang resmi OAI-SearchBot (masukkan seluruh searchbot.json; di bawah hanya dua baris)
geo $oai_search_net {
default 0;
104.210.140.128/28 1;
135.234.64.0/24 1;
}
map $http_user_agent:$oai_search_net $fake_searchbot {
default 0;
~*OAI-SearchBot/.*:0$ 1;
}Jika ada CDN atau proxy di depan, alamat yang dilihat [geo] adalah server perantara, jadi pulihkan IP asli dengan real_ip sebelum mencocokkan. Dokumentasi Anthropic menyebutkan bahwa memblokir berdasarkan alamat IP juga mencegah bot membaca robots.txt, sehingga sinyal penolakan mungkin tidak tersampaikan dengan benar.
Pengaturan ini tidak dipasang di server yang sedang berjalan; hanya sintaksisnya yang diperiksa dengan file konfigurasi uji.
nginx -t -p ./ -c nginx-test/nginx.confnginx: the configuration file ./nginx-test/nginx.conf syntax is ok
nginx: configuration file ./nginx-test/nginx.conf test is successfulKarena contoh pengaturan hanya diperiksa sintaksisnya, respons 403 tidak diverifikasi; berdasarkan log 14 hari, 2,347 dari 3,937 permintaan bernama OAI-SearchBot berasal dari kelompok penyamar di luar rentang resmi.
6️⃣ Cara dibayar oleh crawler AI: Pay per crawl dan Web Bot Auth
Pay per crawl adalah fitur Cloudflare AI Crawl Control yang memungkinkan pemilik situs menetapkan harga per zona dan mengenakan biaya untuk setiap permintaan crawler AI. Menurut dokumentasi resmi yang diperiksa pada 18 Oktober 2026, fitur ini masih beta privat, dan Cloudflare memproses pembayaran sebagai Merchant of Record.
Crawler yang mengirim niat membayar lewat header permintaan mendapat respons 200, sedangkan crawler lain mendapat respons [402 Payment Required] yang berisi harga. Jika crawler yang sama diblokir dengan WAF atau Bot Management, aturan blokir didahulukan daripada pengenaan biaya.
Crawler yang ingin membayar harus membuktikan dirinya dengan Web Bot Auth. Dalam Web Bot Auth, bot menandatangani permintaan dengan kunci Ed25519 dan menaruh kunci publiknya di alamat [/.well-known/http-message-signatures-directory], sehingga pihak penerima bisa memverifikasi tanda tangan.
Tanda tangan dikirim lewat tiga header, [Signature-Agent], [Signature-Input], dan [Signature], dan bot diverifikasi dengan tanda tangan kriptografis, bukan rentang IP. Format log akses bawaan server asal tidak mencatat header permintaan, jadi tidak diperiksa apakah permintaan crawler AI selama 14 hari membawa tanda tangan.
18,605 permintaan crawler AI yang terverifikasi dari rentang IP resmi selama 14 hari setara dengan 77% dari 24,022 permintaan Googlebot dan bingbot dari rentang resminya pada periode yang sama. Apakah token pelatihan dimasukkan ke robots.txt ditentukan dari angka tanpa penyamar, dan jika pencocokan rentang resmi ditambahkan ke rekap log mingguan, trennya bisa dipantau.
🔢 FAQ & Konten yang Direkomendasikan




ℹ️ Pemberitahuan Afiliasi
Konten di situs ini berisi tautan afiliasi. Jika pengunjung membeli produk atau layanan melalui tautan tersebut, situs ini menerima komisi dari penjual. Harga yang dibayar pembeli(turun saat ada diskon promo ↓), tidak naik karena hal ini. Harga, diskon, dan informasi stok yang ditampilkan berlaku pada saat penulisan dan bisa berbeda dengan kondisi sebenarnya, jadi pastikan kembali di situs penjual sebelum membeli. Pemilihan dan penilaian produk dibuat berdasarkan standar kami sendiri, dan ada tidaknya komisi tidak memengaruhi urutan maupun isi penilaian.