(14 perc olvasás)
Mi a robots.txt?
A robots.txt file-t arra használják, hogy a keresők robotjai és vizsgálóprogramjai számára információkat adjanak át, hogy mit tegyenek vagy ne tegyenek egy adott oldalon. Ezeket az utasításokat a Robotkizárási szabvány (Robots Exclusion Protocol - REP) standard használatával lehet megadni, de itt érdemes megjegyezni, hogy egyes keresők nem sztenderdizált elemeket is használnak. Az alap információk olyan üzeneteket tartalmaznak, mint például hogy egy oldal mely részét ne olvassák a robotok, azonban ezen túl még többféle módon használható a robots.txt file.
Egy kis történelem
A robotkizárási szabványt negyed évszázada találták ki, 1994 februárjában – és azóta sem változtattak rajta túl sokat, kivéve a már említett nem sztenderd elemeket. Fiatalságának napjaiban nagyon sok keresőmotor volt a piacon (elég, ha csak az AltaVistára, HotBotra, Lycosra vagy InfoSeekre gondolunk – és ennél még csak hosszabb volt a lista) és gyorsan ez vált a nem hivatalos sztenderddé. Viszont itt meg kell jegyezni, hogy a sztenderd igazából kivétel, mert alapvetően csak egy javaslat, amit a botok gyakran nem vesznek figyelembe vagy csak részben.
Érdekes módon 2019 júliusában a Google – melynek botjai nem mindig akarnak engedelmeskedni a robots.txt file-okban foglaltaknak – azt javasolta, hogy legyen a robotkizárási szabvány a hivatalos sztenderd. Ez megváltoztathat bármit abból a szempontból, hogy hogyan használjuk a robots.txt-et? Elméletben nem. Viszont vitákat generálhat arról, hogy milyen új elemeket lehetne beépíteni, hogy még hatékonyabban lehessen “kontrollálni” a keresők robotjait.
Mely robotok olvassák a robots.txt file-t?
A robots.txt file minden, a honlapodra lépő automatizált rendszernek szól. Nem csak a legnyilvánvalóbb keresőrobotokra vonatkozik, SEO szempontokat előtérbe helyezve. A botok, melyekhez ezeknek a file-oknak az iránymutatásai még szólnak, szintén automatizált archiváló robotok (mint például amiket a Web Archive használ), programok, melyek egy honlapot egy helyi drive-ra töltenek le (például a HTTrack Website Copier), honlapelemző eszközök (olyan SEO szoftverek, mint a Xenu vagy a Majestic SEO és az Ahrefts botok) stb.
Az persze nem meglepő, hogy sok esetben ezeknek az alkotóit nem izgatják az iránymutatások. Másrészt vannak olyan robotok, melyeknek a felhasználói dönthetnek, hogy ezekkel összhangban működtessék azokat vagy sem.
Miért érdemes robots.txt file-t használni?
Ez az alapvető kérdés mindenképp válaszra érdemes – főként annak a párszor említett ténynek a fényében, ami a robots.txt file tartalmát érinti. A válasz egyszerű: egy kis kontroll a robotok fölött mindig jobb, mint a semmilyen. Hogy mit nyerhetsz vele? Elsőként azt, hogy meg tudod tiltani, hogy olyan részleteket böngésszenek a honlapodon, amiket nem kellene különböző okok miatt és megmutathass nekik olyanokat, melyeket viszont jó lenne meglátogatniuk.
Egy honlap bizonyos részeinek blokkolása több okból is fontos lehet:
- Biztonság – előfordulhat, hogy nem akarod, hogy a robotok (vagy vétlen felhasználók) olyan szekciókhoz is eljussanak, melyeket nem lenne szabad túl könnyen elérniük.
- Védelem a duplikált tartalmaktól – ha nagy mennyiségű duplikált tartalom van a honlapodon, de a URL struktúrádnak köszönhetően világosan megkülönböztethetők, a robots.txt file tudja jelezni a keresőmotoroknak, hogy a honlapodnak azokat a részeit ne kövessék le.
- Megspórolható költöztetés – a robots.txt segítségével eltávolíthatod egy részét annak az útvonalnak, amit a robotok bejárnak, vagy akár egész alkönyvtárakat, meghatározott típusú file-okat – még grafikákat vagy azok nagyfelbontású verzióját is. Egyes honlapok számára a megspórolt költöztetés nagyon jelentős lehet.
- Content protection against "leaking" outside - note that the suggested above protection for a folder with large-format graphics can also be used to present only smaller versions in the image search engine. This can be important in the case of photo banks (but not only).
- Tartalom védelme a “kiszivárgás” ellen – az imént említett, nagy méretű grafikák védelme úgy is megvalósítható, hogy csak a kisebb verziók legyenek láthatók a képkeresőkben. Ez a fotógyűjtő site-ok esetében (de nem csak számukra) lehet fontos.
- Böngészési keret optimalizációja – bár a lista legvégén említem, ez nem triviális dolog. Minél nagyobb egy website, annál nagyobb hangsúlyt kell arra helyezni, hogy az indexelő botok útvonala optimalizálva legyen. A SEO szempontjából nem irreleváns oldalak blokkolásával egyszerűen megnöveled annak az esélyét, hogy a botok arra menjenek, amerre kell.
Alap parancsok a robots.txt-ben: user-agent, allow és disallow
Menjünk le az alapokhoz, nézzük meg, hogyan kellene kinéznie a robots.txt file-nak. Text file-nak kell lennie, amit annak a honlapnak a főkönyvtárába kell tenni, amelyikkel kapcsolatban használni szeretnéd. A legfőbb, leggyakoribb elemei a user-agent, az allow (engedély) és a disallow (tiltás) parancsok.
Fontos tudni, hogy a robots.txt file a csillag jelet használja a variánshoz (*), és a file eléréshez kapcsolódóan a parancsba mindenképp írni kell valamit, még ha csak egy perjelet is (/
Példa a jó kitöltésre:
User-agent: *
Allow: /
– így jelzed a botok számára, hogy indexelhetik az egész siteot. Hasonlóképpen:
User-agent: *
Disallow: /
– azt jelenti, hogy megtagadod a hozzáférést az /
Másrészt:
User-agent: *
Disallow:
– nem jelent semmit, mert nem adtad meg a helyet a disallow parancs után.
Természetesen lehet több allow vagy disallow mező egy robots.txt file-ban. Például a következőképpen:
User-agent: *
Allow: /
Disallow: /
Disallow: /
– itt engedélyt adsz a robotoknak, hogy megnézzék az egész oldalt, kivéve az /
Hozzátennénk, hogy az utasítások önmagukban nem csak egész könyvtárakra, hanem egyéni file-okra is vonatkozhatnak.
Az allow és a disallow parancsok a robots.txt-ben
Ha esetleg gondod lenne az allow és a disallow parancsok értelmezésével, mert például szeretnéd letiltani a robotokat egy könyvtár eléréséről, de egy bizonyos alkönyvtárral kivételt szeretnél tenni, a megengedő elemek a tiltók alá kell, hogy kerüljenek. Például:
User-agent: *
Allow: /
Allow: /
Disallow: /
User-agent: Ahrefsbot
Disallow: /
User-agent: MJ12bot
Disallow: /
A fenti példában azonnal megmutattam, hogy mikor érvényesek eltérő szabályok bizonyos botok számára – itt azt “kéred” a robotoktól, amik az Ahrefs és a Majestic SEO szoftvereiből jönnek, hogy ne menjenek végig az oldalon.
Oldaltérkép parancs
A “meghívásokon” és a mappák kihagyására irányuló javaslatokon kívül a robots.txt file-t arra is használhatod, hogy megmutasd a robotoknak az oldaltérkép helyét. A sitemap parancsot használjuk erre, a teljes térkép elérést utánatéve. Erre egy példa:
Sitemap: http://
Természetesen megadhatsz több mappát is, ami a nagyon komplex honlapok esetében nagyon hasznos lehet.
Crawl-delay, azaz feltérképezéskésleltetés parancs
Nagyon nagy honlapok esetében gyakran felmerül a dilemma – egyrészt a tulajdonosok indexelni szeretnék a teljes honlapot, másrészt a keresőrobotok intenzív aktivitása sok adatforgalmat fogyaszthat és terheli a szervert a folyamatos új lekérdezésekkel. A probléma megoldására találták ki a feltérképezéskésleltetés utasítást.
Arra használják, hogy a robotokat informálják, hogy ne töltsenek le új file-okat x másodpercnél gyakrabban, így megnyúlik a robot munkaideje. Néhány példa a folyamatra:
User-agent: *
Crawl-delay: 2
– tehát a dokumentumok letöltése minden második másodpercben engedélyezett.
A legtöbb keresőmotor elég szabadon használja, gyakran egyszerűen figyelmen kívül hagyja. A Google egy ideig ennek a parancsnak az irrelevanciáját kommunikálta, míg 2019 júliusában hivatalosan is kijelentette, hogy nem fogja támogatni. A Bing jelezte, hogy a BingBot használja és 1, illetve 30 közötti az értéke. Elméletileg a Yandex is támogatja, de a gyakorlat azért mást mutat.
Érdekes, hogy a cseh keresőmotor, a Seznam egy másik parancs használatát javasolja, mégpedig a request-rate-et úgy, hogy hozzá kell tenni a dokumentumok számát, egy perjelet és az időt (s a másodpercekhez, m a percekhez, h ah órákhoz, d a napokhoz, mindegyik után egy szóközt hagyva). Erre egy példa:
User-agent: SeznamBot
Request-rate: 500/
vagy:
User-agent: SeznamBot
Request-rate: 100/
A Seznam kikötötte, hogy a parancs nem lassíthatja az indexálást egy dokumentum/
A Clean-param parancs
A Clean-param egy nagyon érdekes parancs. Sajnos sztenderd. A Yandex keresőbotjai használják és arra való, hogy meghatározott útvonalakon ne vegyenek figyelembe bizonyos paramétereket.
Hogyan működik a gyakorlatban? Tegyük fel, hogy címek vannak a honlapodon belül:
domain.com/
domain.com/
domain.com/
Mi történik, ha a “tlo” (háttér) csak az oldal külsejét változtatja meg, de mindig ugyanaz a tartalom? Ezekben az esetekben a Yandex szerint a clean-param paramétert kellene használni. Ez megfelelően megírva így néz ki:
User-agent: Yandex
Clean-param: background/
- ami azt jelenti, hogy az előző példában említett mindhárom címet így olvassa majd:
domain.com/
Ahogy láthatod, ez az utasítás kényelmesebb, mert limitálható csak néhány meghatározott könyvtárra is.
Host parancs
A különleges robots.txt utasítások közé tartozik a host parancs. A legtöbb keresőmotor nem veszi figyelembe, a Yandex súgójában szerepelt egy ideig, de most már eltűnt onnan a leírása.
A host parancsot akkor használják, ha azt szeretnék jelezni, hogy mi a preferált domain abban az esetben, ha több különböző címről működnek tükörsite-ok. Fontos, hogy maximum egy host utasítás legyen robots.txt file-onként (ha több van benne, akkor a soron következőt már nem veszik figyelembe), és a domain, ami a host parancs után következik, nem tartalmazhat hibát vagy a port számát.
Példa:
Host: domain.com
Sajnos nem tudom, hogy ez a parancs még működik-e, de feltételezem, hogy néhány kísérletet eredményezett arra, hogy olyan domainekre tegyék, ahova nem kellett volna. Az “átlagos” webmesterek vígasztalására szóljon, hogy a Yandex javaslatként hivatkozott rá, nem pedig kötelező elemként.
Hibák a robots.txt-ben és azok következményei
Bár a robots.txt file tartalma arra szolgál, hogy jó kapcsolatban legyünk a keresőrobotokkal, okozhat problémákat is. Mégpedig azáltal, hogy kizár tartalmakat a keresésből, melyeknek meg kellene jelenniük. Ez okozhat jelentős romlást a keresőlistákban való láthatóság szempontjából. Főként akkor, ha a robots.txt file sok elemet tartalmaz, mert ilyenkor könnyű hibákat ejteni és túl sok szekciót is kizárhatunk az oldalból.
A másik nagy hiba, ha minden képre, CSS stílusra vagy Java Script file-ra a disallow utasítást teszed. Jó lépésnek tűnhet, de a valóság teljesen más, két okból: egyrészt sokszor jól jön, ha megjelensz a képkeresés eredményei között (persze letilthatod a nagyméretű képek elérését, amit fentebb említettem).
A másik ok, ami még fontosabb, hogy hogyan képezi le a Google botja a honlapodat. Ha nem engedsz hozzáférést olyan file-okhoz, melyek fontosak az oldal végső megjelenése szempontjából, akkor azok nélkül rendereli le, aminek az lehet az eredménye, hogy félkésznek tűnik számára – és ez befolyásolhatja a besorolást.
Ha létrehozol egy robots.txt file-t, kell figyelned a méretére?
A Google egyik munkatársa, John Mueller egyszer azt mondta a Google+ profilján, hogy a robots.txt file-ok maximális mérete 500 KB. Ez azért elmondhatjuk, hogy egy nemlétező probléma, ugyanis az utasítások listájának ekkorára növelése abszurd ötlet lenne. De azért érdemes arra ügyelni, hogy egy robots.txt file se növekedjen túl nagyra, ami által olvashatóbb marad…. valaki számára, akinek rá kell néznie, és esetleg módosítania kell.
Ezenkívül arra is figyelj, hogy ez a Google Botokra vonatkozik – más keresőmotorok méretlimitje ettől eltérhet.
Elegendő az oldalblokkolás a robots.txt-ben?
Sajnos nem. Először is a nagyobb keresőmotorok robotjai nem mindig tartják tiszteletben a korlátokat (nem is említve, hogy bizonyos eszközök hogyan közelítik meg őket). Másrészt még a korlátozás olvasása után is a Google beléphet a honlapra és hozzáadhatja az indexelt oldalakhoz annak címét és URL-címét, egyes esetekben hozzátéve, hogy “Ehhez az oldalhoz nem érhető el információ”.
So it is still possible to get to this page from the search engine level, although this is unlikely. What's more, bots still go through such pages after subsequent links, even though they no longer provide link juice, and their ranking does not include data resulting from their content.
Tehát még így is lehetséges eljutni ehhez az oldalhoz keresőmotorokból, bár nem valószínű. A botok ráadásul átböngészik ezeket az oldalakat is, bár nem adják hozzá azokat a besoroláshoz.
Mi kell még a robots.txt file-on kívül?
Ha a honlapnak bizonyos részeit szeretnéd kizárni a keresőlistákról, mindig beírhatod a robots meta tag-et az adott oldal <HEAD> szekciójába:
<meta name="robots" content="noindex, nofollow" /
– ezzel a módszerrel még mindig nem 100%-os a siker (és kevésbé kényelmes), de egy további jelzés a botok számára.
Mi van akkor, ha teljesen szeretnéd leblokkolni a hozzáférést botok vagy emberek számára? Ebben a helyzetben a passzív módszerek helyett sokkal job, ha egyszerűen jelszóval véded az oldal adott szekcióját (akár htaccess-en keresztül).
Elméletben félmegoldásokat is alkalmazhatsz például úgy, hogy kizársz bizonyos címeket vagy IP osztályokat (amiket a keresőrobotok használnak), de a gyakorlatban ez nem lenne elegendó és a probléma továbbra is fennállna – ez vezet minket ahhoz a következtetésünköz, hogy az azonosítás az, amivel elérheted a teljes biztonságot.
Összegzés
Végül visszatérhetünk a robots.txt file kitöltésének lehetséges hibáihoz és azok következményeihez. Bármit is írsz bele, tudd, hogy annak a hatása pontosan az lehet, ami…. a funkciója. Ha azt szeretnéd, hogy valami indexelve legyen, figyelj arra, hogy lesznek-e mellékhatások (például a Google bot általi renderelés nehézségéről írtunk fentebb). Cserébe ha odafigyelsz a biztonsági kérdésekre, emlékezz, hogy a Google indexelésből való kizárása még nem fogja blokkolni az oldalakat feltérképező automatikus rendszereket.
Ha úgy érzed, hogy még több tudára lenne szükséged, olvasd el többi írásunkat az oldalak keresőoptimalizálásával kapcsolatban a Tudásbázisunkban.