Robots.txt za AI Search treba da razdvaja različite svrhe crawlovanja, a ne da sve AI botove tretira kao jednu grupu. Ako želite da javne stranice budu dostupne za pretragu u ChatGPT-u ili drugim AI sistemima, nije neophodno da istovremeno dozvolite i crawlere koji sadržaj mogu koristiti za treniranje modela.
Praktična odluka obično izgleda ovako: dozvoliti pretraživački crawler za javne i kvalitetno indeksabilne URL-ove, ograničiti privatne, administrativne i tehničke putanje, a posebno odlučiti da li želite da dozvolite crawl za training. Kod OpenAI-ja, na primer, OAI-SearchBot i GPTBot imaju različite namene i mogu se kontrolisati nezavisno. Zato je važno da robots.txt ne bude samo kopiran primer sa interneta, već deo šire SEO optimizacije.
Šta robots.txt zaista kontroliše
Robots.txt je javno dostupan tekstualni fajl na korenu hosta, najčešće na adresi /robots.txt. Njegova osnovna funkcija je da crawlerima saopšti kojim putanjama mogu ili ne mogu da pristupe. On nije sistem za autentikaciju, zaštita od neovlašćenog pristupa niti zamena za kontrolu pristupa na serveru.
To znači da u robots.txt ne treba stavljati tajne URL-ove, privatne podatke ili sadržaj koji mora biti zaštićen. Ako stranica ne sme biti dostupna javnosti, potrebno je koristiti autentikaciju, dozvole na serveru ili drugi stvarni mehanizam zaštite.
Robots.txt takođe nije isto što i noindex. Blokiranjem crawl pristupa možete sprečiti bota da pročita stranicu, ali time ne dobijate pouzdanu kontrolu nad tim da li će URL biti poznat iz drugih izvora. Za kontrolu prikaza u Google Search-u koriste se odgovarajući robots meta tagovi, HTTP zaglavlja ili noindex, u zavisnosti od cilja.
Prvo razdvojite crawlere prema svrsi
Najčešća greška je pravilo poput:
User-agent: *
Disallow: /
Takva direktiva može blokirati i crawlerske posete koje su vam potrebne za klasičnu pretragu, AI search discovery ili proveru javnog sadržaja. Druga krajnost je potpuno otvaranje svih putanja bez razmišljanja o administraciji, filtrima, API endpointima, staging okruženju i nepotrebnim parametrima.
Bolji pristup je da napravite inventar user-agent tokena i za svaki postavite jasnu namenu:
- search crawler – koristi se za pronalaženje i prikaz javnog sadržaja u pretrazi;
- training crawler – koristi se za prikupljanje sadržaja koji može biti uključen u razvoj ili treniranje generativnih modela;
- generalni crawler – pravilo za ostale botove koji nisu posebno navedeni;
- klasični search crawleri – Googlebot, Bingbot i drugi crawleri od kojih zavisi indeksiranje na konkretnim platformama.
Ovo razdvajanje je posebno važno zato što naziv „AI crawler“ ne opisuje uvek istu funkciju. Dva bota iste kompanije mogu imati različite posledice po search visibility, training opt-out i način na koji se sadržaj koristi.
OpenAI: OAI-SearchBot nije isto što i GPTBot
OpenAI navodi da je OAI-SearchBot namenjen pronalaženju sajtova za prikaz u ChatGPT search funkcijama, dok se GPTBot koristi za crawl sadržaja koji može biti upotrebljen za treniranje generativnih foundation modela. Te kontrole su nezavisne.
Ako je cilj da javne stranice budu dostupne u pretraživačkim odgovorima, a da ne dozvolite training crawl, jedna moguća struktura izgleda ovako:
User-agent: OAI-SearchBot
Allow: /
User-agent: GPTBot
Disallow: /
User-agent: *
Disallow: /admin/
Disallow: /private/
Disallow: /staging/
Disallow: /api/
Ovo nije univerzalni recept za svaki sajt. Ako imate javne delove koji ne treba da budu dostupni ni search crawleru, pravila morate suziti na konkretne direktorijume ili putanje. Takođe, nakon izmene robots.txt ne treba očekivati trenutnu promenu u svim sistemima; crawler mora ponovo da pročita fajl i obradi izmenu.
Detaljna razlika između ova dva OpenAI crawlera obrađena je u tekstu OAI-SearchBot vs GPTBot: search visibility i training opt-out nisu ista stvar. Taj kontekst je važan pre nego što donesete odluku da sve OpenAI user-agente tretirate identično.
Google: Googlebot kontroliše Search, Google-Extended ima drugu ulogu
Kod Google ekosistema takođe je važno razlikovati pretragu od kontrole korišćenja sadržaja u drugim AI sistemima. Google navodi da se robots.txt direktive za Googlebot koriste za kontrolu crawl pristupa sadržaju koji je deo Google Search sistema, uključujući AI funkcije unutar Search-a.
Google-Extended je zaseban robots.txt token koji izdavači mogu koristiti za kontrolu toga da li sadržaj koji Google crawluje može biti korišćen za treniranje budućih generacija Gemini modela i za određene grounding scenarije. Google-Extended nije zaseban HTTP user-agent koji ćete nužno videti u logovima; on funkcioniše kao kontrolni token u robots.txt pravilima.
Primer odvojenog pravila može izgledati ovako:
User-agent: Google-Extended
Disallow: /interno/
Disallow: /premium-analize/
Ovakvo pravilo ne znači automatski da ste blokirali Google Search. Ako želite da ograničite prikaz isečaka ili indeksiranje u Search-u, robots.txt nije jedini alat koji treba posmatrati. Potrebno je proveriti i noindex, nosnippet, data-nosnippet, max-snippet, canonical i druge signale koji se šalju kroz HTML i HTTP odgovor.
Kako dozvoliti javni sadržaj, a ograničiti tehničke putanje
Za većinu sajtova dobar početak nije blokiranje celog domena, već uredno definisanje putanja koje nemaju vrednost za pretragu. To mogu biti:
- administrativni paneli i login stranice;
- staging i development okruženja;
- interni search rezultati;
- beskonačni filteri i kombinacije parametara;
- interne API putanje i endpointi;
- duplikati koji nastaju zbog sesija ili tracking parametara;
- privatni dokumenti i delovi portala koji nisu namenjeni javnosti.
Primer osnovne, ograničene konfiguracije:
User-agent: *
Disallow: /admin/
Disallow: /login
Disallow: /staging/
Disallow: /internal-search
Disallow: /api/
Sitemap: https://www.example.com/sitemap.xml
Ne treba nasumično blokirati CSS, JavaScript ili image resurse ako su potrebni da crawler razume sadržaj i njegov raspored. Posebno kod JavaScript aplikacija, stranica može izgledati prazno ako crawler ne može da preuzme ključne resurse ili ako renderer dobija drugačiji sadržaj. Za taj problem pogledajte vodič JavaScript sadržaj u AI Search-u: šta mora biti dostupno crawleru i rendereru.
Važna tehnička pravila koja se često previde
Specifična grupa može promeniti ponašanje wildcard pravila
Kada za određeni user-agent napravite posebnu grupu, nemojte pretpostaviti da će taj bot automatski kombinovati sva pravila iz User-agent: * grupe na način koji ste zamislili. U praksi je sigurnije da specifična grupa bude kompletna za tog crawlera i da u njoj ponovite ograničenja koja želite da važe.
Na primer, ako želite da OAI-SearchBot ima pristup javnom sadržaju, ali ne i internom direktorijumu, napišite to eksplicitno:
User-agent: OAI-SearchBot
Allow: /
Disallow: /admin/
Disallow: /private/
Disallow: /staging/
Pre produkcione izmene proverite kako parser konkretne platforme obrađuje grupe, preklapanje putanja i Allow/Disallow pravila. Ne oslanjajte se samo na to kako fajl izgleda ljudskom oku.
Robots.txt važi po hostu i protokolu
Robots.txt se čita sa konkretnog hosta. Pravila na www.example.com/robots.txt ne treba automatski posmatrati kao pravila za drugi subdomen, kao što je app.example.com. Isto važi za posebne hostove, CDN domene i odvojena staging okruženja.
Proverite da li svaki javno dostupan host ima odgovarajući fajl, da li vraća status 200 i da li ga CDN, WAF ili server ne menja u zavisnosti od lokacije ili user-agenta.
Ne blokirajte URL samo zato što ne želite njegov prikaz
Ako je cilj da pretraživač crawluje stranicu, ali da ne prikaže njen sadržaj u rezultatima, robots.txt može biti pogrešan alat. Blokirana stranica može sprečiti crawler da vidi meta direktive koje ste postavili na samoj stranici. Zato odluku razdvojite na dva pitanja: da li bot sme da dođe do URL-a? i šta sme da prikaže ili koristi nakon što ga pročita?
Robots.txt nije dovoljan za AI retrieval
Dozvoljen crawl ne garantuje da će AI sistem izabrati, razumeti ili citirati vaš sadržaj. Crawler mora da može da preuzme relevantnu stranicu, ali sistem zatim procenjuje njenu dostupnost, strukturu, canonical signal, jasnoću odgovora, pouzdanost i odnos prema drugim verzijama.
Zato robots.txt proveravajte zajedno sa:
- HTTP statusima i dostupnošću važnih URL-ova;
- server-rendered ili pravilno renderovanim sadržajem;
- canonical signalima i internim linkovanjem;
- XML sitemapom i tačnim
lastmodvrednostima; - robots meta direktivama i HTTP headerima;
- logovima, WAF pravilima i ograničenjima brzine.
Ako različite verzije iste stranice šalju suprotne signale, AI retrieval sistem može izabrati pogrešan URL čak i kada je crawl dozvoljen. Zbog toga je korisno pročitati i tekst Canonical signali i AI retrieval: kako sprečiti da sistemi biraju pogrešnu verziju.
Sitemap može pomoći otkrivanju važnih URL-ova, ali ne može popraviti blokiran crawl, pogrešan canonical ili stranicu bez korisnog sadržaja. Više o toj granici nalazi se u članku XML sitemap i AI discovery: gde pomaže, a gde ne rešava problem.
Praktična provera pre objavljivanja izmene
- Napravite mapu sadržaja. Označite URL-ove koji treba da budu dostupni za javnu pretragu, one koji su samo funkcionalni i one koji su privatni.
- Popišite crawlere. Razdvojite OpenAI search i training tokove, Googlebot, Google-Extended, Bingbot i wildcard pravilo.
- Testirajte ključne URL-ove. Proverite početnu stranicu, najvažnije uslužne stranice, blog, sitemap, JS i CSS resurse.
- Pregledajte server logove. Potvrdite da se zahtevi stvarnih crawlera ne odbijaju na WAF-u ili CDN-u uprkos robots.txt pravilima.
- Validirajte promenu na produkciji. Test lokalnog fajla nije dovoljan ako server vraća drugi sadržaj, redirectuje robots.txt ili cache-ira staru verziju.
- Dokumentujte odluku. Zapišite zašto je određeni bot dozvoljen ili blokiran, kako bi buduće izmene imale jasan kontekst.
Za dublju proveru crawlability-ja, rendering-a, canonical signala i drugih tehničkih zavisnosti, robots.txt treba uključiti u širi proces tehničkog SEO-a, a ne posmatrati ga kao izolovan fajl.
Najrazumniji model odlučivanja
| Cilj | Prvi signal za proveru | Tipična odluka |
|---|---|---|
| Javni sadržaj u AI pretrazi | Search crawler i indeksabilan HTML | Dozvoliti relevantnom search botu, ograničiti nepotrebne putanje |
| Opt-out od training crawl-a | Training user-agent token | Posebno blokirati token, bez blokiranja search crawlera |
| Privatne ili administrativne stranice | Kontrola pristupa | Zaštititi na serveru; po potrebi dodati robots.txt ograničenje |
| Kontrola isečaka u Search-u | Meta direktive i HTTP headeri | Koristiti noindex, nosnippet ili druge odgovarajuće kontrole |
| Bolje otkrivanje novih URL-ova | Sitemap i interno linkovanje | Održavati sitemap, ali ne očekivati da rešava crawl blokade |
Zaključak: otvorite ono što želite da bude pronađeno
Dobro podešen robots.txt za AI Search nije najstroži mogući fajl, već najprecizniji. Njegov zadatak je da pretraživačima i AI crawlerima jasno pokaže koje javne putanje imaju smisla, dok privatne, administrativne i tehničke površine ostaju van nepotrebnog crawlovanja.
Najvažnija odluka je da ne mešate search visibility sa training opt-out-om. Kada se crawleri razdvoje prema nameni, možete dozvoliti otkrivanje javnog sadržaja bez automatskog otvaranja svega i bez donošenja jedne globalne odluke za sve platforme.
Sledeći korak je jednostavan: napravite tabelu važnih user-agent tokena i URL grupa, testirajte robots.txt na produkcionom hostu, a zatim proverite da li rendering, canonical, sitemap i meta direktive podržavaju istu odluku.