SEO & Discoverability

Cara menulis robots.txt yang benar-benar menyekat pengikis AI

Panduan praktikal untuk menyekat perayap AI yang patuh, memahami had robots.txt, dan menambah kawalan sisi pelayan di tempat yang penting.

The Wux Webtools Team The Wux Webtools Team 9 min baca Dibantu AI, disemak manusia
Illustration of crawler bots approaching a website gate controlled by a robots.txt file.
Jadual kandungan
  1. Hakikat yang kurang selesa tentang robots.txt
  2. Perkara yang boleh dan tidak boleh dilakukan oleh robots.txt
  3. Mulakan dengan keputusan dasar anda
  4. Templat robots.txt yang munasabah untuk menyekat AI
  5. Berhati-hati dengan Google-Extended
  6. Uji fail seperti kod produksi
  7. Tambah kawalan sisi pelayan untuk bot yang mengabaikan peraturan
  8. Pengehad kadar
  9. Penapisan user-agent
  10. Kawalan IP dan ASN
  11. Pengesahan dan paywall
  12. Pengurangan kandungan
  13. Gunakan tag meta robots untuk peraturan peringkat halaman
  14. Pantau log selepas penerbitan
  15. Pastikan fail kecil dan disemak
  16. Kesimpulannya

Hakikat yang kurang selesa tentang robots.txt

Fail robots.txt bukan kunci. Ia ialah papan tanda di pintu.

Perbezaan itu penting apabila pasukan bertanya sama ada mereka boleh “menyekat pengikis AI” dengan satu fail teks kecil. Untuk perayap bereputasi yang mengikuti Robots Exclusion Protocol, ya: robots.txt yang ditulis dengan betul boleh memberitahu mereka supaya tidak merayapi halaman anda. Untuk pengikis yang tidak diketahui, penyamar, automasi pelayar, dan bot yang memang tidak peduli, fail itu tidak akan melakukan apa-apa dengan sendirinya.

Jadi matlamat praktikalnya bukan “jadikan pengikisan mustahil.” Matlamatnya ialah:

  • Beritahu perayap AI yang patuh supaya tidak menggunakan laman anda.
  • Elakkan daripada menyekat enjin carian atau perkhidmatan berguna secara tidak sengaja.
  • Tambah kawalan sisi pelayan yang lebih kukuh untuk penyalahgunaan.
  • Pastikan dasar mudah diselenggara apabila nama perayap berubah.

Itulah versi yang membosankan. Ia juga versi yang berfungsi.

Perkara yang boleh dan tidak boleh dilakukan oleh robots.txt

Fail robots.txt berada di akar sesebuah laman:

https://example.com/robots.txt

Perayap memintanya sebelum merayapi. Fail itu mengandungi kumpulan peraturan. Setiap kumpulan bermula dengan satu atau lebih baris User-agent, diikuti arahan Allow atau Disallow.

Sekatan seluruh laman yang ringkas kelihatan seperti ini:

User-agent: GPTBot
Disallow: /

Maksudnya: jika anda ialah GPTBot, jangan merayapi apa-apa pun di laman ini.

Tetapi robots.txt mempunyai had yang jelas:

  1. Ia bersifat sukarela. Pelaku jahat boleh mengabaikannya.
  2. Ia tidak menghalang URL daripada diminta oleh pelayar biasa atau skrip.
  3. Ia tidak membuang kandungan yang sudah dikumpulkan di tempat lain.
  4. Ia tidak mentakrifkan hak cipta, pelesenan, atau hak latihan dengan sendirinya.
  5. Ia boleh tersalah konfigurasi sehingga menyekat bot yang salah.

Jika anda memerlukan kawalan akses sebenar, gunakan pengesahan, keizinan, pengehad kadar, kawalan berasaskan IP, pengurusan bot, atau kawalan undang-undang. Robots.txt masih berguna, tetapi ia sepatutnya menjadi sebahagian daripada strategi perlindungan kandungan yang lebih luas.

Ini serupa dengan masalah tadbir urus web yang lain: kawalan yang kelihatan jarang sekali merupakan keseluruhan kawalan. Jika organisasi anda sudah mempunyai penggunaan AI yang tidak terurus secara dalaman, prinsip yang sama terpakai; audit AI bayangan yang ringkas selalunya lebih berguna daripada berpura-pura bahawa satu dokumen dasar menyelesaikan isu tersebut.

Mulakan dengan keputusan dasar anda

Sebelum mengedit fail, tentukan perkara yang sebenarnya anda cuba sekat.

