Technika

Čo je robots.txt, ako vyzerá a na čo sa (ne)používa

Čo je súbor robots.txt

Súbor robots.txt je textový súbor, ktorý sa nachádza v koreňovom adresári webovej stránky (t. j. expressinfo.sk/robots.txt , ale nie expressinfo.sk/zlozka/robots.txt). Tento textový súbor sa zvyčajne používa na informovanie robotov (typicky vyhľadávačov, ako sú Google, Seznam, Bing a mnohé ďalšie) o tom, ktoré stránky našej webovej lokality je možné navštíviť a ktoré nie, a kde sa nachádza mapa(-y) webu (Sitemap).

Súbor musí byť pomenovaný presne „robots.txt“ bez úvodzoviek a všetky písmená musia byť malé. Na jednu doménu je povolený iba 1 súbor robots.txt (pre subdomény je potrebný ďalší súbor).

Roboty navštevujúce stránku by sa mali vždy najprv pozrieť do súboru robots.txt, ktorý nájdu na predvídateľnom mieste, t. j. v koreňovom adresári stránky. Všimnite si, že súbor robots.txt slúži ako inštrukcie, ale roboty nemusia tieto inštrukcie dodržiavať ani sa nimi nijako riadiť. Nejde teda o bezpečnostné opatrenie, ktoré má zabrániť zlým robotom nájsť časti webu, ktoré nechcete, aby našli.

Súbor robots.txt slúži ako mechanizmus na to, aby vyhľadávače neprehľadávali úplne všetky stránky webu, t. j. aby nepreťažovali server, alebo aby ušetrili tzv. rozpočet na prehľadávanie, čo je jednoducho vyhradený počet našich adries URL, ktoré vyhľadávače navštívia za určité obdobie.

Ak by sme mali na webe napríklad miliardy URL (čo sa môže veľmi ľahko stať, ak sú v URL zapísané napríklad rôzne filtre produktov v e-shope), mohli by sme náš rozpočet na prehľadávanie vyčerpať na množstvo nerelevantných filtrov, ale vyhľadávače by nikdy neprehľadali stránky, ktoré sú pre nás dôležité.

Kde sa nachádza súbor robots.txt a pre ktoré domény je platný

Súbor robots.txt sa vždy nachádza v koreňovom adresári domény, ktorej sa týka. Nevzťahuje sa však na žiadne subdomény. Napríklad http://example.com/robots.txt nemá vplyv na žiadnu subdoménu, ktorá by bola spustená na http://subdom.example.com. Táto subdoména musí mať vlastný súbor robots.txt umiestnený v koreňovom adresári.

Dôležité je tiež dodržiavať daný protokol, t. j. či ide o protokol http, https alebo ftp.

Alebo http://example.com/robots.txt nemá vplyv na správanie robotov na httpS://example.com.

Najlepšie príklady toho, ktoré umiestnenie súboru robots.txt ovplyvňuje ktoré domény, uvádza priamo spoločnosť Google.

Ako vyzerá súbor robots.txt + najčastejšie používané pokyny

Súbor robots.txt môžeme jednoducho vytvoriť napríklad v klasickom Poznámkovom bloku a je to naozaj len klasický textový súbor. Pozornosť musíte venovať len kódovaniu, ktoré musí byť v UTM-8 (kódovanie si vyberiete v Poznámkovom bloku pri ukladaní súboru).

Vždy zapíšte jednu inštrukciu na riadok súboru. Ak sa v niektorej inštrukcii vyskytne chyba, roboty ju zvyčajne ignorujú a pokračujú ďalej (t. j. chybná inštrukcia v jednom riadku neznehodnotí celý súbor).

Najtypickejšie a najpoužívanejšie pokyny sú:

Používateľský agent

User-agent určuje, pre ktoré roboty platia nižšie uvedené pokyny. Znak * znamená pre všetkých robotov

Platí pre všetky roboty:

