Analizor robots.txt

Se lipește un robots.txt și se citește așa cum îl citește un crawler, conform RFC 9309 (Robots Exclusion Protocol, standardizat în 2022): grupuri de user-agent, reguli Allow/Disallow, hărți ale site-ului și directive necunoscute, toate expuse — plus un audit pentru greșelile clasice (linii disallow goale, directive necunoscute, fișiere prea mari). Matcher-ul răspunde apoi la întrebarea reală: se introduce un user agent și o cale, iar rezultatul este verdictul permite/refuză, cu regula exactă care a decis — cea mai lungă potrivire, metacaracterul *, ancora de final $ și combinarea grupurilor, exact cum prevede standardul. Totul rulează în browser.
Nimic analizat încă. Se lipește un robots.txt mai sus și se apasă Analizează fișierul, sau se încarcă un exemplu.
Matcher-ul lucrează cu textul din caseta de mai sus (nu este nevoie să se apese mai întâi Analizează). User agent-ul se potrivește cum definește RFC 9309: valoarea User-agent din fișier trebuie să fie un subșir, fără diferențe de majuscule, al celor introduse aici — deci dacă se scrie ExampleBot/1.0, se potrivește un grup declarat ca ExampleBot. Se acceptă și un URL complet, ca cale.
User agent (funcționează și un șir UA real) Cale sau URL complet
Încă nu există verdict. Se apasă Testează permisiunea.
Cum se preia fișierul:deschiderehttps://your-domain.example/robots.txtîn browser, selectare totală, copiere și lipire aici — saucurl -s https://your-domain.example/robots.txtîntr-un terminal. Pagina nu preia nimic singură: doar citește ce se lipește. Pentru a inspecta antetele de răspuns care au transportat fișierul, se rulează acestea prinanalizor de antete HTTP.
Autotest
Reia analizorul și matcher-ul față de vectorii de referință RFC 9309: precedența celei mai lungi potriviri (inclusiv egalitatea allow-beats-disallow și cazul căii adânci), combinarea grupurilor, modul*grupului de rezervă, sensibilitatea la majuscule a căilor și a user agent-urilor, metacaracterele-joker, modul$ancoră, permiterea implicită a/robots.txt, normalizarea codării procentuale, extragerea hărților site-ului și căile negative. Nimic nu se trimite nicăieri.
Ce este robots.txt?
Într-o propoziție: robots.txt este un fișier text simplu aflat în rădăcina unui site, care le spune crawlerelor politicoase ce căi pot fi preluate — o convenție voluntară, standardizată ca RFC 9309 în 2022, pe care o respectă toate crawlerele importante.
Forma unui fișier

Un fișier este o succesiune de înregistrări. Un grup începe cu una sau mai multe linii User-agent, urmate de reguli Allow și Disallow care se aplică acelor crawlere. O nouă linie User-agent după reguli începe un nou grup; mai multe linii User-agent una după alta împart același grup (un crawler cu două nume are nevoie de asta). Înregistrările independente, precum Sitemap, pot apărea oriunde. # începe un comentariu oriunde pe o linie. Numele câmpurilor nu contează între majuscule și minuscule; căile da.

LinieÎnseamnă
User-agent: foobotRegulile de mai jos se aplică crawlerelor al căror nume conține foobot (fără diferențe de majuscule)
User-agent: *Regulile de mai jos se aplică fiecărui crawler fără un grup mai specific
Disallow: /private/Nu se preiau căile care încep cu /private/
Allow: /private/public/Excepție care învinge disallow-ul de mai sus pentru aceste căi (cea mai lungă potrivire)
Disallow: (gol)Nimic nu este interzis — formula clasică „permite tot”
Sitemap: https://…/sitemap.xmlUnde se află harta site-ului; crawlerele pot aduna mai multe
Crawl-delay: 30Nu este în RFC 9309 — o extensie veche; crawlerele importante o ignoră sau o interpretează singure
Cum se ajunge la un verdict (RFC 9309 §2.2.2)

1. Se găsește grupul a cărui valoare User-agent este un subșir al numelui crawlerului; se combină toate grupurile potrivite. Dacă nu există niciunul, se folosește grupul *; dacă nici acesta nu există, totul este permis. 2. Calea se testează față de fiecare regulă: potrivirea se face pe prefix, cu diferențiere între majuscule și minuscule, iar */$ funcționează ca metacaractere-joker. 3. Cea mai lungă regulă care se potrivește câștigă; la lungime egală, Allow îl învinge pe Disallow. Dacă nicio regulă nu se potrivește, accesul este permis. Și orice spun regulile, /robots.txt însuși este implicit permis — altfel un crawler nu ar putea citi regulile.

Greșeli frecvente
  • Convingerea că robots.txt blochează accesul. Este o cerere către crawlerele politicoase, nu un zid: scraperele necinstite o ignoră complet și nu are niciun efect asupra a ce poate deschide un browser. Pentru protecție reală se folosește autentificarea; pentru a dirija doar motoarele de căutare, robots.txt este instrumentul potrivit.
  • Așteptarea ca Disallow: / să scoată o pagină din rezultatele căutării. Oprește parcurgerea, nu indexarea: dacă alte pagini trimit la pagina respectivă, un motor de căutare poate afișa în continuare URL-ul (fără descriere). Eticheta meta noindex sau antetul de răspuns este instrumentul pentru eliminare.
  • Bazarea pe ordine în loc de lungime. Prima regulă care se potrivește nu câștigă — câștigă cea mai specifică (cea mai lungă). Reordonarea liniilor pentru a „repara” comportamentul nu schimbă nimic; regula dorită se face mai lungă.
  • Blocarea CSS și JS. Interzicerea /*.css$ și /*.js$ era înainte o „optimizare” frecventă; randătorii au acum nevoie de aceste fișiere pentru a vedea pagina așa cum o văd vizitatorii, iar o pagină randată pe jumătate se poate clasa mai slab.
  • Tratarea unui grup mare drept documentație. Liniile de comentariu în interiorul unui grup sunt în regulă, dar un paragraf de text înainte de prima linie User-agent, fără #, este o eroare de analiză care poate deruta analizoarele permisive.
Întrebări frecvente

Toate crawlerele acceptă Allow, * și $? Cele importante da, iar RFC 9309 standardizează toate trei. Unele crawlere mai mici sau mai vechi înțeleg doar Disallow și citesc * literal — un motiv în plus pentru a păstra regulile simple, atunci când se poate.

Ce înseamnă un Disallow: gol? „Nu interzice nimic” — grupul permite explicit totul. Apare de obicei când cineva editează un șablon și șterge calea, dar nu și directiva; auditul o semnalează.

Cât de mare poate fi fișierul? RFC 9309 cere analizoarelor să gestioneze cel puțin 500 KiB; peste aceasta, un crawler poate înceta citirea și poate trata restul ca interzis. Se păstrează mult sub această limită, iar dacă devine foarte mare, se întreabă dacă controlul parcurgerii nu ține mai bine de antetele paginii.

De ce spune matcher-ul că /robots.txt este permis chiar și sub Disallow: /? Pentru că standardul o spune explicit: fișierul robots în sine este implicit permis. urllib.robotparser din Python, printre altele, nu implementează acest caz special — una dintre micile divergențe dintre analizoarele reale, pe care această pagină o documentează în autotestul ei.

Este o cale Disallow sensibilă la majuscule? Da. /Private/ și /private/ sunt căi diferite. Numele câmpului disallow poate fi în orice caz, dar valoarea trebuie să se potrivească exact cu URL-ul.