robots.txt mitai ir neteisingas naudojimas

  • Komentarai: Comments Off

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 galima derė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?

Ateikit į Vilnius JS susitikimą

  • Komentarai: 3

Vilnius JS logotipas
Lapkričio 20, Vilnius HUB vyks pirmasis Vilniaus JavaScript programuotojų susitikimas, pasidiskutavimas ir [nemokamos] picos/alaus paragavimas.

Jo metu aš papasakosiu apie pažadus (Promises/A ir Promises/A+ ribose), su kuo jie valgomi ir kaip jie padeda valdyti visokius asinchroniškai vykstančius dalykus beigi parodysiu keletą pavyzdžių su Q biblioteka.

Taip pat Vytautas Butkus papasakos apie modulinę, eventais paremtą vartotojo sąsajos architektūrą.

Užsiregistruokit ir ateikit.

Savaitgalio eksperimentas: Login 2011 programa, pritaikyta mobiliems telefonams

  • Komentarai: 2

Per paskutinius kelis metus perskaičiau šimtus blogų, apie tai, kaip internetus reikia kurti galvojant apie nešiojamus įrenginius mažais ekranais, ir kaip gražiai viskas galėtų veikti, jeigu laikytis standartų. Deja – šio savaitgalio eksperimentas parodė, kad tokiai filosofijai dar kiek per anksti.

Bendrai paėmus, kadangi investavau tik pusantros dienos darbo, rezultatas visai patenkinamas – “mobili” Login 2011 programa. Informaciją nukopijavau iš oficialios svetainės – tikiuosi savininkai nesupyks.
(more…)

Tiketa Eurobasket 2011 #fail

  • Komentarai: 2

Kadangi žinojau, kad Tiketos registracijos patvirtinimui reikia siųsti žinutę lietuvišku trumpuoju numeriu, tai nusprendžiau patikrinti kas bus jeigu a) naudosiuos angliška interneto svetaine, b) registruosiuos su airišku telefono numeriu. Tai dabar, mieli draugai, jūs man paaiškinkit, kokiu formatu man įvesti savo gimimo datą? Ir kaip man užsiregistruoti, jeigu gyvenu Dubline?

Naudoti svetimus JS failus yra nemandagu ir nesaugu

  • Komentarai: Comments Off

Vos prieš porą mėnesių garsiai nuskambėjo Ajaxian, kai paėmė ir įdėjo besisukančios Coca Cola skardinės pavyzdį į iframe tiesiogiai iš autoriaus svetainės. Gana panašus atvejis buvo ir su Douglas Crockford JSON2 biblioteka bent keletoje didokų svetainių (žr. pirmą šaltinio eilutę).

Moralas toks – jeigu įtrauki į savo kodą failus tiesiogiai iš kitų žmonių serverių, ypač jeigu jų nepažįsti ir nepaklausi jų sutikimo, viskas gali baigtis blogai. Štai pvz. mano blog’as naudoja html5.js – aš galėčiai ramiai pakeisti jį taip, kad jis vogtų jūsų svetainės lankytojų slaptažodžius ir siųstų man. Bet aš neesu blogietis ir to nedarysiu.

Jeigu kam nors reikia įsijungti HTML5 Internet Exploreryje – galima gi paimti ir parsisiųsti tą JS ir pasidėti savo svetainėje. Bet jeigu jau taip gaila srauto – Remy Sharp leidžia tiesiogiai naudoti jo sukurtą versiją iš Google Code SVN.

Man iš tikro negaila, bet pagunda bent pajuokauti yra… Tu žinai kas tu esi. Ar ne?

Kam reikalingos “rašytinės” raidės?

  • Komentarai: 11

Dienos klausimas – vis tik, kodėl pirmoje klasėje vaikai mokomi tokio beverčio įgūdžio kaip dailyraštis? Šią tingią sekmadienio popietę praleidau klaidžiodamas internetų gūdybėse, kol užkliuvau už šio “Ar žinote, kad…” video klipuko. Vienas iš faktų jame – geidžiamiausios darbo vietos prieš dešimtmetį tiesiog dar nebuvo išrastos. Tokiu greičiu judančiame pasaulyje, kai tai, ką išmoksti universitete pirmais metais, jau būna pasenę kai baigi, privalomai mokyti dalykų, kurie yra atgyvenę, reiškia elementarų resursų švaistymą ir praktiškai sukelia ekonominį atsilikimą ateityje.
(more…)

Kaip “Lietuvos žinios” dezinformaciją skleidė

  • Komentarai: 2

Vakar Delfi pamačiau straipsnį pavadinimu “Pasaulinis atšilimas: mitas sklaidosi“. Tikėjausi, kad bus pateikta rimtesnė analizė, apie tai, ką reiškia pastarųjų savaičių nutekėjusių laiškų skandalas. Ką pamačiau iš tikrųjų? Keletą žodžių apie tai ir krūvą atsitiktinių, melagingų, nepatikrintų ir juokingų “faktų”.
(more…)

Užrašai iš FullFrontal 2009

  • Komentarai: 8

Prėjusį penktadienį Brighton’e vyko FullFrontal 2009 JavaScript konferencija, kurioje turėjau progą apsilankyti. Tikrai nenusivyliau!

Šiame blogo įraše susidėjau tai, ką pasižymėjau pats sau beklausydamas kalbėtojų. Pačių kalbų tikrai neketinu aprašinėti – tai puikiai padarė Ajaxian (nuorodas pateikiu), o skaidrės taipogi prieinamos viešai.

Jeigu kažkuris punktas sudomino – palikit komentarą – išplėsiu!
(more…)

Apie “ne vagystę”

  • Komentarai: 5

Gyveno kartą bomžas. Biednas buvo, neturėjo pinigų, šalo žiemą lauke.

Vieną dieną sužinojo, kad kai kurie butai būna neužrakinti. Gal dėl savininkų žioplumo, gal dėl to, kad pametė raktus – nesvarbu kodėl.

Nuėjo bomžas į laiptinę ir pradėjo tikrinti duris. Na ir rado atrakintas. Įėjo į vidų ir šiltai sau miega.

Juk tai nėra įsibrovimas į svetimą valdą, nes nu juk bomžui šalta. Ir tai nėra neteisėta, nes nu juk žalos tai jis nepadarė – išsimiegojo, neprišiko, išėjo. Butas vietoje, visi daiktai vietoje. Vagystės nėra. Žalos lyg irgi nėra.

Anglijoje, gi, žmonės, sakoma, daug uždirba. Todėl pas juos bomžai geriau gyvena. Prisirenka daugiau išmaldos, todėl gali miegoti nakvynės namuose. Todėl Lietuvoje bomžai tiesiog turi teisę eiti į svetimus namus ir ten miegoti.

Ir apskritai, bomžai turėtų įsteigti bomžų partiją, ir kovoti už teisę, kad visi žmonės paliktų duris atrakintas, kad jie galėtų ateiti ir miegoti kada nori. Nes na juk ne įsibrovimas į svetimą valdą ir visi turėtų turėt teisę miegoti svetimuose butuose.