User-agent: *

Platí pre vyhľadávač Google:

User-agent: Googlebot

Platí pre vyhľadávač Seznam:

User-agent: SeznamBot

Pokyny pre rôzne roboty v jednom súbore robots.txt:

User-agent: Googlebot

#Inštrukcie len pre Google

User-agent: SeznamBot

#Inštrukcie len pre Seznam

Zakázať

Ďalším veľmi používaným pokynom je Disallow. Tento pokyn znemožňuje prezeranie jednotlivých stránok alebo celých adresárov, či dokonca celého webu. To je užitočné, ak nechceme, aby roboty navštívili stránku, ako je prihlasovacia stránka administrácie alebo iné podobné stránky.

Zakáže všetkým robotom prechádzať všetky stránky adresára /admin/, t. j. všetky súbory alebo podadresáre. Môžeme tiež zakázať viacero adresárov, stačí pridať ďalší riadok so smernicou Disallow:

User-agent: *
Disallow: /admin/
Disallow: /sukromne/

Zakázať prehľadávanie celého webu (môže byť užitočné, ak vytvárate web a nechcete, aby ho vyhľadávače ešte prehľadávali):

User-agent: *
Disallow: /

Povoľte

Opakom príkazu Disallow je Allow, t. j. povoliť prehliadanie. Príkaz Allow používame vtedy, keď chceme zakázať prístup do adresára pomocou príkazu Disallow, ale chceme vytvoriť výnimku v rámci tohto zakázaného adresára.

Tu by roboty nemali chodiť do celého adresára /semnechod/, ale s výnimkou /semnechod/semmuzes/, ktorý môžu navštíviť vrátane všetkých ostatných súborov alebo podadresárov:

User-agent: *
Disallow: /semnechod/
Allow: /semnechod/semmuzes/

Mapa stránok

Súbor sitemap.xml (môže sa volať akokoľvek, ale toto je najtypickejší názov) je súbor, ktorý obsahuje, ak je to možné, všetky adresy URL, ktoré chceme, aby vyhľadávače navštívili. Je to jednoduchý spôsob, ako dať vyhľadávačom vedieť o všetkých stránkach nášho webu spolu s ďalšími informáciami. V súbore robots.txt môžeme robotom oznámiť, kde sa nachádza naša mapa stránok alebo dokonca viacero máp stránok. V súbore robots.txt môžeme zapísať umiestnenie takto:

Sitemap: https://www.expressinfo.sk/sitemap_index.xml
Sitemap: https://www.expressinfo.sk/post-sitemap.xml

Mapy stránok sa zapisujú v absolútnom formáte adresy (t. j. s http na začiatku). Mapy stránok môžu byť umiestnené aj na iných doménach.

Súbor robots.txt sa NEPOUŽÍVA na zakázanie indexovania

Súbor Robots.txt je súbor, ktorý zakazuje robotom navštevovať rôzne časti webu, a ak sú to dobre vychovaní roboti, budú tieto pokyny rešpektovať. Ale pozor, toto nie je univerzálne riešenie, keď ide o to, aby sa stránka nedostala do výsledkov vyhľadávania. Na vylúčenie alebo zakázanie indexovania by sa mali použiť iné metódy (zvyčajne umiestnenie meta značky do html kódu tých stránok, ktoré nechcete indexovať) priamo medzi značky :

 <meta name="robots" content="noindex">  

Ale ako by mohol vyhľadávač indexovať stránku, ak ju vďaka súboru robots.txt ani nenavštívil? Stačí napríklad odkaz z inej časti webovej stránky, kde vyhľadávač dokáže z bohatého textu odkazu určiť, o akú stránku ide. Keďže vyhľadávač ho potom nenavštívi kvôli pokynom v súbore robots.txt, nebude vedieť, že by ho nemal indexovať. Chápem, že je to trochu nezmysel, ale napríklad Google to takto uvádza vo svojich oficiálnych pokynoch.

