Specificații Robots.txt

Rezumat

Acest document detaliază modul în care Google gestionează fișierul robots.txt care vă permite să controlați modul în care accesează cu crawlere și indexează public crawlerele site-urilor Google site-uri web accesibile.

Ce s-a schimbat

La 1 iulie 2019, Google a anunțat că protocolul robots.txt lucrează pentru a deveni un standard de internet. Aceste modificări sunt reflectate în acest document.

Lista modificărilor

Iată ce s-a schimbat:

  • A fost eliminată secțiunea „Limba cerințelor” din acest document deoarece limba este specifică schiței Internetului.
  • Robots.txt acceptă acum toate protocoalele bazate pe URI.
  • Google urmărește cel puțin cinci hopuri de redirecționare. Întrucât nu au fost preluate reguli încă, redirecționările sunt urmate pentru cel puțin cinci hamei și dacă nu este găsit niciun robot.txt, Google îl tratează ca un 404 pentru robots.txt. Gestionarea redirecționărilor logice pentru fișierul robots.txt pe baza conținutului HTML care returnează 2xx (cadre, JavaScript sau redirecționări de tip meta refresh) este descurajată, iar conținutul primei pagini este utilizat pentru găsirea regulilor aplicabile.
  • Pentru 5xx, dacă robots.txt nu poate fi accesat mai mult de 30 de zile, se folosește ultima copie cache a robots.txt sau, dacă nu este disponibilă, Google presupune că nu există restricții de accesare cu crawlere.
  • Google tratează solicitările nereușite sau datele incomplete ca o eroare de server.
  • „Înregistrările” sunt acum numite „linii” sau „reguli”, după caz.
  • Google nu acceptă gestionarea <field> elemente cu erori simple sau greșeli de scriere (de exemplu, „useragent” în loc de „user-agent”).
  • În prezent, Google impune o limită de dimensiune de 500 kibibyte (KiB) și ignoră conținutul după această limită.
  • S-a actualizat sintaxa formală pentru a fi valid Augsed Backus-Naur Form (ABNF) conform RFC5234 și pentru a acoperi caracterele UTF-8 din robots.txt.
  • S-a actualizat definiția „grupurilor” „pentru a o face mai scurtă și mai precisă. A fost adăugat un exemplu pentru un grup gol.
  • S-au eliminat referințele la schema de crawling Ajax depreciată.

Definiții de bază

Definiții
Crawler Un crawler este un serviciu sau agent care accesează cu crawlere site-uri web. În general, un crawler automat și accesează recursiv adrese URL cunoscute ale unei gazde care expune conținut care poate fi accesat cu browsere web standard. Pe măsură ce se găsesc adrese URL noi (prin diferite mijloace, cum ar fi de la linkuri de pe pagini existente, cu crawlere sau din fișiere Sitemap), acestea sunt, de asemenea, crawlere în același mod.
Utilizator- agent Un mijloc de identificare a unui anumit crawler sau a unui set de crawler.
Directive Lista orientărilor aplicabile pentru un crawler sau grup de crawleruri stabilite în fișierul robots.txt.
URL Localizatori uniformi de resurse, așa cum sunt definiți în RFC 1738.
Google-specific Aceste elemente sunt specifice implementării Google de către robots.txt și pot să nu fie relevante pentru alte părți.

Aplicabilitate

Liniile directoare stabilite în acest document sunt urmate de toate crawlerele automate de la Google. Când un agent accesează adrese URL în numele unui utilizator (de exemplu, pentru traducere, fluxuri abonate manual, analize malware), aceste reguli nu trebuie să se aplice.

Fi locația și intervalul de validitate

Fișierul robots.txt trebuie să se afle în directorul de nivel superior al gazdei, accesibil prin protocolul și numărul portului corespunzător. Protocoalele general acceptate pentru robots.txt sunt toate bazate pe URI, iar pentru Căutarea Google în mod specific (de exemplu, accesarea cu crawlere a site-urilor web) sunt „http” și „https”. Pe http și https, fișierul robots.txt este preluat folosind o solicitare GET necondiționată HTTP.

