Kas iš tikrųjų yra robots.txt ir kodėl jis svarbus
Jei kada nors teko dirbti su svetainės SEO ar tiesiog domėtis, kaip veikia paieškos varikliai, tikrai susidūrei su robots.txt failu. Tai vienas tų dalykų, kurie atrodo paprasti iš pirmo žvilgsnio, bet kai pradedi gilintis, supranti, kad čia galima padaryti nemažai klaidų – ir kai kurios iš jų gali rimtai pakenkti svetainės matomumui.
Trumpai tariant, robots.txt yra paprastas tekstinis failas, kuris gyvena tavo svetainės šakninėje direktorijoje (pvz., https://tavo-svetaine.lt/robots.txt). Jame nurodoma, kurias svetainės dalis paieškos variklių robotai (dar vadinami crawleriais arba botais) gali lankytis, o kurių – ne. Tai savotiškas durininkas, kuris pasitinka kiekvieną automatizuotą lankytojį ir pasako, kur jis gali eiti.
Tačiau čia svarbu suprasti vieną esminį dalyką: robots.txt nėra saugumo priemonė. Tai tik susitarimas, protokolas. Geras, mandagus botas (kaip Googlebot) jo laikysis. Bet koks piktybinis scrapperis ar blogas botas tiesiog ignoruos šį failą ir darys ką nori. Taigi jei turi konfidencialios informacijos, kurią nori paslėpti – robots.txt čia nepadės. Tam reikia tikros autentifikacijos ar kitų saugumo mechanizmų.
Robots.txt failo struktūra ir sintaksė
Pats failas yra labai paprastas – jokio JSON, jokio XML, tik gryna tekstinė sintaksė. Pagrindiniai elementai:
- User-agent – nurodo, kuriam botui taikoma taisyklė. Žvaigždutė (
*) reiškia visus botus. - Disallow – nurodo, kurių kelių botas negali lankyti.
- Allow – leidžia lankytis konkrečiame kelyje, net jei tėvinė direktorija yra uždrausta.
- Sitemap – nurodo sitemap.xml failo vietą.
- Crawl-delay – nurodo, kiek sekundžių botas turi palaukti tarp užklausų (Googlebot šio direktyvos oficialiai nepalaiko, bet kiti botai – taip).
Elementariausias pavyzdys – failas, kuris leidžia visiems botams lankytis visur:
User-agent: *
Allow: /Arba visiškai uždarytas failas:
User-agent: *
Disallow: /Praktinis pavyzdys su keliomis taisyklėmis:
User-agent: *
Disallow: /admin/
Disallow: /private/
Disallow: /tmp/
Allow: /public/
User-agent: Googlebot
Allow: /
Sitemap: https://tavo-svetaine.lt/sitemap.xmlAtkreipk dėmesį į kelias svarbias detales. Pirma, taisyklės yra case-sensitive – /Admin/ ir /admin/ yra skirtingi keliai. Antra, jei nurodysi Disallow: /katalogas (be pasvirojo brūkšnio gale), tai blokuos ir /katalogas, ir /katalogas-kitas. Jei nori blokuoti tik tą konkretų katalogą, rašyk Disallow: /katalogas/.
Dažniausios klaidos, kurios kainuoja brangiai
Per daugelį metų dirbant su svetainėmis, matosi ta pati situacija vėl ir vėl: žmogus sukuria robots.txt, pameta jį serveryje ir pamiršta. O po kelių mėnesių stebisi, kodėl svetainė neindeksuojama arba kodėl Google Search Console rodo keistus įspėjimus.
Viena iš klasikinių klaidų – blokuoti CSS ir JavaScript failus. Seniau tai buvo rekomenduojama praktika, nes manyta, kad tai sutaupo crawl budget. Bet dabar Google renderina puslapius kaip tikras naršyklės, ir jei jie negali pasiekti CSS/JS failų, jie nemato puslapio taip, kaip jį mato vartotojas. Rezultatas – prastesnis indeksavimas ir galimai žemesni pozicijų reitingai.
Kita dažna klaida – blokuoti puslapius, kurie vis tiek yra indeksuojami per nuorodas. Robots.txt blokuoja crawlimą, bet ne indeksavimą. Jei į tą puslapį veda nuoroda iš kito puslapio, Google gali vis tiek įtraukti jį į indeksą (be turinio, bet URL – taip). Jei nori tikrai pašalinti puslapį iš indekso, reikia naudoti noindex meta tagą arba X-Robots-Tag HTTP antraštę.
Taip pat pasitaiko situacijų, kai per daug blokuojama. Pavyzdžiui, blokuojami visi URL su parametrais (Disallow: /*?), bet tarp jų yra ir svarbūs filtravimo puslapiai, kurie turėtų būti indeksuojami. Arba blokuojama visa /blog/ direktorija, o paskui stebimasi, kodėl straipsniai nerodomi Google.
Ir dar viena – robots.txt failas grąžina 404 arba 500 klaidą. Jei failas neegzistuoja, botai tiesiog mano, kad jokių apribojimų nėra ir crawlina viską. Bet jei serveris grąžina 500 klaidą, Googlebot gali laikinai sustabdyti visos svetainės crawlimą, kol problema bus išspręsta. Tai rimta situacija.
Crawl budget – kas tai ir kada tai svarbu
Crawl budget – tai sąvoka, kuri dažnai minima SEO diskusijose, bet ne visada teisingai suprantama. Iš esmės tai yra kiekis puslapių, kuriuos Googlebot nori ir gali nuskaityti per tam tikrą laikotarpį. Jis priklauso nuo dviejų faktorių: crawl rate limit (kiek greitai serveris gali aptarnauti botą) ir crawl demand (kiek Google nori crawlinti svetainę, remdamasis jos populiarumu ir turinio atnaujinimų dažnumu).
Svarbu suprasti: mažoms svetainėms (iki kelių tūkstančių puslapių) crawl budget paprastai nėra problema. Google gali lengvai nuskaityti visą tokią svetainę per trumpą laiką. Crawl budget tampa aktualus didelėms e-komercijos svetainėms su šimtais tūkstančių produktų, naujienų portalams su milijonais straipsnių ar bet kokiai svetainei, kuri generuoja daug URL su parametrais.
Jei turi didelę svetainę ir nori optimizuoti crawl budget, robots.txt gali padėti:
- Blokuok faceted navigation URL (filtravimo kombinacijos e-komercijoje gali generuoti milijonus unikalių URL)
- Blokuok sesijų ID URL (
?sessionid=abc123) - Blokuok vidines paieškos rezultatų puslapius (
/search?q=) - Blokuok print-friendly versijas (
/print/) - Blokuok dublikuotą turinį (pvz., tas pats produktas su skirtingais rūšiavimo parametrais)
Tačiau prieš blokuodamas bet ką, įsitikink, kad tikrai supranti, ką blokuoji. Geriau praleisti valandą analizuojant, nei vėliau bandyti suprasti, kodėl pusė svetainės dingo iš paieškos rezultatų.
Skirtingų paieškos variklių botai ir kaip juos valdyti
Google nėra vienintelis, kuris crawlina tavo svetainę. Yra dešimtys skirtingų botų, ir kiekvienas turi savo user-agent pavadinimą. Štai keletas, kuriuos verta žinoti:
Google botai:
Googlebot– pagrindinis web crawlerisGooglebot-Image– paveikslėlių paieškaGooglebot-Video– vaizdo įrašų paieškaAdsBot-Google– reklamų kokybės tikrinimas
Kiti populiarūs:
Bingbot– Microsoft BingSlurp– YahooDuckDuckBot– DuckDuckGoBaiduspider– Baidu (svarbu, jei taikais į Kinijos rinką)YandexBot– Yandex (svarbu Rytų Europos rinkoms)
Praktinis scenarijus: tarkime, nori leisti Google indeksuoti viską, bet nori blokuoti Bing nuo tam tikrų sekcijų, o visus kitus botus – visiškai:
User-agent: Googlebot
Allow: /
User-agent: Bingbot
Disallow: /private/
Allow: /
User-agent: *
Disallow: /Čia svarbu žinoti, kaip botai interpretuoja taisykles, kai yra keli user-agent blokai. Jei botas atitinka konkretų user-agent, jis naudoja tik to bloko taisykles, o ne bendras * taisykles. Taigi jei Googlebot atitinka pirmą bloką, jis ignoruos paskutinį bloką su Disallow: /.
Robots.txt ir noindex – kada naudoti ką
Tai vienas dažniausių klausimų, su kuriais susiduria žmonės, dirbantys su SEO. Robots.txt ir noindex meta tagas daro skirtingus dalykus, ir juos supainiojus galima sukurti tikrą chaosą.
Robots.txt kontroliuoja crawlimą – ar botas apskritai aplankys puslapį. Jei puslapį blokuoji robots.txt, botas jo net neskaito, vadinasi, nemato jokių meta tagų, nuorodų ar turinio.
Noindex kontroliuoja indeksavimą – ar puslapį įtraukti į paieškos rezultatus. Botas turi aplankyti puslapį, kad pamatytų noindex direktyvą.
Štai kodėl klasikinė klaida yra uždėti robots.txt blokavimą ir noindex kartu. Jei blokai puslapį robots.txt, botas jo neaplankys ir nepamatys noindex. Puslapio URL vis tiek gali atsirasti indekse (per nuorodas iš kitų puslapių), bet be jokio turinio.
Praktinė rekomendacija:
- Naudok robots.txt, kai nori sutaupyti crawl budget (blokuoti techninius URL, dublikatus, parametrus)
- Naudok noindex, kai nori, kad puslapis nebūtų rodomas paieškos rezultatuose, bet vis tiek gali būti crawlinamas (pvz., thank-you puslapiai, vidinio filtravimo puslapiai)
- Naudok abu kartu tik tada, kai tikrai supranti, ką darai – ir dažniausiai tai nėra reikalinga
Kaip testuoti ir tikrinti robots.txt
Sukūrus ar pakeitęs robots.txt, būtina patikrinti, ar jis veikia taip, kaip tikėtasi. Laimei, yra keletas gerų įrankių.
Google Search Console robots.txt testeris – tai pats patikimiausias būdas patikrinti, kaip Googlebot interpretuoja tavo failą. Galima įvesti konkretų URL ir pamatyti, ar jis blokuojamas, ar ne. Testeris taip pat parodo sintaksės klaidas ir įspėjimus. Rasi jį Search Console → Sena versija → Crawl → robots.txt testeris (Google kartais keičia navigaciją, bet funkcija vis dar prieinama).
Rankinis tikrinimas – tiesiog atidaryti https://tavo-svetaine.lt/robots.txt naršyklėje ir patikrinti, ar failas grąžinamas teisingai (HTTP 200 statusas, ne 404 ar 500).
Screaming Frog – populiarus SEO crawleris, kuris automatiškai nuskaito robots.txt ir parodo, kurie puslapiai blokuojami. Labai naudinga, kai nori matyti bendrą vaizdą.
curl komanda – jei esi komandų eilutės mėgėjas:
curl -I https://tavo-svetaine.lt/robots.txtTai parodys HTTP antraštes ir patvirtins, kad failas grąžina 200 statusą.
Keletas dalykų, kuriuos reikia patikrinti:
- Ar failas grąžina HTTP 200?
- Ar failo dydis neviršija 500 KB (Google ignoruoja viską, kas virš šios ribos)?
- Ar nėra sintaksės klaidų?
- Ar neblokuojami svarbūs puslapiai (homepage, kategorijų puslapiai, produktai)?
- Ar sitemap nuoroda yra teisinga ir pasiekiama?
Robots.txt realybėje – nuo teorijos prie praktikos
Visa ši teorija yra gerai, bet kaip atrodo tikras, gerai sukonfigūruotas robots.txt failas? Priklauso nuo svetainės tipo, bet štai keletas realių scenarijų.
Paprastas tinklaraštis ar informacinė svetainė:
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://tavo-svetaine.lt/sitemap.xmlWordPress svetainėms tai yra standartinis minimumas. /wp-admin/ blokuojamas, nes ten nėra jokio turinio, kurį reikėtų indeksuoti, bet admin-ajax.php leidžiamas, nes kai kurie puslapiai jį naudoja dinamiškai.
E-komercijos svetainė:
User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /my-account/
Disallow: /wishlist/
Disallow: /*?sort=
Disallow: /*?filter=
Disallow: /*?page=
Allow: /
Sitemap: https://tavo-svetaine.lt/sitemap.xml
Sitemap: https://tavo-svetaine.lt/sitemap-products.xmlČia blokuojami funkciniai puslapiai (krepšelis, atsiskaitymas), kurie neturi SEO vertės, ir URL su parametrais, kurie generuoja dublikatų turinį.
Vienas svarbus dalykas, kurį verta paminėti: robots.txt nėra statiškas dokumentas. Svetainė keičiasi, pridedamos naujos sekcijos, keičiasi URL struktūra – ir robots.txt turi atspindėti šiuos pokyčius. Rekomenduojama peržiūrėti jį bent kartą per ketvirtį, ypač po didelių svetainės pakeitimų.
Taip pat verta stebėti Google Search Console skiltį „Coverage” – jei matai daug puslapių su statusu „Excluded by robots.txt”, gali būti, kad per daug blokuoji. Jei matai puslapius, kurių neturėtų būti indekse, gal per mažai blokuoji. Tai nuolatinis balansavimo aktas, ir nėra vieno universalaus recepto kiekvienai svetainei.
Galiausiai – nesibijok eksperimentuoti, bet visada testuok prieš publikuodamas pakeitimus. Viena klaida robots.txt faile gali turėti rimtų pasekmių, kurios pasirodys tik po kelių savaičių, kai Googlebot perkrawlins svetainę. Geriau praleisti papildomą valandą tikrinant, nei vėliau bandyti suprasti, kodėl organinis srautas krito 50 procentų.






