SEO & Discoverability

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.

The Wux Webtools Team The Wux Webtools Team 10 min čitanja Pomoć AI, pregledano od strane ljudi
Illustration of crawler bots approaching a website gate controlled by a robots.txt file.
Sadržaj
  1. Neugodna istina o robots.txt
  2. Što robots.txt može, a što ne može učiniti
  3. Počnite od odluke o politici
  4. Razuman robots.txt predložak za blokiranje AI-ja
  5. Budite oprezni s Google-Extended
  6. Testirajte datoteku kao produkcijski kod
  7. Dodajte poslužiteljske kontrole za botove koji ignoriraju pravila
  8. Ograničavanje brzine
  9. Filtriranje user agenta
  10. IP i ASN kontrole
  11. Autentikacija i paywallovi
  12. Minimizacija sadržaja
  13. Koristite robots meta oznake za pravila na razini stranice
  14. Pratite logove nakon objave
  15. Neka datoteka bude mala i redovito pregledana
  16. 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:

  1. Dobrovoljan je. Zlonamjerni akteri mogu ga ignorirati.
  2. Ne sprječava da URL zatraži običan preglednik ili skripta.
  3. Ne uklanja sadržaj koji je već prikupljen drugdje.
  4. Sam po sebi ne definira autorska prava, licenciranje ili prava za treniranje.
  5. 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.txt umjesto /robots.txt.
  • Korištenje pametnih navodnika kopiranih iz uređivača dokumenata.
  • Slučajno blokiranje svih crawlera s User-agent: * i Disallow: /.
  • Pretpostavku da se datoteka jedne domene primjenjuje na drugu poddomenu.
  • Zaboravljanje da se http://, https://, www i hostovi bez www mogu 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-Tag za 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.txt od 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.

Često postavljana pitanja

Može li robots.txt spriječiti AI tvrtke da treniraju na mom sadržaju?
Može poručiti usklađenim AI crawlerima da ne crawleaju vaše web-mjesto u tu svrhu. Ne može tehnički spriječiti neusklađene scrapere da pristupe javnim stranicama i ne uklanja sadržaj koji je već prikupljen.
Trebam li blokirati User-agent: * kako bih zaustavio sve scrapere?
Obično ne. `User-agent: *` primjenjuje se na sve crawlere koji se ne podudaraju s određenijim pravilom. `Disallow: /` pod tom skupinom može blokirati uobičajeno crawlanje tražilica i druge korisne botove.
Je li Google-Extended isto što i Googlebot?
Ne. Google dokumentira `Google-Extended` kao zaseban token proizvoda za kontrolu nekih upotreba Gemini i Vertex AI. Blokiranje `Googlebot` mnogo je šira radnja i može utjecati na crawlanje za Google Search.
Što ako AI scraper ignorira robots.txt?
Prijeđite sa signaliziranja na provedbu. Koristite ograničavanje brzine, blokade user agenta, IP ili ASN kontrole gdje je prikladno, upravljanje botovima, autentikaciju i strože izlaganje API-ja/sadržaja.
Trebaju li mi i robots.txt i meta robots oznake?
Rješavaju različite probleme. Robots.txt kontrolira crawlanje. Meta robots oznake i `X-Robots-Tag` zaglavlja kontroliraju indeksiranje i ponašanje isječaka za usklađene crawlere koji mogu pristupiti stranici.

Izvori i daljnje čitanje

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

Zadnje ažurirano:

Nastavite čitati