Terdapat sekurang-kurangnya empat perkara berbeza yang dimaksudkan orang apabila menyebut “pengikis AI”:

  • Perayap yang digunakan untuk mengumpul data latihan.
  • Perayap carian AI atau enjin jawapan.
  • Pengambil yang dicetuskan pengguna, seperti apabila seseorang meminta produk AI meringkaskan URL.
  • Pengikis generik yang berpura-pura menjadi pelayar biasa.

Anda mungkin mahu menyekat semuanya. Atau anda mungkin mahu penemuan carian sambil menarik diri daripada latihan model. Ini bukan dasar yang sama.

Sebagai contoh, OpenAI mendokumentasikan user agent yang berasingan untuk tujuan berbeza, termasuk GPTBot, ChatGPT-User, dan OAI-SearchBot. Google menggunakan Google-Extended sebagai token kawalan untuk beberapa kes penggunaan Gemini dan Vertex AI, manakala perayapan Google Search biasa dikendalikan oleh user agent Googlebot yang lain.

Pemisahan itu penting. Jika anda menyekat user agent yang luas secara cuai, anda boleh menjejaskan keterlihatan carian biasa ketika cuba menyekat latihan AI.

Templat robots.txt yang munasabah untuk menyekat AI

Berikut ialah titik permulaan yang konservatif untuk menyekat beberapa perayap berkaitan AI yang lazim didokumentasikan sambil membiarkan perayap carian umum tidak terjejas:

# 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 senarai universal yang ajaib. Ia ialah corak yang boleh diselenggara.

Beberapa nota:

  • Disallow: / bermaksud “jangan merayapi sebarang laluan.”
  • User-agent: * terpakai kepada perayap yang tidak dipadankan oleh kumpulan yang lebih khusus.
  • Allow: / tidak semestinya diperlukan untuk kumpulan lalai, tetapi ia menjelaskan niat anda.
  • Pastikan komen ringkas. Sesetengah penghurai bertolak ansur, tetapi robots.txt sepatutnya kekal membosankan.
  • Jangan masukkan URL peribadi dalam robots.txt. Fail itu awam, dan menyenaraikan laluan sensitif boleh mengiklankannya.

Perkara terakhir itu wajar diulang. Robots.txt bukan mekanisme kerahsiaan. Jika /client-contracts/ tidak sepatutnya awam, lindunginya dengan pengesahan. Jangan sekadar menyahizinkannya.

Berhati-hati dengan Google-Extended

Google-Extended sering disalahfahami. Ia tidak sama seperti menyekat Google Search.

Menurut dokumentasi Google, Google-Extended ialah token produk kendiri yang boleh digunakan penerbit untuk mengurus sama ada kandungan laman boleh membantu menambah baik keupayaan Gemini dan Vertex AI tertentu. Menyekatnya tidak sepatutnya, dengan sendirinya, menyekat Googlebot daripada merayapi untuk Search.

Namun begitu, jangan gantikan semua arahan Google dengan sekatan luas seperti ini melainkan itu benar-benar maksud anda:

User-agent: Googlebot
Disallow: /

Itu akan memberitahu perayap utama Google Search supaya tidak merayapi laman anda. Untuk kebanyakan laman web awam, itu bukan perkara yang anda mahukan.

Perbezaan yang sama terpakai di tempat lain. Sesetengah vendor memisahkan perayap latihan daripada pelayaran yang dicetuskan pengguna atau perayap carian AI. Yang lain tidak. Anda perlu membaca dokumentasi untuk bot yang anda ambil berat dan menganggap robots.txt anda sebagai fail hidup, bukan kotak semak sekali sahaja.

Uji fail seperti kod produksi

Robots.txt kelihatan ringkas, sebab itulah ia mudah rosak.

Kesilapan lazim termasuk:

  • Memuat naiknya ke tempat yang salah, seperti /assets/robots.txt dan bukannya /robots.txt.
  • Menggunakan tanda petik pintar yang disalin daripada editor dokumen.
  • Menyekat semua perayap dengan User-agent: * dan Disallow: / secara tidak sengaja.
  • Menganggap fail satu domain terpakai kepada subdomain lain.
  • Terlupa bahawa hos http://, https://, www, dan bukan www mungkin dikendalikan secara berbeza bergantung pada persediaan anda.

Untuk laman berbilang domain, semak setiap hos kanonik. Fail robots di https://www.example.com/robots.txt tidak secara automatik mengawal https://app.example.com/robots.txt.

