Arutame projekti

Sitemap.xml ja robots.txt: mida sinna panna ja mida mitte

Sitemap.xml ja robots.txt lahendavad erinevaid ülesandeid, kuid neid aetakse pidevalt segi. Selgitan, mis kuulub saidikaarti, mida robots.txt-is sulgeda ja millised vead maksavad indekseerimise.

Vladislav Krivorutsko16. august 20266 min lugemist
Sisukord

TL;DR — lühidalt peamisest

  • Robots.txt juhib roomamist, mitte indekseerimist: seal suletud leht võib ikkagi otsitulemustesse sattuda — ilma kirjelduseta ja ilma sinu kontrollita
  • Sitemap.xml ei ole „kõigi saidi URL-ide nimekiri“, vaid nende lehtede loend, mida sa pead indekseerimist väärivaks: ainult 200, ainult kanoonilised, ainult indekseeritavad
  • Kõige kallim viga on sulgeda robots.txt-is leht, millel on noindex või canonical: Google ei loe direktiivi ja leht jääb indeksisse
  • Saidikaart ei sunni Google'it lehte indekseerima, see üksnes kiirendab avastamist — uuel saidil ja suures kataloogis on vahe tuntav, 30-lehelisel saidil peaaegu olematu
  • Mõlemat faili tuleb kontrollida mitte silmaga, vaid Search Console'i aruannetega: „Lehed“ blokeerimise filtriga ja „Saidikaardid“ leitud URL-ide arvuga

Lühike vastus

Robots.txt juhib roomamist: see ütleb robotile, milliseid aadresse mitte alla laadida. Sitemap.xml juhib avastamist: see loetleb lehed, mille olemasolust sa soovid otsimootorile teada anda. Kumbki fail ei juhi indekseerimist otse — selle eest vastutavad metasilt noindex, canonical ja lehe enda väärtus.

Sellest tuleneb peamine praktiline reegel: leht, mille tahad otsitulemustest eemaldada, ei tohi olla robots.txt-is suletud. Vastasel juhul robot noindex'it ei loe ja leht jääb indeksisse — lihtsalt ilma kirjelduseta.


Mida robots.txt tegelikult teeb

