Robots.txt: sintaxa corectă, exemple și cum blochezi un bot
Cum scrii corect robots.txt: reguli explicate, exemple de adaptat, roboții AI, ce se întâmplă fără fișier și cum verifici că funcționează.
Cuprins
Ai refăcut site-ul, a trecut o lună și telefoanele din Google s-au rărit. Dezvoltatorul spune că totul e în regulă. Deschizi site-ul-tau.ro/robots.txt și vezi două rânduri: User-agent: * și Disallow: /. Fișierul a rămas de pe versiunea de test și le cere tuturor roboților să nu citească nimic de pe site.
Robots.txt are de obicei câteva rânduri, dar fiecare contează. Mai jos vezi cum se scrie corect, cu exemple pe care le poți adapta, cum blochezi un anumit robot, inclusiv pe cei care adună date pentru inteligența artificială, și cum verifici că Google citește fișierul așa cum ai vrut.
Ce face robots.txt și ce nu face
Robots.txt este un fișier text pe care roboții motoarelor de căutare îl citesc înainte să parcurgă site-ul. În el scrii ce zone au voie să citească și ce zone nu.
Trei lucruri nu le face, deși mulți se bazează pe ele:
- Nu scoate pagini din Google. O adresă blocată poate apărea totuși în rezultate dacă alte pagini trimit spre ea, doar că fără descriere. Google spune clar că fișierul nu servește la ținerea unei pagini în afara rezultatelor. Pentru asta folosești
noindex, iar pagina trebuie să rămână accesibilă, ca robotul să vadă instrucțiunea. - Nu protejează nimic. Oricine îl poate deschide în browser, iar căile pe care le scrii acolo arată exact unde sunt zonele pe care ai vrea să le ascunzi. Paginile private se pun în spatele unei parole.
- Nu oprește roboții care nu vor să asculte. Regulile sunt o convenție. Motoarele de căutare mari le respectă, dar un robot care copiază conținut le poate ignora.
Unde pui fișierul
- Fișierul se numește exact
robots.txtși stă în rădăcina site-ului:https://site-ul-tau.ro/robots.txt. Unul pus într-un subfolder este ignorat. - Regulile se aplică doar adresei pe care stă fișierul: protocol, domeniu și port. Un subdomeniu, de exemplu
blog.site-ul-tau.ro, are nevoie de propriul robots.txt. - Un site are un singur fișier robots.txt.
- Scrie-l ca text simplu, în UTF-8. Nu-l redacta în Word sau în alt editor de documente, pentru că ghilimelele „curbate” și caracterele ascunse pot strica regulile.
- Google citește primii 500 KiB din fișier și ignoră restul. Un site obișnuit nici nu se apropie de limita asta.
Sintaxa corectă, rând cu rând
Un robots.txt e format din grupuri. Fiecare grup începe cu unul sau mai multe rânduri User-agent, care spun cui i se adresează, urmate de reguli:
# Reguli pentru toți roboții
User-agent: *
Disallow: /cont/
Disallow: /cos/
Allow: /cont/inregistrare/
Sitemap: https://site-ul-tau.ro/sitemap.xml
User-agentnumește robotul. Steluța înseamnă toți roboții care nu au un grup al lor.Disallowinterzice citirea adreselor care încep cu calea dată.Disallow: /cont/blochează/cont/,/cont/setari/și tot ce începe la fel.Allowface o excepție de la unDisallow. În exemplu, pagina de înregistrare rămâne accesibilă.Sitemaparată unde e harta site-ului. Scrie adresa completă, cuhttps://. Poți avea mai multe rânduriSitemap, iar ele nu țin de niciun grup.- Tot ce urmează după
#e comentariu, pe care roboții îl ignoră.
Două detalii fac des diferența. Numele câmpurilor merg scrise cu litere mari sau mici, dar căile nu: /Cont/ și /cont/ sunt adrese diferite. Iar un Disallow: fără nicio cale nu blochează nimic. Așa spui „ai voie peste tot”.
Regulile complete, cu toate cazurile speciale, sunt în specificația Google pentru robots.txt.
Steluța și semnul $
Google și ceilalți roboți mari înțeleg două caractere speciale. * înseamnă orice șir de caractere, inclusiv niciunul. $ marchează finalul adresei.
User-agent: *
# Blochează paginile de căutare internă, oriunde apar
Disallow: /*?s=
# Blochează doar fișierele PDF
Disallow: /*.pdf$
Fără $, regula /*.pdf ar bloca și o adresă ca /ghid.pdf-vechi/, pentru că și ea conține „.pdf”.
Când două reguli se contrazic
Google nu aplică regulile în ordinea în care le-ai scris. Se uită la toate regulile din grup care se potrivesc cu adresa și o alege pe cea mai lungă, adică pe cea mai precisă. Dacă un Allow și un Disallow au aceeași lungime, câștigă Allow, regula mai puțin restrictivă.
User-agent: *
Disallow: /servicii/
Allow: /servicii/seo-local/
Aici /servicii/seo-local/ rămâne accesibilă, iar celelalte pagini din /servicii/ sunt blocate.
Un robot ascultă de un singur grup
Fiecare robot caută grupul cu numele lui și, dacă îl găsește, îl ignoră pe cel general. Asta îi surprinde pe mulți:
User-agent: *
Disallow: /admin/
User-agent: Googlebot
Disallow: /test/
Googlebot citește doar al doilea grup, deci pentru el /admin/ nu e blocat. Regulile din grupul cu steluță nu se adaugă peste cele din grupul lui. Dacă vrei ca Googlebot să ocolească și /admin/, repeți regula în grupul lui.
Dacă același robot apare în mai multe grupuri, Google le unește. Iar grupul cu steluță nu se aplică roboților Google care verifică paginile reclamelor (AdsBot). Pe ei trebuie să-i numești explicit.
Exemple pe care le poți adapta
Exemplele de mai jos sunt puncte de pornire. Înainte să folosești unul, verifică ce adrese are site-ul tău și nu șterge reguli existente fără să știi de ce au fost puse.
Site de prezentare, fără zone de ascuns. Pentru majoritatea firmelor de servicii, atât e suficient:
User-agent: *
Disallow:
Sitemap: https://site-ul-tau.ro/sitemap.xml
Site WordPress. Zona de administrare n-are ce căuta în Google, dar un fișier din ea e folosit de unele teme și pluginuri pe partea publică a site-ului:
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://site-ul-tau.ro/sitemap.xml
Adresa hărții diferă în funcție de pluginul de SEO, așa că verifică-o înainte să o treci.
Magazin online. Coșul, comanda și sortările generează multe adrese fără valoare în căutare:
User-agent: *
Disallow: /cos/
Disallow: /checkout/
Disallow: /*?sort=
Disallow: /*&sort=
Sitemap: https://site-ul-tau.ro/sitemap.xml
Blochează parametrii doar dacă știi sigur că paginile respective nu trebuie să apară în Google. O pagină de categorie filtrată, de exemplu „pantofi negri de piele”, poate fi foarte bună în căutări.
Versiunea de test a site-ului. Aici Disallow: / e varianta corectă, dar nu ajunge. Pune versiunea de test în spatele unei parole și verifică robots.txt imediat după lansare, ca rândul ăsta să nu ajungă pe site-ul public.
Cum blochezi un anumit robot
Faci un grup cu numele lui și blochezi tot:
User-agent: GPTBot
Disallow: /
Ceilalți roboți nu sunt afectați. Numele exact al fiecărui robot îl găsești în documentația companiei care îl folosește.
Roboții de inteligență artificială
Aici alegerea ține de ce vrei pentru firmă. Unii roboți adună texte pentru antrenarea modelelor, alții indexează site-uri pentru căutarea din asistenții AI, iar alții deschid o pagină doar când le-o cere un utilizator. Dacă vrei ca firma ta să apară când cineva întreabă ChatGPT sau Perplexity de un serviciu ca al tău, lasă liberi roboții de căutare.
| Robot | Al cui e | Ce face |
|---|---|---|
| GPTBot | OpenAI | Adună conținut care poate fi folosit la antrenarea modelelor |
| OAI-SearchBot | OpenAI | Indexează site-uri pentru căutarea din ChatGPT |
| ChatGPT-User | OpenAI | Deschide pagini la cererea unui utilizator. OpenAI spune că regulile din robots.txt s-ar putea să nu i se aplice |
| ClaudeBot | Anthropic | Adună conținut pentru antrenarea modelelor |
| Claude-SearchBot | Anthropic | Indexează site-uri pentru căutarea din Claude |
| Claude-User | Anthropic | Deschide pagini la cererea unui utilizator și respectă robots.txt |
| PerplexityBot | Perplexity | Indexează site-uri pentru căutarea Perplexity. Compania spune că nu îl folosește la antrenarea modelelor |
| Perplexity-User | Perplexity | Deschide pagini la cererea unui utilizator și, în general, ignoră robots.txt |
| Google-Extended | Nu e un robot separat, ci un nume prin care refuzi folosirea conținutului la antrenarea modelelor Gemini și în răspunsurile din aplicațiile Gemini. Nu schimbă nimic în Google Search | |
| Applebot-Extended | Apple | Nu citește pagini. Prin el refuzi folosirea conținutului la antrenarea modelelor Apple |
| CCBot | Common Crawl | Construiește o arhivă publică a paginilor de pe web |
Sursele sunt paginile fiecărei companii: OpenAI, Anthropic, Perplexity, Google și Apple. Lista se schimbă des, așa că verifică numele înainte să le treci în fișier.
Dacă vrei să refuzi antrenarea modelelor, dar să rămâi vizibil în căutarea din asistenți, fișierul poate arăta așa:
User-agent: GPTBot
Disallow: /
User-agent: ClaudeBot
Disallow: /
User-agent: Google-Extended
Disallow: /
User-agent: *
Disallow:
Sitemap: https://site-ul-tau.ro/sitemap.xml
La Google mai e un detaliu important. Rezumatele AI din căutare (AI Overviews și AI Mode) nu depind de Google-Extended, ci de Googlebot, robotul obișnuit de căutare. Dacă îl blochezi pe el, ieși cu totul din Google. Pentru a controla ce text din pagină se poate afișa, Google oferă instrucțiuni la nivel de pagină, cum este nosnippet.
OpenAI și Perplexity spun că preiau modificările în aproximativ 24 de ore. Iar pentru roboții care ignoră regulile, robots.txt nu ajută: acolo ai nevoie de reguli în firewall sau la furnizorul de găzduire.
Ce se întâmplă dacă nu ai robots.txt
Nimic grav. Dacă la site-ul-tau.ro/robots.txt serverul răspunde cu 404, Google consideră că nu există restricții și citește tot site-ul. Pentru un site mic de prezentare e acceptabil, deși pierzi locul standard în care anunți harta site-ului.
Problema apare când serverul răspunde la robots.txt cu o eroare de tip 5xx, de exemplu 500 sau 503. Google tratează eroarea ca pe o interdicție:
- în primele 12 ore nu mai citește deloc site-ul;
- apoi folosește ultima versiune bună a fișierului, până la 30 de zile, iar dacă nu are niciuna, consideră că nu există restricții;
- după 30 de zile, dacă restul site-ului merge normal, se poartă ca și cum fișierul n-ar exista. Dacă site-ul are în continuare probleme, poate opri citirea.
Prin urmare, un robots.txt care dă eroare e mai periculos decât unul care lipsește. Erorile de DNS și timpii de răspuns depășiți se tratează la fel. Dacă fișierul redirecționează spre altă adresă, Google urmează cel puțin cinci redirecționări, apoi îl consideră lipsă.
Cum verifici dacă robots.txt funcționează corect
- Deschide fișierul în browser, la
site-ul-tau.ro/robots.txt. Trebuie să se încarce ca text simplu, fără eroare și fără să te trimită pe altă pagină. - Trece-l prin verificatorul nostru de robots.txt. Pui adresa site-ului sau lipești textul fișierului, iar unealta îți spune ce blochează, ce e doar o neatenție și ce trebuie corectat urgent. Merge și înainte să pui fișierul pe site.
- Raportul robots.txt din Search Console. Îl găsești la Setări. Îți arată ce fișiere a găsit Google, când le-a citit ultima oară, dacă a reușit să le preia și ce erori a întâlnit. Apare pentru proprietățile la nivel de domeniu, nu pentru cele pe un subfolder. După o modificare, din meniul cu trei puncte de lângă fișier poți cere o recitire. Detaliile sunt în ghidul Google pentru raport.
- Inspecția adresei URL, tot în Search Console, pentru o pagină anume. Îți spune dacă accesul robotului la pagină e permis sau blocat de robots.txt.
- Pentru dezvoltatori, Google a publicat ca cod open source biblioteca cu care interpretează fișierul.
Google păstrează fișierul în memorie până la 24 de ore, deci o modificare poate apărea abia a doua zi. Cererea de recitire grăbește lucrurile, dar nu le face instantanee.
Vezi în câteva secunde ce blochează robots.txt-ul tău și ce trebuie corectat. Poți verifica site-ul sau un text lipit, înainte să-l publici.
Verifică robots.txt gratuitGreșeli comune la configurarea robots.txt
Disallow: /rămas după lansare. E cazul de la începutul articolului. Google recomandă să nu blochezi tot site-ul nici măcar când îți oprești temporar activitatea, pentru că riști să-ți scoți conținutul din căutare.- Fișiere CSS și JavaScript blocate. Google are nevoie de ele ca să vadă pagina așa cum o vede un om. Fără ele, o poate înțelege greșit.
- O pagină cu
noindexblocată în robots.txt. Robotul nu mai citește pagina, deci nu vede nici instrucțiunea. Pagina poate rămâne în Google, iar în Search Console apare ca „Indexată, deși este blocată de robots.txt”. noindexscris direct în robots.txt. Google a renunțat să-l ia în calcul în 2019.Crawl-delaypentru Google. Googlebot îl ignoră. Bing îl respectă, la fel unii roboți AI, de exemplu ClaudeBot.- Pagini private „ascunse” prin robots.txt. În realitate, publici lista cu ce vrei să ascunzi.
- Litere mari și mici amestecate în căi.
Disallow: /Servicii/nu blochează/servicii/. - Robots.txt care răspunde cu 503 în timpul unei mentenanțe. Oprește citirea întregului site, cum ai văzut mai sus.
Bune practici, pe scurt
- Ține fișierul scurt și blochează doar ce are un motiv clar.
- Declară harta site-ului cu adresa completă.
- Lasă accesibile resursele de care are nevoie pagina: CSS, JavaScript, imagini.
- Pentru paginile care nu trebuie să apară în Google folosește
noindex, nu robots.txt. - Decide separat pentru roboții AI de antrenare și pentru cei de căutare.
- Verifică fișierul după orice redesign, migrare sau schimbare de platformă.
- După fiecare modificare, cere recitirea din Search Console și uită-te din nou în raport a doua zi.
Dacă vrei să știi și ce altceva îți poate ține site-ul departe de Google, ghidul de SEO tehnic are un checklist pe care îl parcurgi singur.
Întrebări frecvente
Pot pune noindex în robots.txt?
Nu. Google nu mai ia în calcul regula din 2019. Pune noindex în codul paginii sau în antetul HTTP și lasă pagina accesibilă, ca robotul să-l poată citi.
Respectă Google instrucțiunea Crawl-delay?
Nu. Googlebot ignoră Crawl-delay. Bing și câțiva roboți AI, de exemplu ClaudeBot, o respectă.
Cât durează până vede Google modificările?
De obicei până la 24 de ore, cât păstrează fișierul în memorie. Poți grăbi procesul cerând o recitire din raportul robots.txt din Search Console.
Dacă blochez GPTBot, dispare site-ul meu din căutarea ChatGPT?
Nu neapărat. GPTBot adună date pentru antrenare. Pentru căutarea din ChatGPT, OpenAI folosește OAI-SearchBot, iar cei doi roboți se setează separat.
Un site mic are nevoie de robots.txt?
Nu e obligatoriu. Fără fișier, Google citește tot site-ul. Un fișier simplu, cu Disallow: gol și adresa hărții site-ului, nu te costă nimic și îți dă un loc clar în care o anunți.
Vrei să știi unde stai tu, concret?
Pune adresa site-ului și pornești o verificare automată a paginii introduse și a datelor externe disponibile. Raportul poate fi parțial. Gratuit, fără obligații. Un specialist te contactează în maximum 24 de ore, în zile lucrătoare, pentru a discuta constatările și pașii următori.