Semasa menyahpepijat, periksa respons HTTP sebenar, bukan hanya apa yang ditunjukkan oleh pratonton CMS anda. Anda mahukan respons 200 OK, jenis kandungan text/plain jika boleh, dan fail tepat yang anda jangkakan. Jika pengalihan, caching, atau peraturan CDN terlibat, pemeriksaan pengepala mentah membantu. Aliran kerja dalam menyahpepijat pengalihan dan pengepala HTTP dalam produksi terpakai secara langsung di sini.

Tambah kawalan sisi pelayan untuk bot yang mengabaikan peraturan

Jika perayap itu patuh, robots.txt ialah isyarat paling bersih. Jika perayap itu menyalah guna, anda memerlukan penguatkuasaan.

Kawalan praktikal termasuk:

Pengehad kadar

Tetapkan ambang untuk corak permintaan yang luar biasa: terlalu banyak halaman per minit, traversal penomboran yang mendalam, 404 berulang, atau volum permintaan tinggi daripada set IP yang kecil. Had kadar sepatutnya cukup longgar supaya tidak menghukum pengguna sebenar dan cukup ketat untuk menjadikan pengekstrakan pukal mahal.

Penapisan user-agent

Anda boleh menyekat user agent perayap AI yang didokumentasikan pada pelayan web, proksi songsang, CDN, atau lapisan aplikasi. Ini lebih kukuh daripada robots.txt kerana ia mengembalikan respons penolakan sebenar.

Sebagai contoh, Nginx boleh menyekat corak user agent, walaupun peraturan produksi perlu diuji dengan teliti:

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

Ini bukan penyelesaian sempurna. Rentetan user-agent mudah dipalsukan. Tetapi ia menghentikan trafik yang jujur atau malas dan mengurangkan beban.

Kawalan IP dan ASN

Sesetengah pengendali menerbitkan julat IP, tetapi banyak ekosistem pengikis tidak berbuat demikian. Sekatan berasaskan IP boleh berfungsi untuk penyalahgunaan yang jelas, terutamanya daripada julat pengehosan awan tanpa trafik pengguna biasa, tetapi ia juga boleh menghasilkan positif palsu. Gunakan log sebelum peraturan.

Pengesahan dan paywall

Jika kandungan tidak boleh disalin secara besar-besaran, jangan letakkan kandungan penuh pada URL awam. Robots.txt tidak sesuai untuk bahan sulit, pangkalan data berlesen, komuniti peribadi, atau arkib berbayar.

Pengurangan kandungan

Kadangkala perlindungan terbaik ialah seni bina. Jangan dedahkan API yang tidak perlu, muatan JSON yang besar, metadata tersembunyi, endpoint draf, atau arkib penuh jika halaman awam hanya memerlukan subset kecil. Laman yang sarat imej juga patut memikirkan metadata yang mereka terbitkan; logik privasi dalam membuang metadata EXIF sebelum berkongsi foto dalam talian juga terpakai kepada operasi kandungan.

Gunakan tag meta robots untuk peraturan peringkat halaman

Robots.txt mengawal perayapan. Tag meta robots dan pengepala X-Robots-Tag mengawal tingkah laku pengindeksan dan snippet untuk enjin carian dan perayap yang patuh.

Sebagai contoh:

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

Atau sebagai pengepala HTTP:

X-Robots-Tag: noindex, noarchive

Ini bukan perisai khusus AI. Ia berguna apabila anda mahu halaman boleh diakses tetapi tidak diindeks. Walau bagaimanapun, jika anda menyekat perayap daripada mengambil halaman dalam robots.txt, perayap itu mungkin tidak akan melihat tag meta peringkat halaman. Jangan bergantung pada tag noindex pada URL yang dilarang dirayapi oleh perayap.

Peraturan kasarnya:

  • Gunakan robots.txt untuk mengurangkan atau menghalang perayapan.
  • Gunakan meta robots atau X-Robots-Tag untuk mengawal tingkah laku pengindeksan.
  • Gunakan kawalan sisi pelayan untuk menguatkuasakan akses.

Pantau log selepas penerbitan

Menerbitkan fail hanyalah langkah pertama. Selepas itu, semak log anda.

Cari:

  • Permintaan kepada /robots.txt daripada user agent yang anda namakan.
  • Perayapan berterusan selepas peraturan disallow disampaikan.
  • User agent mencurigakan dengan volum tinggi.
  • User agent seperti pelayar yang meminta ribuan halaman secara berturutan.
  • Akses berulang kepada feed, sitemap, halaman carian, dan penomboran.

Jika bot meminta robots.txt, melihat disallow penuh, lalu berhenti, robots.txt telah melakukan tugasnya. Jika ia berterusan, pindahkan bot itu ke penguatkuasaan: had kadar, sekatan, atau pengesahan.

Semak juga pendedahan sitemap anda. Sitemap berguna untuk enjin carian, tetapi ia juga peta yang memudahkan pengikis. Itu tidak bermaksud anda patut membuangnya daripada laman biasa. Maksudnya, anda tidak patut memasukkan URL yang anda tidak mahu sistem awam temui.

Pastikan fail kecil dan disemak

Robots.txt cenderung mereput. Pasukan pemasaran menambah microsite kempen. Pembangun menambah laluan staging. Vendor menukar nama perayapnya. Dua tahun kemudian, tiada siapa tahu mengapa separuh peraturan itu wujud.

Anggap ia sebagai konfigurasi:

  • Simpan dalam kawalan versi apabila boleh.
  • Tambah komen ringkas untuk setiap kumpulan perayap AI.
  • Semak setiap suku tahun.
  • Semak dokumentasi vendor sebelum menambah peraturan luas.
  • Uji selepas perubahan CDN, CMS, atau pengehosan.

Jika laman anda menerbitkan kandungan berbantukan AI, asingkan juga dasar perayap daripada ketelusan editorial. Menyekat pengikis AI berkaitan akses dan penggunaan semula. Pendedahan berkaitan kepercayaan pembaca. Kedua-duanya bertindih dari segi etika, tetapi bukan kawalan yang sama. Pendekatan pendedahan praktikal dibincangkan dalam rupa pendedahan AI yang jujur pada laman web kecil.

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

💡 Cuba ini: Selepas menambah peraturan untuk perayap AI, sahkan sintaks dengan Robots.txt Tester supaya anda tidak turut menyekat bot yang sah secara tidak sengaja.

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

Kesimpulannya

Fail robots.txt yang baik akan menyekat perayap AI yang patuh. Ia tidak akan menghentikan pengikisan yang bertekad, rentetan user-agent yang disalin, pelayar yang dikompromi, atau orang yang menampal kandungan anda ke dalam sistem AI secara manual.

Itu tidak menjadikannya tidak berguna. Ia menjadikannya satu lapisan.

Tulis peraturan eksplisit untuk perayap AI yang didokumentasikan. Elakkan sekatan luas yang merosakkan keterlihatan carian. Uji fail yang disampaikan, bukan draf. Pantau log. Kuatkuasakan dengan kawalan sisi pelayan apabila tingkah laku berubah daripada tidak diingini kepada menyalah guna.

Web sentiasa berjalan dengan campuran protokol, norma, dan penguatkuasaan. Robots.txt ialah lapisan norma. Gunakannya, tetapi jangan tersalah anggap ia sebagai tembok.

Soalan yang sering ditanya

Bolehkah robots.txt menghalang syarikat AI daripada melatih model menggunakan kandungan saya?
Ia boleh memberitahu perayap AI yang patuh supaya tidak merayapi laman anda untuk tujuan itu. Ia tidak boleh menghalang pengikis yang tidak patuh secara teknikal daripada mengakses halaman awam, dan ia tidak membuang kandungan yang sudah dikumpulkan.
Patutkah saya menyekat User-agent: * untuk menghentikan semua pengikis?
Biasanya tidak. `User-agent: *` terpakai kepada semua perayap yang tidak sepadan dengan peraturan yang lebih khusus. `Disallow: /` di bawah kumpulan itu boleh menyekat perayapan carian biasa dan bot berguna lain.
Adakah Google-Extended sama seperti Googlebot?
Tidak. Google mendokumentasikan `Google-Extended` sebagai token produk berasingan untuk mengawal beberapa penggunaan Gemini dan Vertex AI. Menyekat `Googlebot` ialah tindakan yang jauh lebih luas dan boleh menjejaskan perayapan Google Search.
Bagaimana jika pengikis AI mengabaikan robots.txt?
Beralih daripada pemberian isyarat kepada penguatkuasaan. Gunakan pengehad kadar, sekatan user-agent, kawalan IP atau ASN jika sesuai, pengurusan bot, pengesahan, dan pendedahan API/kandungan yang lebih ketat.
Adakah saya memerlukan kedua-dua robots.txt dan tag meta robots?
Kedua-duanya menyelesaikan masalah yang berbeza. Robots.txt mengawal perayapan. Tag meta robots dan pengepala `X-Robots-Tag` mengawal tingkah laku pengindeksan dan snippet untuk perayap patuh yang boleh mengakses halaman.

Sumber & bacaan 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
Mengenai penulis
The Wux Webtools Team

Dikemas kini terakhir:

Teruskan membaca