Robots.txt asub domeeni juurkaustas (https://sait.ee/robots.txt) ja loetakse enne lehtede roomamist. Sees on reeglid stiilis „see robot siia ei lähe“.

User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Disallow: /*?sort=
Disallow: /ostukorv

Sitemap: https://sait.ee/sitemap.xml

Mida siin mõista:

  • See on soovitus, mitte kaitse. Suured otsimootorid järgivad seda, osa parseritest mitte. Privaatseid andmeid robots.txt-iga sulgeda on mõttetu: fail ise on avalik ja sa avaldad sisuliselt nimekirja aadressidest, mida pead tundlikuks.
  • Suletud leht võib otsitulemustesse jääda. Kui sellele viivad välislingid, teab Google URL-i ja võib seda ilma katketa näidata. Search Console'is on see olek „Indekseeritud, kuigi robots.txt blokeerib“.
  • Disallow ei eemalda juba indekseeritut. Vastupidi: roomamise sulgemisega võtad Google'ilt võimaluse näha, et leht on muutunud või saanud noindex'i.
  • Reeglite järjekord ei ole hierarhiline. Kehtib kõige täpsem reegel, mitte esimene ülevalt. Allow võib alamteel Disallow'i üle kirjutada.
  • CSS-i ja JS-i blokeerimine on iganenud praktika. Google renderdab lehti; stiilide ja skriptide sulgemisega näitad talle katkist küljendust.

Eraldi rida on Sitemap: koos kaardi täisaadressiga. See on ainus viis anda saidikaardist teada nendele otsimootoritele, mille veebimeistri paneeli sul pole.


Mis kuulub sitemap.xml-i ja mis mitte

Kõige levinum eksiarvamus: saidikaart on „kõik saidi URL-id“. Ei ole. See on loend lehtedest, mida sa pead indekseerimist väärivaks. Iga URL kaardis on avaldus otsimootorile ja avaldused peavad olema järjekindlad.

URL-i tüüpKaardile?Miks
Leht annab 200 ja on indekseeritavJahSelleks kaart ongi
Ümbersuunatud leht (301/302)EiPane lõppaadress
404 või 410EiOtsene signaal, et kaarti ei hooldata
Leht noindex'igaEiOtsene signaalide vastuolu
Mittekanooniline versioonEiKaardile ainult kanooniline aadress
Sortimis- ja filtriparameetritega URLEiToodab duplikaate
Kategooriate lehekülgede jaotusTavaliselt eiLeitakse linkide kaudu
Siltide ja arhiivide lehedOlenebAinult siis, kui neid otsitulemustes päriselt vajad
KeeleversioonidJahIgaüks oma URL-iga, koos hreflang-märgistusega

Vormingu tehnilised piirid: kuni 50 000 URL-i ja kuni 50 MB pakkimata kujul ühe faili kohta. Edasi jagatakse kaart mitmeks ja seotakse sitemap-indeksfailiga. Praktikas jõuavad nende piirideni ainult kataloogid, kuid kaardi jagamine tüüpide kaupa — tooted, kategooriad, artiklid — tasub end ära ka varem: Search Console'is näed siis, milline lehetüüp täpselt halvasti indekseerub.

Vabatahtlikest siltidest: lastmod'iga Google arvestab, kui seda saab usaldada. priority ja changefreq jäetakse Google'i töötajate sõnul tähelepanuta — nendele aega kulutada pole vaja.


Kuidas need kaks faili indekseerimise ära rikuvad

Aastate jooksul näen ma sama lühikest nimekirja.

1. Kogu saiti sulgev Disallow, mis jäi arendusest. Rida Disallow: / kolib testserverist toodangusse. Sümptom: liiklus kukub paari nädalaga, Search Console'is kasvab „Blokeeritud faili robots.txt tõttu“. Kontrollitakse kümne sekundiga — ja see on esimene asi, mida ma avan, kui sait „lihtsalt kadus otsingust“.

2. Korraga Disallow ja noindex. Taheti leht otsitulemustest eemaldada — suleti nii robots.txt-is kui ka metasildiga. Tulemus on soovitule vastupidine: noindex'it ei loeta, leht jääb alles. Õige järjekord on lahti kirjutatud artiklis sellest, miks Google lehti ei indekseeri.

3. Saidikaart, mida keegi pole uuendanud. Pool aadresse annab 404 ja uusi lehti pole. Google lõpetab tasapisi selle ülelugemise ja sa kaotad lihtsaima kanali uutest materjalidest teatamiseks.

4. Kaart kui viis nõrku lehti „indeksisse suruda“. URL-i lisamine kaardile ei tee lehte otsitulemuste vääriliseks. Kui Google seda näeb ega võta, ei ole asi avastamises, vaid väärtuses või dubleerimises.

5. Suhteline aadress Sitemap-direktiivis. Töötab ainult täisaadress koos protokolli ja domeeniga.

6. Erinev robots.txt www-ga ja ilma, http-l ja https-il. Formaalselt on need erinevad hostid ja fail loetakse igaühe jaoks eraldi. Pärast ümbersuunamiste seadistamist see ununeb.

7. Saidikaart ise on robots.txt-is suletud. Esineb harvem, aga esineb — tavaliselt siis, kui kaart asub suletud teeninduskaustas.


Mida ma praktikas kontrollin

Järjekord, mille ma igal saidil läbin enne sisu puutumist:

  1. Avan /robots.txt brauseris. Fail peab andma 200 ja olema lühike. Kui seal on sada rida, on seal peaaegu alati aastatega kogunenud prügi.
  2. Otsin silmaga Disallow: / ja kõike, mis sulgeb terveid sektsioone. Igal sellisel reeglil peab olema selgitus.
  3. Kontrollin mõnda tähtsat URL-i Search Console'i tööriistaga „URL-i kontroll“: kas roomamine on lubatud ja millist aadressi peab Google kanooniliseks.
  4. Avan aruande „Saidikaardid“: kaart on loetud, kuupäev värske, leitud URL-ide arv võrreldav tegeliku lehtede arvuga. Kordades erinevus on põhjus edasi kaevata.
  5. Vaatan aruannet „Lehed“, kategooriaid „Blokeeritud faili robots.txt tõttu“ ja „Leitud, kuid pole indekseeritud“. Esimene püüab kinni liigsed keelud, teine räägib enamasti juba mitte failidest, vaid kvaliteedist ja struktuurist.
  6. Võrdlen kaarti tegelikkusega: roomab saidi läbi ja kõrvutan kaardi URL-ide loendit linkide kaudu ligipääsetavate lehtedega. Erinevus mõlemas suunas on informatiivne: mida kaardis pole, on kandidaat orblehtede hulka, mida saidil pole, on kaardis surnud aadress.

Rakendatavuse piiridest: 20–40-lehelisel saidil korraliku sisemise linkimisega ei otsusta saidikaart peaaegu midagi — Google leiab kõik linkide kaudu mõne päevaga. Tuntavaks muutub see kahel juhul: värske domeen ilma välislinkideta ja suur kataloog, kus osa lehti asub sügaval. Positsioonide kasvu sellelt oodata ei tasu üldse: see on avastamise, mitte ranžeerimise tööriist.

Kui pärast robots.txt-i muutmist ei juhtu ööpäevaga midagi, on see normaalne. Google puhverdab faili ega loe seda iga roomamise ajal uuesti.


Töötav miinimum tavalisele saidile

Skeem, millest ma teenustesaidil või väikepoes lähtun:

  1. Sulge robots.txt-is ainult mootori teenindussektsioonid, ostukorv, tellimuse vormistamine, kasutajakonto ja sisemise otsingu tulemused.
  2. Ära sulge CSS-i, JS-i, pilte ega ühtegi lehte, mis peab ranžeeruma.
  3. Märgi kaardi täisaadress direktiiviga Sitemap:.
  4. Genereeri sitemap.xml automaatselt mootori või pluginaga, mitte käsitsi.
  5. Jäta kaardilt välja mittekanoonilised URL-id, ümbersuunamised, noindex ja parameetritega aadressid.
  6. Saada kaart Search Console'i ja tule aruande juurde nädala pärast tagasi.
  7. Juba indeksisse sattunud prügi-URL-idele kasuta avatud roomamise juures noindex'it või canonical'it — ja alles pärast ülekülastust sulge need robots.txt-is, kui roomamiseelarve seda nõuab.

Kui seitsmendal sammul selgub, et parameetri- ja filtri-URL-e tekib sadade kaupa, ei ravi seda kaks tekstifaili: vaja on aadresside moodustamise reegleid mootori tasandil, ehk veebiarendust. Ja kui prügiaadressid on juba näitamised endale tõmmanud ja konkureerivad normaalsete lehtedega, on tegu märksõnade kannibaliseerimisega, mida tuleb eraldi lahti harutada — tavaliselt SEO-optimeerimise raames koos struktuuri ümberkoostamisega.

Korduma kippuvad küsimused

Mille poolest erineb robots.txt noindex'ist?
Robots.txt keelab robotil lehte alla laadida, noindex keelab seda otsitulemustes näidata. Need on erinevad tasandid: kui leht on robots.txt-is suletud, ei jõua robot sisuni ega näe noindex-metasilti, mistõttu leht võib indeksisse jääda märkega, et kirjeldus pole saadaval. Selleks et leht kindlalt otsitulemustest kaoks, peab ta olema roomamiseks avatud ja andma noindex'i.
Kas sitemap.xml on kohustuslik?
Ei ole, ja sait indekseerub ka ilma selleta. Google märgib, et saidikaart aitab leida lehti, millele viib vähe siselinke, ning on kasulik suurtel või uutel saitidel. 20–30-lehelisel korraliku siselinkimisega saidil on võit peaaegu olematu; kümnete tuhandete URL-idega kataloogis või värskel domeenil on see märgatav.
Mida saidikaarti panna ei tohi?
Kõike, mida sa otsitulemustes näha ei taha: ümbersuunatud aadresse, 404-lehti, noindex'iga suletud lehti, mittekanoonilisi versioone, sortimis- ja filtriparameetritega URL-e ning tehnilisi sektsioone. Saidikaart on avaldus „need on minu tähtsad lehed“, ja vastuolu kaardi ja ülejäänud signaalide vahel ei tõlgenda Google sinu kasuks — ta lihtsalt lõpetab kaardi usaldamise.
Kuidas kontrollida, et robots.txt ei sulge liiga palju?
Search Console'is on robots.txt-i aruanne, kus on näha, millise versiooni robot luges ja millal. Üksikut URL-i saab kontrollida tööriistaga „URL-i kontroll“: see näitab, kas roomamine on lubatud. Eraldi tasub vaadata aruannet „Lehed“ — kategoorias „Blokeeritud faili robots.txt tõttu“ ei tohi olla lehti, mida sa otsitulemustes vajad.
Kas filtri- ja sortimislehed tuleb robots.txt-is sulgeda?
Tavaliselt jah, aga ainult juhul, kui need ei pea ranžeeruma. Oluline nüanss: robots.txt-is sulgemine ei eemalda juba indekseeritud URL-e. Kui need on juba otsitulemustes, on järjekord vastupidine — kõigepealt ava roomamine ja anna noindex või canonical, oota ülekülastust ja alles siis sulge need soovi korral robots.txt-is, et roomamiseelarvet säästa.
Kui tihti tuleb sitemap.xml-i uuendada?
Kaart peab uuenema automaatselt lehtede avaldamisel ja kustutamisel — käsitsi hooldatud fail läheb elusal saidil varem või hiljem tegelikkusest lahku. Lastmod-silti tuleb täita ausalt: kui see muutub iga genereerimisega korraga kõigil URL-idel, lõpetab Google sellega arvestamise ja sa kaotad kasuliku signaali.

Järeldused

Sitemap.xml ja robots.txt on saidi kõige odavamad seadistada ja samal ajal need, kus viga läheb kõige kallimaks: üks vale Disallow-rida võib kogu sektsiooni otsitulemustest välja viia ja ükski sisu seda ei korva. Reegel, milleni ma aastatega jõudsin: robots.txt peab olema lühike ja igav ning sitemap.xml aus loend lehtedest, mida sa tegelikult otsitulemustes näha tahad. Kui selgub, et prügi-URL-e toodab mootor ise, ei ole see enam kahe tekstifaili küsimus, vaid indekseerimisreeglite oma — sellest ma tehnilist auditit tavaliselt alustangi.

Artikli autor

Vladislav Krivorutsko — ADLABi asutaja
Vladislav Krivorutsko

ADLAB OÜ asutaja · SEO ja Google Ads

Üle 20 aasta otsiliikluse ja monetiseerimisega, Eesti turul alates 2017. aastast. Töötan üksi: teen auditi, koostan strateegia ja viin projekti ise lõpuni — ilma alltöövõtjate ja šabloonideta. Kirjutan ainult sellest, mida olen oma ja klientide saitidel järele proovinud.

  • 20+ aastat otsiliikluses
  • 50+ projekti võtmed kätte
  • Oma saidid konkurentsitihedates nišides
  • SEO ru/et/en ühes otsingutulemuses
Loe minust lähemalt

Loe edasi