Specific Google: Google acceptă și urmărește și fișierele robots.txt pentru site-urile FTP. Fișierele robots.txt bazate pe FTP sunt accesate prin protocolul FTP, utilizând o autentificare anonimă.

Directivele enumerate în fișierul robots.txt se aplică doar gazdei, protocolului și numărul portului unde este găzduit fișierul. .

Exemple de adrese URL valide pentru robots.txt

Gestionarea codurilor de rezultate HTTP

Există, în general, trei rezultate diferite atunci când sunt preluate fișierele robots.txt:

  • permis total: tot conținutul poate fi accesat cu crawlere.
  • interzicere completă: nu poate fi accesat cu crawlere niciun conținut.
  • permis condiționat: directivele din robots.txt determină capacitatea de a accesa cu crawlere anumite conținuturi.
Gestionarea codurilor de rezultate HTTP
2xx (reușit) Codurile de rezultate HTTP care semnalează succesul duc la o „permisiune condiționată” de târâtoare.
3xx (redirecționare) Google urmărește cel puțin cinci hopuri de redirecționare definite de RFC 1945 pentru HTTP / 1.0 și apoi le oprește și le tratează ca un 404 . Este descurajată gestionarea redirecționărilor robots.txt către adrese URL nepermise; deoarece încă nu au fost preluate reguli, redirecționările sunt urmate pentru cel puțin cinci hamei și dacă nu este găsit niciun robot.txt, Google îl tratează ca un 404 pentru robots.txt. Gestionarea redirecționărilor logice pentru fișierul robots.txt pe baza conținutului HTML care returnează 2xx (cadre, JavaScript sau redirecționări de tip meta refresh) este descurajată, iar conținutul primei pagini este utilizat pentru găsirea regulilor aplicabile.
4xx (erori client) Toate erorile 4xx sunt tratate în același mod și se presupune că nu există un fișier robots.txt valid. Este am presupus că nu există restricții. Aceasta este o „permisiune completă” pentru accesarea cu crawlere.
5xx (eroare server)

Erorile serverului sunt văzute ca erori temporare care au ca rezultat o „interzicere completă” a accesării cu crawlere. Solicitarea este reîncercată până când se obține un cod de rezultat HTTP care nu conține erori de server. O eroare 503 (Service Unavailable) are ca rezultat o reîncercare destul de frecventă. Dacă robotul.txt este inaccesibil pentru mai mult de 30 de zile, se folosește ultima copie în cache a robotului.txt. Dacă nu este disponibilă, Google presupune că nu există restricții de accesare cu crawlere. Pentru a suspenda temporar accesarea cu crawlere, se recomandă să difuzați un cod de rezultat HTTP 503.

Specific Google: Dacă putem stabili că un site este configurat incorect pentru a returna 5xx în loc de 404 pentru paginile lipsă, tratăm o eroare 5xx din acel site ca 404.

Nu a reușit solicitări sau date incomplete Gestionarea unui fișier robots.txt care nu poate fi preluat din cauza problemelor DNS sau de rețea, cum ar fi expirarea timpului, răspunsuri nevalide, conexiuni de resetare sau închidere și erori de chunking HTTP, este tratat ca o eroare de server.
Caching conținutul robots.txt este, în general, stocat în cache până la 24 de ore, dar poate fi stocat în cache mai mult în situațiile în care reîmprospătarea cache-ului versiunea nu este posibilă (de exemplu, din cauza expirărilor sau a erorilor 5xx). Răspunsul în cache poate fi distribuit de crawlerele diferite. Google poate crește sau reduce durata de viață a cache-ului pe baza antetelor HTTP Cache-Control max-age.

Format fișier

Formatul de fișier așteptat este text simplu codificat în UTF-8. Fișierul este format din linii separate de CR, CR / LF sau LF.

Sunt luate în considerare numai liniile valide; toate celelalte conținuturi sunt ignorate. De exemplu, dacă documentul rezultat este o pagină HTML, se iau în considerare numai liniile de text valide, restul sunt eliminate fără avertisment sau eroare.

