Robots.txt-jäsennin

Liitä robots.txt ja lue se niin kuin indeksoija sen lukee RFC 9309:n mukaan (Robots Exclusion Protocol, standardoitu 2022): käyttäjäagenttiryhmät, Allow/Disallow-säännöt, sivukartat ja tuntemattomat direktiivit, kaikki esitettynä — sekä tarkistus tavallisille virheille (tyhjät disallow-rivit, tuntemattomat direktiivit, liian suuret tiedostot). Vastaava vastaa sitten varsinaiseen kysymykseen: liitä käyttäjäagentti ja polku, ja saadaan sallitaan/kielletään-päätös sekä sen säännön, joka päätti asian — pisin osuma, jokerimerkki *, loppuankkuri $ ja ryhmien yhdistäminen täsmälleen standardin mukaan. Kaikki toimii selaimessa.
Ei vielä jäsennettyä. Liitä robots.txt yllä ja paina Jäsennä tiedosto, tai lataa esimerkki.
Vastaava toimii yllä olevassa ruudussa olevalla tekstillä (jäsennystä ei tarvitse painaa ensin). Käyttäjäagentti vastaa RFC 9309:n määrittelemällä tavalla: tiedoston User-agent-arvon on oltava kirjainkoosta riippumaton osajono sille, mitä tähän kirjoitetaan — joten ExampleBot/1.0 vastaa ryhmää, joka on ilmoitettu nimellä ExampleBot. Koko URL hyväksytään polkuna.
Käyttäjäagentti (oikea UA-merkkijono toimii) Polku tai koko URL-osoite
Päätöstä ei ole vielä. Paina Testaa oikeus -painiketta.
Miten tiedosto noudetaan:avaahttps://your-domain.example/robots.txtselaimessa, valitse kaikki, kopioi ja liitä tähän — taicurl -s https://your-domain.example/robots.txtterminaalissa. Tämä sivu ei nouda mitään itse: se lukee vain liitetyn tekstin. Tiedostoa kuljettaneiden vastausotsikoiden tarkistamiseen aja ne läpiHTTP-otsakejäsennin.
Itsetesti
Ajaa jäsentimen ja vastaavan uudelleen RFC 9309:n vertailuvektoreita vastaan: pisimmän osuman etusija (mukaan lukien allow-voittaa-disallow-tasatilanne ja syvän polun tapaus), ryhmien yhdistäminen, ja*ryhmä varaohjelma, polkujen ja käyttäjäagenttien kirjainkokoherkkyys, jokerimerkit, tiedoston$ankkuri, /robots.txt:n oletusarvoinen sallinta/robots.txt, prosenttikoodauksen normalisointi, sivukarttojen poiminta ja kielletyt polut. Mitään ei lähetetä minnekään.
Mitä robots.txt on?
Yhdellä lauseella: robots.txt on sivuston juureen sijoitettu tekstitiedosto, joka kertoo asiallisesti käyttäytyville indeksoijille, mitä polkuja ne saavat noutaa — vapaaehtoinen käytäntö, joka standardoitiin RFC 9309:ksi vuonna 2022 ja jota jokainen suuri indeksoija noudattaa.
Tiedoston muoto

Tiedosto on tietueiden jono. Ryhmä alkaa yhdellä tai useammalla User-agent-rivillä, joita seuraavat näitä indeksoijia koskevat Allow- ja Disallow-säännöt. Uusi User-agent-rivi sääntöjen jälkeen aloittaa uuden ryhmän; peräkkäiset User-agent-rivit jakavat yhden ryhmän (indeksoija, jolla on kaksi nimeä, tarvitsee tätä). Erilliset tietueet kuten Sitemap voivat esiintyä missä tahansa. # aloittaa kommentin missä tahansa rivin kohdassa. Kenttänimet eivät ole kirjainkokoherkkiä; polut ovat.

ViivaTarkoittaa
User-agent: foobotAlla olevat säännöt koskevat indeksoijia, joiden nimessä on foobot (kirjainkoosta riippumaton)
User-agent: *Alla olevat säännöt koskevat kaikkia indeksoijia ilman tarkempaa ryhmää
Disallow: /private/Älä nouda polkuja, jotka alkavat /private/
Allow: /private/public/Poikkeus, joka voittaa yllä olevan kiellon näille poluille (pisin osuma)
Disallow: (tyhjä)Mitään ei ole kielletty — klassinen "salli kaikki" -tapa
Sitemap: https://…/sitemap.xmlMissä sivukarttasi sijaitsee; indeksoijat voivat kerätä useita
Crawl-delay: 30Ei ole RFC 9309:ssä — vanha laajennus; suuret indeksoijat jättävät sen huomiotta tai tulkitsevat sen itse
Miten päätös tehdään (RFC 9309 §2.2.2)

1. Etsi ryhmä, jonka User-agent-arvo on indeksoijan nimen osajono; yhdistä kaikki vastaavat ryhmät. Jos ei löydy, käytä *-ryhmää; jos sitäkään ei ole, kaikki on sallittu. 2. Testaa polku jokaista sääntöä vasten: vastaavuus perustuu etuliitteeseen, kirjainkokoherkkä, ja */$ toimivat jokerimerkkeinä. 3. Pisin vastaava sääntö voittaa; yhtä pitkillä Allow voittaa Disallow:n. Ei vastaavaa sääntöä tarkoittaa sallittu. Ja mitä säännöt sanovatkin, /robots.txt itse on oletuksena sallittu — muuten indeksoija ei voisi lukea sääntöjä.

Yleisiä virheitä
  • Uskominen, että robots.txt estää pääsyn. Se on pyyntö kohteliaille indeksoijille, ei muuri: haitalliset kaapijat jättävät sen kokonaan huomiotta, eikä sillä ole vaikutusta siihen, mitä selain voi avata. Todelliseen suojaukseen käytä todennusta; pelkästään hakukoneiden ohjaamiseen robots.txt on oikea työkalu.
  • Odotetaan, että Disallow: / poistaa sivun hakutuloksista. Se pysäyttää noutamisen, ei indeksointia: jos muut sivut linkittävät tähän, hakukone voi silti listata URL-osoitteen (ilman kuvausta). Poistamiseen käytetään noindex-meta-tagia tai vastausotsikkoa.
  • Järjestykseen luottaminen pituuden sijaan. Ensimmäinen vastaava sääntö ei voita — voittaa spesifisin (pisin). Rivien järjestyksen muuttaminen käyttäytymisen "korjaamiseksi" ei tee mitään; tee sen sijaan tarkoitetusta säännöstä pidempi.
  • CSS:n ja JS:n estäminen. /*.css$- ja /*.js$-polkujen kieltäminen oli aiemmin yleinen ”optimointi”; renderöijät tarvitsevat nyt nuo tiedostot nähdäkseen sivun kuten kävijät, ja puoliksi renderöity sivu voi sijoittua huonommin.
  • Yhden ison ryhmän käsittely dokumentaationa. Kommenttirivit ryhmän sisällä ovat sallittuja, mutta ilman #-merkkiä ennen ensimmäistä User-agent-riviä oleva tekstikappale on jäsennysvirhe, joka voi hämätä löysiä jäsentäjiä.
UKK

Tukevatko kaikki indeksoijat Allow, * ja $? Suuret tukevat, ja RFC 9309 standardoi kaikki kolme. Jotkin pienemmät tai vanhemmat indeksoijat ymmärtävät vain Disallow-säännön ja lukevat *:n kirjaimellisesti — yksi syy pitää säännöt yksinkertaisina, kun se on mahdollista.

Mitä tyhjä Disallow: tarkoittaa? "Ei kielletä mitään" — ryhmä sallii nimenomaisesti kaiken. Se ilmenee usein, kun joku muokkaa mallia ja poistaa polun mutta ei direktiiviä; tarkistus huomauttaa siitä.

Kuinka suuri tiedosto saa olla? RFC 9309 edellyttää, että jäsentäjät käsittelevät vähintään 500 KiB; sen jälkeen indeksoija voi lakata lukemasta ja käsitellä loput kielletynä. Pidä tiedosto selvästi alle tuon, ja jos se kasvaa valtavaksi, kysy, kuuluuko indeksoinnin hallinta sivun otsikoihin.

Miksi vastaava sanoo, että /robots.txt on sallittu, vaikka Disallow: /? Koska standardi sanoo niin suoraan: robots-tiedosto itse on oletuksena sallittu. Pythonin urllib.robotparser ja muut eivät toteuta tätä erikoistapausta — yksi pienistä eroavuuksista todellisten jäsentäjien välillä, jonka tämä sivu dokumentoi itsetestissään.

Onko Disallow-polku kirjainkokoherkkä? On. /Private/ ja /private/ ovat eri polkuja. Kenttänimi disallow voi olla mitä tahansa kirjainkokoa, mutta arvon on vastattava URL-osoitetta tarkasti.