Moduuli 3 · 3.3
robots.txt: mitä estät ja mitä et
Moduuli 3: Sivun tekninen perusta · Lukuaika: 13 minuuttia
Oppimistavoite: Tämän oppitunnin jälkeen osaat lukea ja kirjoittaa robots.txt-tiedoston, päätellä itse, saako Googlebot hakea osoitteen, ja selittää, mitä tapahtuu, kun tiedosto puuttuu tai siihen ei saada yhteyttä. Tiedät myös, miksi robots.txt ei ole suojaus eikä noindex.
Keskeiset käsitteet: robots.txt (RFC 9309), hakurobotti, ryhmä, User-agent, Disallow, Allow, pisin vastaavuus, sama pituus (Allow voittaa), * ja $, Sitemap:, robots.txt-tiedoston tilakoodi (4xx, 5xx), 500 KiB, 24 tunnin välimuisti, ei suojaus, ei noindex, tekoälyrobotit (Google-Extended, GPTBot)
Kyltti etuoven vieressä
robots.txt on tavallinen tekstitiedosto sivustosi juurikansiossa, aina samassa osoitteessa: https://www.example.com/robots.txt. Asiallinen hakurobotti (oppitunti 1.2) hakee tämän tiedoston ensin ja lukee, mihin sivuston osiin se ei saa mennä. Tiedosto on kyltti etuoven vieressä, ei lukko: Googlebot ja Bingbot noudattavat sitä, mutta pahantahtoinen robotti lukee kyltin ja kävelee sisään.
Vuodesta 2022 protokolla on ollut virallinen internetstandardi: RFC 9309. Lisäksi Google kuvaa tarkasti, miten Googlebot tiedoston lukee. Käytämme tällä oppitunnilla molempia lähteitä.
Muutama vakiintunut sääntö:
- Tiedosto on isäntänimen juurikansiossa. Tiedostoa
/blog/robots.txtei lueta. - Se koskee vain tätä isäntänimeä, tätä protokollaa ja tätä porttia.
https://www.example.com/robots.txtei koske osoitettahttps://shop.example.com/; sille tarvitaan oma tiedosto. - Se on pelkkää tekstiä UTF-8-merkistössä.
Miten tiedosto rakentuu
User-agent: *
Disallow: /winkelmand/
Disallow: /zoeken
Allow: /zoeken/tips
User-agent: Googlebot
Disallow: /concepten/
Sitemap: https://www.example.com/sitemap.xmlTiedosto koostuu ryhmistä. Ryhmä alkaa yhdellä tai useammalla User-agent:-rivillä, ja niiden jälkeen tulevat säännöt Disallow: (älä hae) ja Allow: (saa hakea). Polku rivillä Disallow: on osoitteen alku: Disallow: /zoeken estää osoitteet /zoeken, /zoeken?q=rozen ja myös /zoekenmachine, koska ne kaikki alkavat merkkijonolla /zoeken.
Rivi Sitemap: ei kuulu mihinkään ryhmään, ja se kertoo, missä sivustokarttasi on (oppitunti 3.4). Google vaatii täydellisen osoitteen, jossa on https:// ja isäntänimi.
Disallow: ilman polkua ei estä mitään. Disallow: / estää kaiken.
Mikä ryhmä on voimassa?
Hakurobotti valitsee yhden ryhmän: sen, jonka nimi vastaa sitä tarkimmin. Googlebot noudattaa siis ryhmää User-agent: Googlebot, jos sellainen on, eikä silloin välitä *-ryhmästä lainkaan. Yllä olevassa esimerkissä Googlebot saa siis hakea polun /winkelmand/: tämä sääntö on vain *-ryhmässä. Tämä on yksi yleisimmistä virheistä: jos teet erillisen Googlebot-ryhmän, sinun on toistettava siinä kaikki säännöt, joiden halutaan koskevan myös Googlea.
Nimessä isot ja pienet kirjaimet eivät ole merkitseviä (googlebot = Googlebot). Jos samalle hakurobotille on kaksi ryhmää, Google yhdistää ne.
Mikä sääntö voittaa?
Ryhmän sisällä osoite voi osua useaan sääntöön. Silloin pätee:
- Pisin osuva sääntö voittaa (tarkin polku).
- Jos
AllowjaDisallowovat täsmälleen yhtä pitkät,Allowvoittaa. Google kutsuu sitä "vähiten rajoittavaksi säännöksi".
Kahdella merkillä on erityismerkitys:
| Merkki | Merkitys | Esimerkki | Osuu | Ei osu |
|---|---|---|---|---|
* | nolla tai useampia mitä tahansa merkkejä | Disallow: /*?sessie= | /rozen?sessie=12 | /rozen?kleur=rood |
$ | osoitteen loppu | Disallow: /*.pdf$ | /folder.pdf | /folder.pdf?v=2 |
Laskuesimerkki yllä olevalla *-ryhmällä hakurobotille Bingbot (jolla ei ole omaa ryhmää):
| Osoite | Osuvat säännöt | Tulos |
|---|---|---|
/winkelmand/ | Disallow: /winkelmand/ | ei saa |
/zoeken/tips | Disallow: /zoeken (7 merkkiä) ja Allow: /zoeken/tips (12) | saa: pisin voittaa |
/zoeken?q=rozen | Disallow: /zoeken | ei saa |
/bruidsboeketten | ei mitään | saa |
/robots.txt | (aina) | saa: itse robots.txt on aina sallittu |
Kun tiedostoa ei ole tai palvelin takkuaa
Googlen toiminta riippuu tilakoodista, jolla palvelimesi vastaa osoitteeseen /robots.txt:
| Vastaus | Mitä Google tekee |
|---|---|
| 200 (löytyi) | Lukee säännöt |
| Uudelleenohjaus (301, 302) | Seuraa vähintään viisi askelta; sen jälkeen Google käsittelee sen kuin 404:n |
| 4xx, kuten 404 tai 403 (paitsi 429) | Kuin robots.txt-tiedostoa ei olisi: kaikki on sallittua |
| 5xx tai ei yhteyttä | Ensimmäiset 12 tuntia Google ei indeksoi sivustoa ja yrittää uudelleen; sen jälkeen se käyttää enintään 30 päivää viimeisintä toimivaa versiota välimuistista. Jos vika jatkuu senkin jälkeen, vaikka sivusto muuten toimii, Google toimii kuin robots.txt-tiedostoa ei olisi |
Puuttuva robots.txt ei siis ole ongelma: silloin kaikki on sallittua. Palvelinvirheen antava robots.txt sen sijaan on ongelma: silloin Google lopettaa sivuston indeksoinnin väliaikaisesti. RFC 9309 on tässä vielä tiukempi: jos tiedostoon ei saada yhteyttä, hakurobotin on oletettava, että kaikki on kiellettyä.
Lisäksi:
- Google lukee enintään 500 KiB; sen jälkeen tuleva sisältö ohitetaan.
- Google pitää robots.txt-tiedostoa välimuistissa yleensä enintään 24 tuntia. Muutos ei siis vaikuta heti. Search Consolen kohdasta Asetukset löydät robots.txt-raportin: siitä näet, minkä version Google on viimeksi hakenut, virheet ja varoitukset, ja painikkeen, jolla voit pyytää uutta hakua.
- Google tuntee vain rivit
User-agent,Allow,DisallowjaSitemap. Googlebot ohittaa rivit, kutenCrawl-delaytaiNoindex.
Mitä robots.txt ei tee
Se ei ole suojaus
Kuka tahansa voi lukea robots.txt-tiedostosi, myös pahantahtoinen. Rivi Disallow: /beheer-oud/ nimenomaan osoittaa, missä on jotain kiinnostavaa. RFC 9309 sanoo sen itse: säännöt eivät ole pääsynhallintaa. Todellinen suojaus tehdään salasanalla tai antamalla palvelimen estää pääsy, esimerkiksi tiedostolla .htaccess (katso Lisälukemista).
Se ei ole noindex
Tämä on oppitunnin tärkein asia. robots.txt ohjaa indeksointirobotin hakuja (crawlaus), ei hakemistoon tallentamista (oppitunti 1.3). Google kirjoittaa suoraan, että robots.txt ei ole keino pitää sivua poissa Googlesta. Jos muut sivustot linkittävät estettyyn osoitteeseen, osoite voi silti näkyä hakutuloksissa, vain ilman kuvausta.
Jos haluat pitää sivun poissa hakutuloksista, käytä noindex-ohjetta (elementissä <meta name="robots"> tai otsakerivillä X-Robots-Tag) tai suojaa sivu salasanalla. Varo klassista ansaa: jos estät noindex-sivun lisäksi robots.txt-tiedostossa säännöllä Disallow, Google ei pääse sivulle eikä siksi voi koskaan lukea noindex-ohjetta.
Älä estä osia, joita Google tarvitsee
Älä estä kansioita, joissa on tyylitiedostoja, skriptejä tai kuvia, joita sivusi tarvitsee näkyäkseen oikein. Google katsoo sivuasi kuten selain; ilman näitä tiedostoja Google ymmärtää sivun huonommin.
Tekoälyrobotit
Yhä useammat yritykset keräävät verkkosivuja tekoälyä varten. Joihinkin niistä voit vaikuttaa robots.txt-tiedostolla:
Google-Extendedei ole erillinen robotti vaan robots.txt-tiedostossa käytettävä nimi, jolla ilmoitat, saako Google käyttää sisältöäsi Gemini-mallien kouluttamiseen ja groundingiin. Googlen mukaan tällä ei ole vaikutusta siihen, onko sivustosi Google-haussa tai millä sijalla.- OpenAI:n
GPTBotkerää sivuja, joita voidaan käyttää mallien kouluttamiseen.OAI-SearchBotpalvelee ChatGPT:n hakutoimintoa: jos estät sen, sivustosi ei näy ChatGPT:n hakuvastauksissa.
User-agent: GPTBot
Disallow: /Haluatko tätä, on valinta, ei tekninen pakko. Jos estät vahingossa hakurobotin (Googlebot, Bingbot, OAI-SearchBot), sivustosi löytyy siellä huonommin.
Käytännössä: missä robots.txt-tiedostosi on?
- WebOkén AI Builder luo julkaistaessa itse robots.txt-tiedoston, jossa on
User-agent: *,Allow: /jaSitemap:-rivi. Jos asetat sivuston tilaan, jossa sitä ei indeksoida, tai kyseessä on ilmainen demo, tiedostossa onDisallow: /. - WordPress luo virtuaalisen robots.txt-tiedoston, jossa on viittaus sivustokarttaan. Jos laitat itse tiedoston
robots.txtverkkokansioon, se menee edelle. - Oma sivusto webhotellissa: laita
robots.txtverkkokansioon (DirectAdminissapublic_html) File Managerin tai FTP:n kautta.
Muilla palveluntarjoajilla tämä toimii samaan tapaan: tiedoston on aina oltava saatavilla isäntänimesi osoitteessa /robots.txt.
Yhteenveto
- robots.txt on jokaisen isäntänimen osoitteessa
/robots.txt, ja se kertoo asiallisille hakuroboteille, mihin ne eivät saa mennä. - Hakurobotti noudattaa yhtä ryhmää (tarkimmin vastaava nimi, muuten
*). Ryhmän sisällä pisin sääntö voittaa; saman pituisista voittaaAllow. - 404 tarkoittaa "kaikki on sallittua", palvelinvirhe saa Googlen keskeyttämään indeksoinnin väliaikaisesti. Google lukee 500 KiB ja pitää tiedostoa välimuistissa enintään 24 tuntia.
- robots.txt ei ole suojaus eikä noindex. Älä estä
noindex-sivua robots.txt-tiedostossa. - Tekoälyrobotteja, kuten
GPTBot, ja nimeäGoogle-Extendedvoit hallita erikseen ilman vaikutusta Google-hakuun.
Tietovisa
Tehtävä
Tehtävä A3.3: robots.txt-tiedostosi tarkastelussa. Syötä verkkotunnuksesi ja lisäksi kolme oman sivustosi osoitetta (esimerkiksi etusivu, tuotesivu ja ostoskori tai hakusivu) ja kunkin osoitteen kohdalle odotuksesi: saako Googlebot hakea sen, kyllä vai ei? Ohjelma hakee robots.txt-tiedostosi, tarkistaa tilakoodin, koon, ryhmät ja Sitemap:-rivin ja laskee jokaiselle osoitteelle, mitä Googlebot saa tämän oppitunnin sääntöjen mukaan tehdä. Osuiko odotuksesi oikeaan? Eikö sinulla ole omaa sivustoa? Käytä osoitetta www.wikipedia.org.
Lisälukemista
Näiden artikkelien ohjeet koskevat WebOkén hallintapaneeleja; muilla palveluntarjoajilla tämä toimii samaan tapaan.
- DirectAdmin-ohje 11.1: Tiedostonhallinnan (File Manager) avaaminen: paketin kansiot
- Tiedostojen estäminen .htaccess-tiedostolla, esimerkiksi plugin-googlemap2-proxy.php
- DirectAdmin-ohje 11.4: Piilotiedostojen, kuten .htaccess, näyttäminen ja muokkaaminen
- Google Search Central, miten Google tulkitsee robots.txt-tiedoston: https://developers.google.com/search/docs/crawling-indexing/robots/robots_txt
- Google Search Central, johdanto robots.txt-tiedostoon: https://developers.google.com/search/docs/crawling-indexing/robots/intro
- RFC 9309, Robots Exclusion Protocol: https://www.rfc-editor.org/rfc/rfc9309.html
- Google, yleiskatsaus hakurobotteihin (Google-Extended): https://developers.google.com/crawling/docs/crawlers-fetchers/google-common-crawlers
- OpenAI, yleiskatsaus hakurobotteihin (GPTBot, OAI-SearchBot): https://developers.openai.com/api/docs/bots