Ďalším príkladom by bolo, ak by sme pridali nový zákaz prehľadávania niektorej časti webu, ale spoločnosť Google by už túto časť webu indexovala (to sa môže ľahko stať, pretože spoločnosť Google si stiahne súbor robots.txt a trvá 24 hodín, kým ho znova stiahne a začne sa riadiť novými pokynmi). Spoločnosť Google by teda mohla web indexovať, aj keď sme zakázali jeho prehľadávanie (samozrejme, spoločnosť Google o tomto zákaze nevie). Pre tieto stránky môžeme v html kóde nastaviť meta značku noindex, ale pretože potom začne rešpektovať zákaz prehľadávania zo súboru robots.txt, nedostane už v html kóde informáciu, že nechceme, aby sa stránky indexovali. Stránky teda zostanú len v indexe.

Ak teda chceme, aby sa niektoré stránky nedostali do indexu, je lepšie, aby neboli v súbore robots.txt, ale aby boli správne označené značkou noindex.

Bezpečnostné riziko súboru robots.txt

K tomuto súboru má prístup ktokoľvek a môže tiež ľahko zistiť, ktoré stránky nechceme indexovať. Často to môžu byť stránky, o ktorých by nikto nemal vedieť (napríklad to môže byť prihlasovacia stránka administrácie webu, ktorá slúži len nám a nikto iný by k nej nemal mať prístup ani o nej vedieť). Je zrejmé, že nechceme, aby túto stránku navštevovali roboti, ale zároveň nie je dobrý nápad určiť ju priamo v súbore robots.txt, pretože by sa k nej mohli ľahko dostať útočníci a potom sa ju pokúsiť napadnúť.

Takže tieto stránky, o ktorých by nemali vedieť roboty ani nikto iný, naozaj nesmieme písať do verejne dostupného súboru, ktorý slúži len ako návod. Takže na tieto tajné stránky nesmú byť žiadne odkazy a nikde sa o nich nesmie hovoriť. Samozrejme, potom musíte vyššie uvedené prihlasovanie chrániť iným spôsobom, ale aspoň podľa mojich skúseností sú tieto tajné stránky veľmi dobrým spôsobom, ako prekaziť 99,9 % pokusov o prelomenie hesla, takže ich umiestnenie do súboru robotx.txt nie je najlepší nápad.

Testovanie platného súboru robots.txt

Najjednoduchším spôsobom je pridať stránku do služby Google Search Console a použiť validátor, ktorý ponúka priamo spoločnosť Google. Je to najspoľahlivejšia metóda, ako zabezpečiť, aby bol súbor v poriadku, neobsahoval chyby a aby sa vyhľadávač (ne)dostal tam, kam (nechcete).

Existujú aj iné validátory, ktoré môžete nájsť online, ale podľa mňa je najlepšie ísť priamo do najväčšieho vyhľadávača na svete, kde je dôležité, aby súboru rozumel.

Často kladené otázky (FAQ) a rýchle odpovede

Čo je robots.txt?

robots.txt je súbor so sériou pokynov pre robotov (t. j. vyhľadávače), ktoré stránky majú alebo nemajú navštíviť, alebo umiestnenie súboru Mapa stránok.

Kde sa nachádza súbor robots.txt?

Súbor sa nachádza iba v koreňovom adresári webovej stránky, napríklad example example.com/robots.txt. Ak je súbor umiestnený inde, roboty ho nenájdu alebo ho nebudú považovať za súbor s pokynmi.

Slúži súbor robots.txt ako nástroj na zakázanie indexovania?

Nie, len ako nástroj na zákaz prehliadania. Vyhľadávače môžu indexovať stránku bez toho, aby ju navštívili. Na zakázanie indexovania by sa mali použiť iné metódy, zvyčajne umiestnenie meta tagu priamo do html kódu stránky.

Podobné články

Back to top button