Tämä opas kertoo miten robots.txt-tiedosto, meta-robots-tagi ja rel=”nofollow” -attribuutti vaikuttavat hakukoneiden robotteihin ja muihin botteihin.
Opas listaa keinoja joita jokaisen webmasterin olisi hyvä hallita: muuten vaarana ovat kalliit mutta helposti korjattavat virheet. Lopussa käsitellään myös linkkivoiman kanavointia hakukoneoptimointia varten.
Robots.txt
Robots.txt on normaali tekstitiedosto, joka sijoitetaan domainin juureen. Esimerkiksi http://nettibisnes.info/robots.txt.
Robots.txt:ssä voi antaa seuraavia komentoja:
- User-agent: edeltää muita komentoja, kertoo mitä bottia ne koskevat, arvona * (= kaikki botit) tai botin nimi
- Disallow: kieltää tiedoston, hakemiston tai koko sivuston boteilta (tyhjä arvo sallii kaiken)
- Allow: sallii botin toiminnan halutussa osassa sivustoa, käytetään yhdessä Disallow:n kanssa
- Sitemap: kertoo hakukoneille missä URL-osoitteessa sivuston xml-muotoinen sivukartta sijaitsee
- Crawl-delay: määrittää kuinka tiheään hakukone saa käyttää sivustoa, arvona kokonaisluku sekunteja
Alkuperäinen robots.txt-standardi on peräisin vuodelta 1994, ja siihen sisältyy vain User-agent ja Disallow. Sittemmin jotkut hakukoneet ovat alkaneet tukea myös komentoja Allow, Crawl-delay ja Sitemap. Kaikki robots.txt-tiedostoa kunnioittavat botit eivät kuitenkaan huomioi näitä uusia komentoja.
Robots.txt ei ole pakollinen mutta se on hyödyllinen tyhjänäkin, koska sillä vältetään palvelimen lokitiedostoon kertyvät virheilmoitukset yrityksistä noutaa tiedostoa. Samalla tavalla hyödyllinen on selaimen osoitepalkin alussa näkyvä favicon.ico-kuva sivuston juurihakemistossa.
Esimerkki robots.txt-tiedostosta
#Aluksi kaikkia botteja koskevat säännöt User-agent: * Disallow: /perhekuvat/ Disallow: /opinnaytteet/ Allow: /opinnaytteet/gradu.pdf Crawl-delay: 30 Sitemap: http://www.sivusto.fi/sitemap.xml #Sallitaan AdSense-mainosten kohdistaminen kaikkialla User-agent: Mediapartners-Google Disallow:
Ylläolevassa esimerkissä
- kielletään hakukoneilta perheen valokuvia sisältävä kansio (Disallow: /perhekuvat/)
- kielletään opinnäytteitä sisältävän hakemiston tutkiminen (Disallow: /opinnaytteet/)
- … mutta poikkeuksena sallitaan Allow-komennolla gradun sisältävän pdf-tiedoston indeksointi (Allow: /opinnaytteet/gradu.pdf)
- käsketään botteja pitämään vähintään 30 sekunnin tauko yhteyksien välissä, jotta ne eivät kuormita liikaa sivustoa (Crawl-delay: 30)
- kerrotaan missä avoimen Sitemaps-protokollan mukainen sivukartta on, jotta hakukoneiden olisi helpompi indeksoida sivusto (Sitemap: http://www.sivusto.fi/sitemap.xml)
- Sallitaan AdSense-mainosten kohdistaminen koko sivustolla (Disallow: ).
Tiedostoon voi merkitä kommentteja laittamalla niiden eteen #-merkin. Botit eivät huomioi näitä kohtia.
User-agent
Kaikki robots.txt:n osiot alkavat User-agent -määrityksellä: se kertoo mitä botteja jäljessä tulevat rivit koskevat.
User-agent -määrityksiä voi olla useampi rivi peräkkäin:
# Sallitaan Google-mainokset ja Snap-esikatselut kaikkialla User-agent: Mediapartners-Google User-agent: SnapPreviewBot Disallow: # ...mutta kielletään muut botit hakemistosta User-agent: * Disallow: /mirror/
”User-agent: *” -määritykset eivät periydy niille boteille joilla on omat määritykset robots.txt:ssä. Yhteisiksi halutut komennot on siis kopioitava jokaiseen osioon erikseen:
User-agent: * Disallow: /feed/ User-agent: Googlebot Disallow: /feed/ Disallow: /linkit.html
Kun siis halutaan että /feed/-kansio suljetaan kaikilta boteilta, joudutaan komento Disallow: /feed/ kopioimaan jokaisen User-agentin alle.
Disallow
Disallow-komentoa voi käyttää seuraavilla tavoilla:
- Disallow: /
Kieltää koko sivuston tutkimisen. - Disallow:
Sallii koko sivuston botille (huomaa miten pieni ero edelliseen!). - Disallow: /kuvat/perhe/
Kieltää hakemiston, siinä olevat tiedostot ja alihakemistot botilta. - Disallow: /tekstit/yksityinen.doc
Kieltää yksittäisen tiedoston. - Disallow: /wp
Kieltää ”wp”-alkuiset hakemistopolut ja juuressa olevat tiedostot (varo!). - Disallow: *?*
Kieltää kaikki URL-osoitteet joissa on kysymysmerkki. - Disallow: *.php$
Kieltää kaikki osoitteet, joiden lopussa on ”.php”. $-merkki on pakollinen: se tarkoittaa osoitteen loppua.
Sekä Google että Microsoftin Bing tukevat jokerimerkkejä * ja $.
Allow
Allow-komentoa voidaan käyttää täsmentämään Disallow:lla tehtyjä liian jyrkkiä kieltoja. Allow’n parametrejä käytetään samalla logiikalla kuin Disallow’n. Periaate on kuitenkin se, että hakukoneille on kaikki sallittu mitä ei erikseen kielletä.
Vaikkapa näin:
User-agent: *
Disallow: /uploads/
Allow: /uploads/pdf-files/ #pdf-tiedostot sallitaan boteille
Google ja Bing tukevat molemmat Allow-käskyä.
Sitemap
Sitemap-komento kertoo xml-sivukarttoja tukeville hakukoneille (Google ja Bing) URL-osoitteen, josta sivukartta löytyy. Toisin kuin muut robots.txt-komennot, Sitemap ei ole riippuvainen User-agent-määrityksestä vaan se voidaan laittaa mihin tahansa tiedoston sisällä.
Sitemap: http://www.sivusto.com/sivukartta.xml
Samassa robots.txt-tiedostossa voi olla useampi Sitemap-komento. Tämä voi olla tarpeen, jos URL-osoitteet joudutaan pilkkomaan useampaan xml-sivukarttaan tai generoidaan erillinen videosivukartta. Yhdessä sivukarttatiedostossa saa olla enintään 50 000 osoitetta.
Crawl-delay
Crawl-delay-komento kertoo montako sekuntia botin on odotettava ennen kuin se saa siirtyä seuraavaan sivuun. Arvon on oltava kokonaisluku.
Google ei välitä crawl-delay-käskystä, koska jotkut ovat laittaneet siihen hyvin suuria lukuja, jolloin hakukone saisi tutkia sivuja liian harvoin. Tutkimistiheyteen voi kuitenkin vaikuttaa Googlen Verkkovastaavan työkaluissa: Asetukset > Asetukset > [Indeksointinopeus].
Bing sen sijaan huomioi crawl-delay-komennon.
Meta-robots-tagi
Robots-meta-tagi on robots.txt:lle vaihtoehtoinen ja täydentävä tapa antaa ohjeita boteille. Tagi sijoitetaan (X)HTML-tiedoston head-osioon ja se on joko muotoa
<meta name="robots" content="parametrit" />
tai
<meta name="botin nimi" content="parametrit" />
Jos koodi ei ole XHTML- vaan HTML-muotoista, viimeinen kauttaviiva tulee jättää pois.
Parametreja voi olla samassa tagissa useita. Ne erotetaan toisistaan pilkulla, jonka jälkeen voi halutessaan laittaa välilyönnin. Seuraavaksi käsitellään hakukoneiden tunnistamia parametreja.
noindex ja index
Noindex-parametrilla voidaan kieltää sivun indeksoiminen hakukoneissa. Näin:
<meta name="robots" content="noindex" />
Hakukoneita ei tarvitse erikseen kehottaa indeksoimaan sivuja index-parametrillä. Sitä voi kuitenkin käyttää kehitystyön tulosten valvontaan, esimerkiksi vaihtelemalla noindex ja index -parametriä eri sivuilla vaikkapa php-ehtolauseiden avulla.
nofollow, follow ja none
Nofollow-paramerillä voidaan kieltää hakukoneita seuraamasta sivulla olevia linkkejä. Näin estetään myös linkkisuosion välittyminen linkitetyille sivuille.
Nofollow-parametriä tarvitaan harvoin. Sitä voi käyttää esimerkiksi useisiin huonolaatuisiin ja spämmisivustoihin linkittävällä sivulla, jos rel=”nofollow” -attribuutin laittaminen linkkeihin olisi liian työlästä.
Nofollow- ja noindex -parametrien yhdistelmä voidaan korvata none-parametrillä. Seuraavat tagit tarkoittavat siis samaa:
<meta name="robots" content="noindex, nofollow" />
<meta name="robots" content="none" />
Hakukoneita ei tarvitse erikseen käskeä huomioimaan linkkejä follow-parametrilla. Sen käyttö voi kuitenkin tehdä koodin selkeämmäksi jos joillakin muilla sivuilla on käytössä nofollow.
noarchive ja nocache
Hakukoneita voi kieltää tallentamasta sivuista välimuistikopioita noarchive-parametrillä. Nocache tarkoittaa samaa ainakin Bing-hakukoneessa, mutta suosittelen käyttämään noarchive:a, jos suunnittelet ryhtyväsi verkkohuijariksi (tai tekeväsi jotain muuta yhtä typerää).
noodp
Jos sivu tai sivusto on listattu DMOZ-hakemistossa (toiselta nimeltä ODP eli Open Directory Project tai ”Google Directory”), Google saattaa näyttää hakutuloksissa sinne kirjoitetun kuvauksen. Tämä ei ole yleensä optimaalinen tilanne, joten noodp-robots-tagilla kannattaa kieltää DMOZ-kuvauksen näyttäminen:
<meta name="googlebot" content="noodp" />
nosnippet
Jos haluat estää hakukoneita laittamasta hakutuloksiin otteita sivusi sisällöstä, käytä nosnippet-parametriä. Ainakin Google- ja Bing-tuloksissa tämä parametri estää samalla myös välimuistikopion näyttämisen eli se toimii kaupan päälle kuin noarchive.
unavailable_after
Tämä parametri poistaa sivun Googlesta halutun ajankohdan jälkeen. Syntaksi on tällainen:
<meta name="googlebot" content="unavailable_after: 25-Dec-2013 15:00:00 EST">
Päiväys noudattaa RFC 850 -formaattia.
Unavailable_after sopii virallisen tarinan mukaan tietyn ajan jälkeen vanheneville sivuille: esimerkiksi alennuksesta kertovalle sivulle tai myöhemmin maksulliseen arkistoon siirtyvälle sisällölle. Käytännössä sen käyttäminen ei ole yleensä hyvää bisnestä, vaan hakijat kannattaa pikemminkin 301-ohjata mahdollisimman hyödylliselle toiselle sivulle.
Rel=”nofollow” -mikroformaatti
Rel=”nofollow” on linkkiin eli a-elementtiin sijoitettava attribuutti. Siis tällainen:
<a href="http://www.spamheaven.com/" rel="nofollow">Spam Heaven</a>
Google lanseerasi tämän mikroformaatin vuonna 2005 taistellakseen spämmiä vastaan. Erityisesti kohteena oli foorumeille jätettävä spam ja blogeihin automaattisesti syötetty kommenttispämmi.
Nofollow kertoo hakukoneille, että linkille ei pidä antaa arvoa: linkki ei paranna kohdesivun sijoittumista hakukoneissa. Se ei kuitenkaan kiellä seuraamasta linkkiä – toisin kuin samanniminen meta-robots-tagin arvo.
Monessa blogialustassa kommentoijien linkit merkitään automaattisesti nofollow-attribuutilla, niin tässäkin WordPress-blogissa. Halutessani voisin asentaa ns. dofollow-lisäosan, jolloin kommentoijat saisivat hakukonemehuja sivustoilleen. En kuitenkaan ole aikeissa tehdä niin, koska en halua mieleni myrkyttyvän kommentoijien motiivien epäilystä.
Nofollow-attribuutti soveltuu paitsi suosituille foorumeille ja blogien kommentteihin niin myös
- spämmisivuille osoittaviin linkkeihin: linkitys näille ilman ”linkkikondomia” saattaisi vähentää linkittävän sivuston arvoa hakukoneissa
- linkkeihin joiden kohdesivustoja ei haluta tukea: linkitys ilman nofollow-attribuuttia antaa hakutuloksia parantavaa linkkivoimaa kohdesivulle ja sivustolle jonka osa se on
- affiliate-linkkeihin ja muihin linkin sisältäviin mainoksiin: Google voi rangaista myydyistä linkeistä, joissa ei ole nofollow’ta
Hakukoneet ja muut botit
Seuraavaksi luetellaan merkittävimpien hakukoneiden robotit, jotka voidaan laittaa robots.txt-tiedoston user-agent-kohtaan tai meta-tagiin ”robots”-tekstin paikalle. Lisäksi käsitellään tarkemmin ia_archiver, SnapPreviewBot, wget ja Fasterfox –botit.
Botit:
- Googlebot: normaali Googlen haku
- Googlebot-Mobile: mobiilihaku
- Googlebot-News: uutishaku
- Googlebot-Video: videohaku
- Googlebot-Image: kuvahaku
- Mediapartners-Google: AdSense-mainokset määräytyvät tämän botin indeksoiman sisällön mukaan
- Adsbot-Google: tutkii AdWords-mainoksien laskeutumissivujen laatua
Microsoftin Bing (ent. Live Search)
Botit:
- Bingbot: normaali Bing-haku
- Adidxbot: Bing-mainokset
- MSNBot: jää pian eläkkeelle.
- BingPreview: hakutulosten esikatselukuvat.
Bing on Microsoftin uudella nimellä lanseeraama Live Search (sitä ennen MSN-portaalin hakukone). Suomessa sillä on hiukan markkinaosuutta, esimerkiksi muiden Microsoftin tuotteiden, kuten Internet Explorer -selaimen käyttäjiä. USA:ssa Bingin hakumoottorin osuus hauista on noin neljännes, ja se on sielläkin toiseksi suosituin hakukone.
Bing on Googlen lisäksi ainoa hakukone, jolla on huomionarvoista merkitystä suomenkielisten sivujen markkinoinnissa. (Kun siis esimerkiksi YouTuben ja Facebookin hakutoimintoja ei lasketa tässä hakukoneiksi.)
Alexa ja Internet Archive Wayback Machine
Botti: ia_archiver
Alexa on nettisivustojen kävijämääriä mittaava verkkopalvelu. Internet Archive taas on netissä julkaistua materiaalia arkistoiva palvelu ja sen Wayback Machine väline sivustojen historian tutkimiseen.
Alexan ia_archiver-botti suorittaa crawl-toimet myös Wayback Machinen puolesta. Selitys on palveluiden yhteinen perustaja: Brewster Kahle.
ia_archiver kannattaa blokata jos seuraavat kaksi seikkaa pätevät:
- Et tarvitse Alexa-tilastojen tuomaa statusta (esim. mainostilan myyntiä varten).
- Et halua että ihmiset näkevät tulevaisuudessa millaisia web-sivuja tai sisältöjä tuotat nykyään.
Snap-esikatselut
Botti: SnapPreviewBot
Snap on hakukone, joka tarjoaa blogeihin Snap Shots -lisäosaa, joka näyttää pienen esikatseluikkunan kun kursori viedään linkin tai sen vieressä olevan symbolin päälle.
Jos olet sulkenut jonkun sivuston osan muilta boteilta, saatat ehkä silti haluta että Snap-esikatselut toimivat kaikkialla. Asia ratkaistaan laittamalla robots.txt-tiedostoon seuraava osio:
User-agent: SnapPreviewBot
Disallow:
Wget
Botti: Wget
Wget on yksinkertainen tietokoneohjelma jota käytetään mm. web-sisällön automaattiseen ja ajoitettuun kopiointiin. Wget kannattaa blokata, jos se kuluttaa liikaa tiedonsiirtokapasiteettia. Sen käyttäjä voi kuitenkin käskeä ohjelmaa jättämään robots.txt:n huomiotta.
Fasterfox
Botti: Fasterfox
Fasterfox on Firefox-selaimen lisäosa joka nopeuttaa sivujen latautumista. Tämän se tekee mm. seuraamalla avatulla sivulla olevia linkkejä ennakoivasti ja lataamalla taustalla kohdesivut valmiiksi. Kaistastaan tarkka webmaster blokkaa Fasterfoxin robots.txt:llä.
Muut botit
Netissä liikkuu paljon vanhentuneita ja virheellisiä listoja boteista. Ajantasaisimman tiedon löytää yleensä bottia käyttävän palvelun tai ohjelman omista ohjeista. Tämän vuoksi en linkitä tähän mitään historiallista dokumenttia tai listaa joka on hyvää vauhtia muuttumassa sellaiseksi.
Linkkisuosion kanavointi
Huom! Nofollow-attribuutti ei sovi enää linkkisuosion kanavointiin, sillä Google muutti sitä koskevaa algoritmiaan vuonna 2009.
Nofollow-linkit ovat nykyisin Googlelle kuin mustia aukkoja, jotka imevät hukkaan linkkisuosiota. Ainoa tapa vaikuttaa linkkivoiman kanavoitumiseen Googlessa on aidot muutokset linkki- ja sivurakenteeseen.
Robots.txt ei sovellu sekään linkkisuosion kanavoimiseen koska
- Blokatuillekin sivuille voi kertyä linkkisuosiota.
- Boteilta suljetuille sivuille kertynyt linkkivoima ei pääse leviämään eteenpäin.
- Em. syistä robots.txt-sulku voi heittää hukkaan kallisarvoista linkkivoimaa.
Edellinen saattaa kuulostaa intuition vastaiselta. On kuitenkin syytä muistaa että linkkisuosio on relaationaalinen ominaisuus: muilla sivuilla olevat linkit ratkaisevat sen kertymisen, ei sisällön tutkiminen mikä voidaan kieltää robots.txt:llä.
Robots.txt:ssä oleva kielto ei myöskään takaa että sivua ei näytetä Googlen hakutuloksissa: se voi rankata linkkisuosion, domain-nimen ja linkeissä olevien ankkuritekstien avulla. Jopa DMOZ-kuvausta voidaan käyttää tuolloin hakutuloksissa. Google kuitenkin kunnioittaa robots.txt:tä eli se ei tutki siinä kiellettyjen sivujen sisältöä.
Myöskään ”noindex” meta-robots-tagin parametrinä ei estä linkkivoiman kertymistä sivulle. Tämän vuoksi jopa sivukartta voidaan poistaa sillä hakukoneiden näkyvästä indeksistä, mutta silti se levittää linkkivoimaa yhtä tehokkaasti jos sitä ei nofollow-parametrillä tai -mikroformaatilla estetä.
Lähteitä ja lisätietoa:
Linkkisuosion kanavointi – kappale on osa tämän blogin oppaasta joka kertoo mitä hakukoneoptimointi on.
Eric Enge haastattelee Google-insinööri Matt Cuttsia – haastatelussa käsitellään mm. Googlen robots.txt-politiikan historiallisia taustoja.
Robots-meta-tagit ei-HTML-tiedostoille – virallisen Google-blogin artikkeli esittelee paitsi unavailable_after -parametrin niin myös X-Robots-Tag -direktiivin jolla voidaan vaikuttaa esimerkiksi videoiden, kuvien, ääni- ja pdf-tiedostojen indeksoitumiseen. Aihetta syventävät myös Sebastian ja Hamlet Batista.
Googlen robots.txt-ohjeet: Miten rajoitan sivustoni käyttöä robots.txt-tiedoston avulla?
Bing-botit – lista Bingin käyttämistä boteista.
Googlen botit – lista ja tarkat tiedot Googlen käyttämistä boteista.
Lasse sanoo:
”Opas listaa keinoja joita jokaisen webmasterin olisi hyvä hallita” on hyvin tiivistetty.
Itse opin hallitsemaan robottien käyttäytymistä niin sanotusti kantapään kautta…
Kiitos oppaasta!
Arttu sanoo:
Ole hyvä, Lasse :)
Täytyy tunnustaa että itsellenikin tuli alun perin yllätyksenä että esim. ”User-agent: *” -käskyt eivät periydy erikseen käskytetyille boteille ja että Google näyttää robots.txt:llä suljettuja sivuja tuloksissaan.
Råtta sanoo:
nyt löytyy Robots.txt vaikkakin vielä tyhjänä, mutta kuitenkin
Seppo Alaruikka sanoo:
Kun juttu on selkeä ja informatiivinen, se on erinomainen.
Joskus aniharvoin firma voi ymmärtääkseni tarkoituksellisesti estää robots.txt:llä koko sivustonsa päätyminen hakukoneiden indekseihin. Minä en keksi tällaiselle käytännölle ainoatakaan syytä. Millaisia syitä mahtaisi löytyä?
Arttu sanoo:
Kiitos kommentista, Seppo.
Koko sivusto blokataan joskus siinä vaiheessa, kun sitä vasta kehitetään ja sisältö on puolivalmista. Keskeneräistä tavaraa ei haluta päästää asiakkaiden silmien eteen hakukoneiden kautta.
Ongelma tästä muodostuu sitten, jos blokkausta ei muisteta poistaa sivuston julkaisun jälkeen (tätäkin on tullut vastaan).
Seppo Alaruikka sanoo:
Aivan, kehitysvaiheen piilottelun ymmärrän. Unohtaminen on inhimillistä, muttei suotavaa.
Siksi kyselen, kun nettiä samoillessani löysin erään sivuston, jossa robots-esto oli ollut päällä viikon yli kaksi vuotta. Kyse lienee ollut jonkin sortin vahingosta.
Arttu sanoo:
Seppo, ehkä sinun kannattaisi myydä firmalle vähän konsultointia? :)
Seppo Alaruikka sanoo:
Kiitos kannustuksesta! Kyseessä kuitenkin on paikkansa jo lunastanut firma, jolla mitä ilmeisimmin toiminta on resursseihin nähden vilkasta. Lisämyynnin toimittaminen voisi kangerrella.