Dacă se utilizează o codificare a caracterelor care rezultă în utilizarea caracterelor care nu sunt un subset al UTF-8, acest lucru poate duce la analizarea incorectă a conținutului fișierului.

Un BOM Unicode opțional (marca de ordine de octeți) la începutul fișierului robots.txt este ignorat.

Fiecare linie validă constă dintr-un câmp, două puncte și o valoare. Spațiile sunt opționale (dar recomandate pentru a îmbunătăți lizibilitatea). Comentariile pot fi incluse în orice locație din fișier folosind caracterul „#”; tot conținutul după începutul unui comentariu până la sfârșitul rândului este tratat ca un comentariu și ignorat. Formatul general este <field>:<value><#optional-comment>. Spațiul alb la începutul și la sfârșitul liniei este ignorat.

Elementul <field> nu face minuscule. Elementul < valoare > poate fi sensibil la majuscule și minuscule, în funcție de câmpul < div id = „aa950173be”> element.

Gestionarea elementelor <field> cu erori simple sau greșeli de scriere (de exemplu, „useragent” în loc de „ user-agent „) nu este acceptat.

Poate fi aplicată o dimensiune maximă a fișierului pentru fiecare crawler. Conținutul care este după dimensiunea maximă a fișierului este ignorat. În prezent, Google aplică o limită de dimensiune de 500 kibibiți (KiB). Pentru a reduce dimensiunea fișierului robots.txt, consolidați directivele care ar rezulta într-un fișier robots.txt supradimensionat. De exemplu, plasați materialul exclus într-un director separat.

Sintaxa / definiția formală

Iată o descriere a Formei Backus-Naur Augmented (ABNF), așa cum este descris în RFC 5234

Gruparea de linii și reguli

Una sau mai multe user-agent linii care sunt urmate de una sau mai multe reguli. Grupul este terminat de o linie sau un sfârșit de fișier user-agent. Este posibil ca ultimul grup să nu aibă reguli, ceea ce înseamnă că implicit permite totul.

Exemple de grupuri:

user-agent: adisallow: /cuser-agent: bdisallow: /duser-agent: euser-agent: fdisallow: /guser-agent: h

Sunt specificate patru grupuri distincte :

  • Un grup pentru „a”
  • Un grup pentru „b”
  • Un grup atât pentru „e”, cât și pentru „f”
  • Un grup pentru „h”

Cu excepția ultimului grup (grupul „h”), fiecare grup are propria linie de membru al grupului. Ultimul grup (grupul „h”) este gol.Rețineți utilizarea opțională a spațiului alb și a liniilor goale pentru a îmbunătăți lizibilitatea.

Ordinea de prioritate pentru agenții utilizator

Un singur grup este valid pentru un anumit crawler. Crawlerul trebuie să determine grupul corect de linii găsind grupul cu cel mai specific agent de utilizator care încă se potrivește. Toate celelalte grupuri sunt ignorate de crawler. Agentul utilizator este sensibil la majuscule și minuscule. Tot textul care nu se potrivește este ignorat (de exemplu, atât googlebot/1.2, cât și googlebot* sunt echivalente cu googlebot). Ordinea grupurilor din fișierul robots.txt este irelevantă.

Dacă există mai multe grupuri declarate pentru un anumit agent de utilizator, toate regulile din grupurile aplicabile agentului de utilizator specific sunt combinate într-un singur grup.

Exemple

Exemplul 1

Presupunând următorul fișier robots.txt:

 user-agent: googlebot-news (group 1) user-agent: * (group 2) user-agent: googlebot (group 3) 

Acesta este modul în care crawlerele ar alege grup relevant:

Grup urmat pe crawler
Știri Googlebot Grupul urmat este grupul 1. Doar cel mai specific grup este urmat, toate celelalte sunt ignorate.
Googlebot (web) Grupul urmat este grupul 3.
Googlebot Images Grupul urmat este grupul 3. Nu există un grup specific googlebot-images, deci este urmat grupul mai generic .
Știri Googlebot (la accesarea cu crawlere a imaginilor) > Grupul urmărit este grupul 1. Aceste imagini sunt accesate cu crawlere pentru și de Googlebot News, prin urmare este urmat doar grupul Googlebot News.
Otherbot (web) Grupul urmat este grupul 2.
Otherbot (Știri) Grupul urmat este grupul 2. Chiar dacă există o intrare pentru un crawler asociat, este valabil numai dacă se potrivește în mod specific.

Exemplul 2

Presupunând următorul fișier robots.txt:

 user-agent: googlebot-news disallow: /fish user-agent: * disallow: /carrots user-agent: googlebot-news disallow: /shrimp 

Acesta este modul în care crawlerele ar îmbina grupurile relevante pentru un anumit agent de utilizator:

 user-agent: googlebot-news disallow: /fish disallow: /shrimp user-agent: * disallow: /carrots 

Consultați, de asemenea, crawlerele Google și șirurile de agent utilizator.

Regulile pentru membrii grupului

Numai standard regulile pentru membrii grupului sunt acoperite în această secțiune. Aceste reguli se mai numesc „directive” pentru crawler. Aceste directive sunt specificate sub forma directive: unde este opțional. În mod implicit, nu există restricții pentru accesarea cu crawlere pentru crawlerele desemnate. Directivele fără un sunt ignorate.

Valoarea , dacă este specificată, trebuie văzută relativă din rădăcina site-ului web pentru care a fost preluat fișierul robots.txt (folosind același protocol, număr de port, gazdă și nume de domeniu). Valoarea căii trebuie să înceapă cu „/” pentru a desemna rădăcina. Calea este sensibilă la majuscule și minuscule. Mai multe informații pot fi găsite în secțiunea „Potrivire URL bazată pe valorile căii” de mai jos.

disallow

Directiva disallow specifică căile care nu trebuie accesat de crawlerele desemnate. Când nu este specificată nicio cale, directiva este ignorată.

Utilizare:

disallow: 

permite

allow specifică căile care pot fi accesate de crawlerele desemnate. Când nu este specificată nicio cale, directiva este ignorată.

Utilizare:

allow: 

Potrivirea URL pe baza valorilor căii

Valoarea căii este utilizată ca bază pentru a determina dacă o regulă se aplică sau nu unei anumite adrese URL de pe un site. Cu excepția metacaracterelor, calea este utilizată pentru a se potrivi cu începutul unei adrese URL (și cu orice adrese URL valide care încep cu aceeași cale). Caracterele ASCII care nu sunt pe 7 biți într-o cale pot fi incluse ca caractere UTF-8 sau ca caractere codate în procente UTF-8 conform RFC 3986.

Google, Bing și alte motoare de căutare majore acceptă un formă limitată de „metacaractere” pentru valorile căii. Acestea sunt:

  • * desemnează 0 sau mai multe instanțe cu orice caracter valid.
  • $ desemnează sfârșitul adresei URL.

Linii care nu sunt membre ale grupului acceptate de Google

Google, Bing și alte motoare de căutare importante acceptă sitemap, așa cum este definit de sitemaps.org.

Utilizare:

sitemap: 

indică un sitemap, un fișier index sitemap sau o adresă URL echivalentă. Adresa URL nu trebuie să fie pe aceeași gazdă ca fișierul robots.txt. Pot exista mai multe intrări sitemap. Ca linii care nu fac parte din grup, acestea nu sunt legate de niciun agent de utilizator specific și pot fi urmate de toate crawlerele, cu condiția să nu fie interzise.

Ordinea de prioritate pentru liniile de membri de grup

La nivel de membri de grup, în special pentru allow și disallow directive, cea mai specifică regulă bazată pe lungimea intrării depășește regula mai puțin specifică (mai scurtă). În cazul unor reguli conflictuale, inclusiv a celor cu metacaractere, se utilizează regula cea mai puțin restrictivă.

Testarea marcajului robots.txt

Google oferă două opțiuni pentru testarea marcajului robots.txt:

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *