Kako napisati robots.txt koji zaista blokira AI scrapere
Praktičan vodič za blokiranje usklađenih AI crawlera, razumijevanje ograničenja datoteke robots.txt i dodavanje poslužiteljskih kontrola ondje gdje su važne.
Sadržaj
- Neugodna istina o robots.txt
- Što robots.txt može, a što ne može učiniti
- Počnite od odluke o politici
- Razuman robots.txt predložak za blokiranje AI-ja
- Budite oprezni s Google-Extended
- Testirajte datoteku kao produkcijski kod
- Dodajte poslužiteljske kontrole za botove koji ignoriraju pravila
- Ograničavanje brzine
- Filtriranje user agenta
- IP i ASN kontrole
- Autentikacija i paywallovi
- Minimizacija sadržaja
- Koristite robots meta oznake za pravila na razini stranice
- Pratite logove nakon objave
- Neka datoteka bude mala i redovito pregledana
- Zaključak
Neugodna istina o robots.txt
Datoteka robots.txt nije brava. Ona je natpis na vratima.
Ta je razlika važna kada timovi pitaju mogu li “blokirati AI scrapere” jednom malom tekstualnom datotekom. Za ugledne crawlere koji slijede Robots Exclusion Protocol, da: pravilno napisan robots.txt može im poručiti da ne indeksiraju vaše stranice. Za nepoznate scrapere, imitatore, automatizaciju preglednika i botove kojima jednostavno nije stalo, sam po sebi neće učiniti ništa.
Zato praktični cilj nije “učiniti scraping nemogućim”. Cilj je:
- Reći usklađenim AI crawlerima da ne koriste vaše web-mjesto.
- Izbjeći slučajno blokiranje tražilica ili korisnih servisa.
- Dodati snažnije poslužiteljske kontrole za zloupotrebu.
- Održavati politiku kako se nazivi crawlera mijenjaju.
To je dosadna verzija. Ujedno je i verzija koja funkcionira.
Što robots.txt može, a što ne može učiniti
Datoteka robots.txt nalazi se u korijenu web-mjesta:
https://example.com/robots.txt
Crawleri je traže prije indeksiranja. Datoteka sadrži skupine pravila. Svaka skupina počinje jednim ili više redaka User-agent, nakon čega slijede direktive Allow ili Disallow.
Jednostavna blokada cijelog web-mjesta izgleda ovako:
User-agent: GPTBot
Disallow: /
To znači: ako si GPTBot, nemoj indeksirati ništa na ovom web-mjestu.
No robots.txt ima stroga ograničenja:
- Dobrovoljan je. Zlonamjerni akteri mogu ga ignorirati.
- Ne sprječava da URL zatraži običan preglednik ili skripta.
- Ne uklanja sadržaj koji je već prikupljen drugdje.
- Sam po sebi ne definira autorska prava, licenciranje ili prava za treniranje.
- Može se pogrešno konfigurirati tako da blokira pogrešne botove.
Ako vam treba stvarna kontrola pristupa, koristite autentikaciju, autorizaciju, ograničavanje brzine, kontrole temeljene na IP adresama, upravljanje botovima ili pravne kontrole. Robots.txt je i dalje koristan, ali pripada široj strategiji zaštite sadržaja.
To je slično drugim problemima upravljanja webom: vidljiva kontrola rijetko je cijela kontrola. Ako vaša organizacija već interno ima neupravljanu upotrebu AI-ja, vrijedi isto načelo; brza revizija shadow AI-ja često je korisnija od pretvaranja da jedan dokument politike rješava problem.
Počnite od odluke o politici
Prije uređivanja datoteke odlučite što zapravo pokušavate blokirati.
Postoje barem četiri različite stvari na koje ljudi misle kada kažu “AI scraper”:
- Crawleri koji se koriste za prikupljanje podataka za treniranje.
- Crawleri AI tražilica ili sustava za odgovaranje.
- Dohvaćatelji koje pokreće korisnik, primjerice kada netko zatraži od AI proizvoda da sažme URL.
- Generički scraperi koji se predstavljaju kao obični preglednici.
Možda želite blokirati sve njih. Ili možda želite zadržati vidljivost u pretraživanju, ali se isključiti iz treniranja modela. To nisu iste politike.
Primjerice, OpenAI dokumentira zasebne user agente za različite svrhe, uključujući GPTBot, ChatGPT-User i OAI-SearchBot. Google koristi Google-Extended kao kontrolni token za neke slučajeve upotrebe Gemini i Vertex AI, dok se uobičajeno Google Search indeksiranje obrađuje drugim Googlebot user agentima.
Ta je razdvojenost važna. Ako neoprezno blokirate široke user agente, možete naštetiti uobičajenoj vidljivosti u tražilicama dok pokušavate blokirati AI treniranje.
Razuman robots.txt predložak za blokiranje AI-ja
Ovo je konzervativna početna točka za blokiranje nekoliko često dokumentiranih crawlera povezanih s AI-jem, uz zadržavanje općih crawlera tražilica:
# 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: /
Ovo nije čaroban univerzalni popis. To je obrazac koji se može održavati.
Nekoliko napomena:
Disallow: /znači “nemoj indeksirati nijednu putanju”.User-agent: *primjenjuje se na crawlere koji se ne podudaraju s određenijom skupinom.Allow: /nije strogo potreban za zadanu skupinu, ali jasno pokazuje vašu namjeru.- Komentari neka budu kratki. Neki parseri opraštaju pogreške, ali robots.txt treba ostati dosadan.
- Nemojte uključivati privatne URL-ove u robots.txt. Datoteka je javna, a navođenje osjetljivih putanja može ih oglasiti.
Posljednju točku vrijedi ponoviti. Robots.txt nije mehanizam tajnosti. Ako /client-contracts/ ne smije biti javno, zaštitite ga autentikacijom. Nemojte ga samo disallowati.
Budite oprezni s Google-Extended
Google-Extended često se pogrešno razumije. To nije isto što i blokiranje Google Searcha.
Prema Googleovoj dokumentaciji, Google-Extended je samostalan token proizvoda koji izdavači mogu koristiti za upravljanje time smije li sadržaj web-mjesta pomoći u poboljšanju određenih Gemini i Vertex AI mogućnosti. Njegovo blokiranje samo po sebi ne bi trebalo blokirati Googlebot u indeksiranju za Search.
Ipak, nemojte zamijeniti sve Google direktive širokom blokadom poput ove, osim ako to zaista želite:
User-agent: Googlebot
Disallow: /
To bi glavnom crawleru Google Searcha poručilo da ne indeksira vaše web-mjesto. Za većinu javnih web-mjesta to nije ono što želite.
Ista razlika vrijedi i drugdje. Neki dobavljači odvajaju crawlere za treniranje od pregledavanja koje pokreće korisnik ili AI search crawlera. Drugi to ne čine. Morate pročitati dokumentaciju za botove koji su vam važni i tretirati svoj robots.txt kao živu datoteku, a ne kao jednokratnu kvačicu.
Testirajte datoteku kao produkcijski kod
Robots.txt izgleda jednostavno, pa ga je zato lako pokvariti.
Česte pogreške uključuju:
- Učitavanje na pogrešno mjesto, primjerice
/assets/robots.txtumjesto/robots.txt. - Korištenje pametnih navodnika kopiranih iz uređivača dokumenata.
- Slučajno blokiranje svih crawlera s
User-agent: *iDisallow: /. - Pretpostavku da se datoteka jedne domene primjenjuje na drugu poddomenu.
- Zaboravljanje da se
http://,https://,wwwi hostovi bezwwwmogu obrađivati različito, ovisno o vašoj postavci.
Za web-mjesta s više domena provjerite svaki kanonski host. Robots datoteka na https://www.example.com/robots.txt ne upravlja automatski datotekom https://app.example.com/robots.txt.
Pri otklanjanju pogrešaka pregledajte stvarni HTTP odgovor, a ne samo ono što prikazuje pregled u vašem CMS-u. Želite odgovor 200 OK, vrstu sadržaja text/plain ako je moguće i točnu datoteku koju očekujete. Ako su uključena preusmjeravanja, predmemoriranje ili CDN pravila, pomaže sirovi pregled zaglavlja. Tijek rada iz članka otklanjanje pogrešaka u preusmjeravanjima i HTTP zaglavljima u produkciji ovdje se izravno primjenjuje.
Dodajte poslužiteljske kontrole za botove koji ignoriraju pravila
Ako je crawler usklađen, robots.txt je najčišći signal. Ako je crawler zlonamjeran ili zloupotrebljava pristup, trebate provedbu.
Praktične kontrole uključuju:
Ograničavanje brzine
Postavite pragove za neobične obrasce zahtjeva: previše stranica u minuti, duboko prolazanje kroz paginaciju, ponovljene 404 odgovore ili visok volumen zahtjeva iz malog skupa IP adresa. Ograničenja brzine trebaju biti dovoljno velikodušna da ne kažnjavaju stvarne korisnike i dovoljno stroga da masovno izdvajanje učine skupim.
Filtriranje user agenta
Dokumentirane AI crawler user agente možete blokirati na web-poslužitelju, obrnutom proxyju, CDN-u ili aplikacijskom sloju. To je snažnije od robots.txt jer vraća stvarni odgovor odbijanja.
Primjerice, Nginx može blokirati uzorak user agenta, iako produkcijska pravila treba pažljivo testirati:
if ($http_user_agent ~* "GPTBot|CCBot|ClaudeBot|Bytespider") {
return 403;
}
To nije nepogrešivo. User-agent nizove lako je lažirati. Ali zaustavlja pošten ili lijen promet i smanjuje opterećenje.
IP i ASN kontrole
Neki operateri objavljuju IP raspone, ali mnogi scraper ekosustavi to ne čine. Blokiranje na temelju IP adrese može funkcionirati za očitu zloupotrebu, osobito iz raspona cloud hostinga bez uobičajenog korisničkog prometa, ali može stvoriti i lažno pozitivne rezultate. Koristite logove prije pravila.
Autentikacija i paywallovi
Ako se sadržaj ne smije kopirati u velikim razmjerima, nemojte stavljati puni sadržaj na javni URL. Robots.txt nije prikladan za povjerljive materijale, licencirane baze podataka, privatne zajednice ili plaćene arhive.
Minimizacija sadržaja
Ponekad je najbolja zaštita arhitektonska. Ne izlažite nepotrebne API-je, velike JSON payloade, skrivene metapodatke, draft endpointove ili pune arhive ako javnoj stranici treba samo mali podskup. Web-mjesta s mnogo slika trebala bi također razmisliti o tome koje metapodatke objavljuju; logika privatnosti iz članka uklanjanje EXIF metapodataka prije dijeljenja fotografija online primjenjuje se i na upravljanje sadržajem.
Koristite robots meta oznake za pravila na razini stranice
Robots.txt kontrolira crawlanje. Robots meta oznake i X-Robots-Tag zaglavlja kontroliraju indeksiranje i ponašanje isječaka za usklađene tražilice i crawlere.
Na primjer:
<meta name="robots" content="noindex, noarchive">
Ili kao HTTP zaglavlje:
X-Robots-Tag: noindex, noarchive
To nisu štitovi specifični za AI. Korisni su kada želite da stranica bude dostupna, ali ne i indeksirana. Međutim, ako crawleru blokirate dohvaćanje stranice u robots.txt, možda nikada neće vidjeti meta oznaku na razini stranice. Nemojte se oslanjati na oznaku noindex na URL-u koji crawler ne smije crawlat.
Grubo pravilo:
- Koristite robots.txt za smanjenje ili sprječavanje crawlanja.
- Koristite meta robots ili
X-Robots-Tagza kontrolu ponašanja indeksiranja. - Koristite poslužiteljske kontrole za provedbu pristupa.
Pratite logove nakon objave
Objava datoteke samo je prvi korak. Nakon toga provjerite logove.
Tražite:
- Zahtjeve prema
/robots.txtod user agenata koje ste naveli. - Nastavak crawlanja nakon što su poslužena disallow pravila.
- Sumnjive user agente s velikim volumenom.
- User agente nalik preglednicima koji traže tisuće stranica u nizu.
- Ponovljeni pristup feedovima, sitemapovima, stranicama pretraživanja i paginaciji.
Ako bot zatraži robots.txt, vidi potpunu zabranu i zatim stane, robots.txt je obavio svoj posao. Ako nastavi, prebacite tog bota u provedbu: ograničenja brzine, blokade ili autentikaciju.
Pregledajte i izloženost sitemapova. Sitemapovi su korisni za tražilice, ali su i praktične karte za scrapere. To ne znači da ih trebate ukloniti s običnih web-mjesta. Znači da ne biste trebali uključivati URL-ove za koje ne želite da ih javni sustavi otkriju.
Neka datoteka bude mala i redovito pregledana
Robots.txt s vremenom propada. Marketinški tim doda mikroweb za kampanju. Developer doda staging putanju. Dobavljač promijeni naziv crawlera. Dvije godine kasnije nitko ne zna zašto postoji pola pravila.
Tretirajte ga kao konfiguraciju:
- Po mogućnosti ga pohranite u sustav za kontrolu verzija.
- Dodajte kratak komentar za svaku skupinu AI crawlera.
- Pregledajte ga tromjesečno.
- Provjerite dokumentaciju dobavljača prije dodavanja širokih pravila.
- Testirajte nakon promjena CDN-a, CMS-a ili hostinga.
Ako vaše web-mjesto objavljuje sadržaj potpomognut AI-jem, odvojite politiku crawlera od uredničke transparentnosti. Blokiranje AI scrapera odnosi se na pristup i ponovnu upotrebu. Otkrivanje se odnosi na povjerenje čitatelja. Etički se preklapaju, ali nisu ista kontrola. Praktičan pristup otkrivanju obrađen je u članku kako izgleda pošteno AI otkrivanje na malom web-mjestu.
<!-- tool-cta:start -->
💡 Isprobajte ovo: Nakon dodavanja pravila za AI crawlere, provjerite sintaksu pomoću Robots.txt Tester kako ne biste slučajno blokirali i legitimne botove.
<!-- tool-cta:end -->
Zaključak
Dobra datoteka robots.txt blokirat će usklađene AI crawlere. Neće zaustaviti odlučan scraping, kopirane user-agent nizove, kompromitirane preglednike ili ljude koji ručno lijepe vaš sadržaj u AI sustave.
To je ne čini beskorisnom. To je čini jednim slojem.
Napišite izričita pravila za dokumentirane AI crawlere. Izbjegavajte široke blokade koje štete vidljivosti u tražilicama. Testirajte posluženu datoteku, ne nacrt. Pratite logove. Provedite poslužiteljske kontrole ondje gdje ponašanje prelazi iz neželjenog u zloupotrebljavajuće.
Web se oduvijek oslanjao na mješavinu protokola, normi i provedbe. Robots.txt je sloj normi. Koristite ga, ali nemojte ga zamijeniti za zid.