robots.txt mitai ir neteisingas naudojimas
Anądien pliuse išsiliejau apie tai, kad dėl neaiškių priežasčių paieškos [ir kitokiems] robotams pusė Seimo svetainės yra “uždraustas turinys”. To rezultatas labai paprastas – ieškant, pvz., “PVM įstatymas” rezultatuose pirmu numeriu yra nuoroda į būtent tą įstatymą, tačiau nepateikiamas puslapio pavadinimas irba santrauka:
Ta proga peržvelgiau ir keleto kitų valdžios įstaigų nurodymus robotukams – pastebėjau keistų dėsningumų. Kaip ir kas kartą, kai rašau mąstau apie SEO, viskas susiveda į keletą paprastų taisyklių, kurių pati svarbiausia yra “Daryk taip, kad būtų gerai vartotojams, o robotai atsirinks viską taip, kaip reikia”.
Mitas: robots.txt padės paslėpti nepageidaujamus puslapius
Realybė: jeigu kažkokia informacija neturi būti vieša, nedėk jos į internetą. Paprasta kaip du kart du. Jeigu kažkoks puslapis egzistuoja kažkokioje iš išorės prieinamoje svetainėje – informacija yra prieinama visiems. Jeigu yra bent viena nuoroda į tą turinį – paieškos robotai suindeksuos vien patį nuorodos egzistavimo faktą ir iš to padarys išvadas. Jeigu nuorodų į tą turinį yra daug, tai tas puslapis netgi bus rodomas pirmu rezultatu paieškoje, lygiai taip, kaip matosi iš aukščiau pateikto pavyzdžio apie PVM įstatymą.
Ką daryti? Jeigu reikia paslėpti turinį, tai reikia jį visų pirma ištrinti iš serverio ir įsitikinti, kad bandant užkrauti nuorodą serveris grąžina 404 Not found
arba dar geriau – 410 Gone
. Tik tada nuorodą į tą puslapį įtraukti į robotus. Jeigu įvyko kažkoks informacijos nutekėjimas ir reikalas skubus – vertėtų ir pasinaudoti, pvz., Google Webmaster Tools, kad tą puslapį greičiau pašalintų iš įvairių indeksų.
Mitas: robots.txt padeda apsisaugoti nuo įsilaužėlių
Dalis valdžios (ir ne tik) įstaigų labai dažnai robots.txt užblokuoja administracijos interfeisus ir tikisi, kad taip kažkokiu būdu apsisaugos [nuo neaišku ko].
Realybė: nereikia net būti programišium, kad pabandytum nueiti į /admin
. Vėl galioja ankstesnė mintis dėl informacijos viešumo, tačiau verta pridurti, kad robots.txt netgi sumažina saugumą: “slaptų” dalykų sąrašas yra laisvai prieinamas tiems, kam įdomu, ką jūs turite slapto. Man asmeniškai knieti sužinoti, kas gi yra/buvo “akreditacijos failuose” prezidentūros svetainėje bei kokiu pagrindu VRK blokuoja vieną iš stebėtojų sąrašų.
Ką daryti? Vėlgi – jeigu turinys nėra viešas – nedarykite jo prieinamu iš to paties serverio. Didelės svarbos svetainėms išvis reikėtų savo administracijos konsoles padaryti pasiekiamas tik iš vidinių organizacijos tinklų ar per VPN. Taip pat pastebėjau, kad kartais yra blokuojamos direktorijos su sistemos programiniais viduriais (pvz., modules
ar includes
) – šitos direktorijos apskritai neturėtų gulėti po “web root”.
Mitas: robots.txt apsaugo nuo kenkėjiškų siurbėlių
Realybė: robots.txt gerbia tik geranoriški robotai. Piktavaliams į jūsų robots.txt nusispjauti lygiai taip pat, kaip į kelio ženklus gaideliams, kurie automobilius statosi neįgaliesiems skirtose vietose. Tiems, kas nori nusikopijuoti visą jūsų svetainę, jūsų prašymas nesiurbti yra ne trukdis.
Mitas: blokavimas robots.txt padeda suvaldyti serverio apkrovas
Realybė: kai kurie visai legitimių paieškos variklių crawleriai yra pakankamai agresyvūs, todėl iš dalies suprantu LRS nustatymuose pamatęs draudimus Baidu botui, tačiau šiuo atveju tikslas nepateisina priemonių – “paslėpus” dalį svetainės tikriems žmonėms bus sunkiau surasti tą informaciją.
Ką daryti? Jeigu svetainė nesusitvarko su apkrovomis, reikia optimizuoti svetainę arba pirkti galingesnius serverius. Jeigu vienas konkretus robotas ar žmogus elgiasi per daug agresyviai, galbūt ir verta trumpam užblokuoti tik tą asmenį ar botą, bet tai derėtų daryti firewall/load balancer ar tiesiog HTTP serverio lygmeny (su 503 Service Temporarily Unavailable ir Retry-After), o ne per robots.txt. Taip pat galima eksperimentuoti blokuojant tik keletą “brangių” (CPU naudojimo požiūriu) puslapių, bet turbūt daug geriau būtų tiesiog juos kešuoti.
Pavojus: apkrovų valdymas su crawl-delay
Mintis, atrodytų, puiki – gražiai besielgiantiems robotams galima nurodyti kas kiek sekundžių jie gali kreiptis į svetainę. Realybė? Ta pati LRS svetainė rekomenduoja nesikreipti dažniau nei kas 20 sekundžių. Ką tai reiškia? Kad paieškos variklis per dieną tegali suindeksuoti vos kiek daugiau nei 4000 dokumentų. Įvertinus, kad didelės svarbos puslapius reikia indeksuoti dažniau – kelis kartus per dieną ar net per valandą (pvz., titulinį puslapį ar naujienas) – patiems įstatymams, nutarimams, posėdžių ir balsavimų išrašams indeksuoti praktiškai nelieka laiko.
Ką daryti? Kaip ir aukščiau – tvarkyti problemos priežastį (sistemos lėtumą), o ne glaistyti simptomus. Taip pat galima naudoti sitemaps.xml, kad konkretiems puslapiams nurodyti, kad jie daugiau nebebus atnaujinami – taip sumažinant konkrečių dalių atnaujinimų kiekį, bet nepakenkiant visai likusiai svetainei.
Klaida: pilno adreso rašymas į robots.txt
Realybė: robots.txt galioja vienam ir tik vienam domeinui – tam, kuriame jis gyvena. Rašant pilną adresą (taip kaip tai daro pvz., Kauno savivaldybė) puslapis lieka išvis neužblokuotas.
Čia, beje, dar privalau paminėti, kad mane siutina, kai administratoriai nesutvarko konfigūracijų taip, kad svetainės veiktų įrašius adresą ir su, ir be www, bet čia kitos dienos tema.
Klaida: neradus dokumento perkelti vartotoją į namų puslapį
Bežiūrinėdamas įvairių svetainių robotus atradau įsikerojusią negerą praktiką – suvedus neegzistuojantį adresą naršyklė nukeliauja į namų puslapį arba – netgi dar blogiau – tiesiog parodomas namų puslapis. Čia yra negera praktika, nes ji atveria kelia Google bomboms, lankytojų gluminimui, taip pat darko paties svetainės administratoriaus statistikas (jeigu tie administratoriai apskritai stebi savo logus…) bei šiaip yra nesilaikoma standartų.
Ką daryti? Jeigu puslapis neegzistuoja – grąžinti klaidos puslapį. Ir nieko čia blogo! Klaidos puslapyje galima pateikti nuorodas į tolimesnę informaciją ar paiešką, bet visų svarbiausia – grąžinti teisingą HTTP status kodą (404 arba 410). Perkelti į kitą puslapį apskritai dera tik tuo atveju, kai esame garantuoti, kad perkeliame į tą turinį, kurio ieško vartotojas. Kalbant apie robots.txt geriausiai būtų tiesiog sukurti tuščią failą, o ne tiesiog patiekti kažkokį kitą puslapį.
Rekomendacija: valstybinės įstaigos neturėtų blokuoti puslapių su robots.txt
Peržvelgus mitus akivaizdu, kad naudos to failiuko ne kažkas. Nepaisant to, kad rekomendacija neblokuoti galioja ir verslui, mano nuomone, valstybei ji yra privaloma. Valstybės informacija yra vieša (o VSD turbūt neturėtų slaptų dokumentų kelti į internetą ir tiek). Ir ta informacija yra vieša tiek žmonėms, tiek robotams. Jeigu užblokuojami visi robotai, apsunkinamas informacijos pasiekiamumas žmonėms, o tai jau savaime yra blogis. LRS atveju matome ir specifinių robotų blokavimą (Bing, Yandex, bet ne Google) – tai, mano nuomone, taip pat yra didelis blogis, nes suteikiama privilegija vienam verslui, bet ne kitiems – valstybė neturėtų diskriminuoti, ypač atviros informacijos pasiekiamumu. Blokuojant informaciją su robots.txt taip pat gaunamas ir dar vienas neigiamas rezultatas vartotojui – vietoje oficialaus šaltinio (valstybės) paieškoje grąžinami verslo puslapiai (pvz., Infolex).
Tai kada robots.txt naudingas?
Iš esmės matau tik kelis atvejus, kai robots.txt naudoti yra labiau teigiama negu neigiama:
- jeigu įvyko netyčinis informacijos nutekėjimas (visiems pasitaiko) – pirmiausia nutekėjusią informaciją reikia visiškai pašalinti, po to
galimaderėtų papildomai užblokuoti buvusį adresą robotams, kad jis būtų[greičiau]pašalintas iš indeksų; - vidinės svetainės paieškos rezultatų blokavimui (bet ne aklai!) – pasinaudojus Google paieška, patekti į kitos svetainės paieškos rezultatus yra neoptimalu, todėl praradimas yra nedidelis ir šiuo atveju pasigamina šiokia tokia optimizacija;
- menkavertės informacijos prioriteto sumažinimui – vėlgi reikia gerai pasvarstyti, bet, pvz., kokio nors wiki puslapio redagavimo istorija yra mažiau aktuali nei pats puslapis, todėl kartais gali apsimokėti ją “prislopinti”.
Pabaigai – jeigu LRS atveju, įtariu, blokavimas atsirado netyčia, greičiausiai dėl sistemų perkonfigūravimo ar atnaujinimo, tai, pvz., VLKK ar kelių policijos atvejai mane verčia rautis plaukus – kodėl svetainės užblokuotos visiškai?