Календар

May 2006
M T W T F S S
« Apr   Jun »
1234567
891011121314
15161718192021
22232425262728
293031  

robots.txt, трябва ли ни?

От вчера имам възможност да преглеждам грешките, които се генерират от web сървъра поддържащ сайта ми. Едно от нещата, които ме заинтересуваха беше, че постоянно някой се оплакваше, за липсата на файла robots.txt. А какво всъщност представляват роботите? Естествено, не онези дето млатят заварки в автомобилните заводи, или онези, които се препъват по стълбите в опит да наподобят човешка походка. Става дума за програми, целта на които е да обходят мрежата подобно на обикновени броузъри с цел събирането на информация. Срещат се под различни наименования, някои от тях доста екзотични – Web Wanderers (уеб скитници), Crawlers (пълзачи или пълзуни, което повече ме кефи) или Spiders (паяци. Уа-а!). Има цял сайт посветен на тези програми, за какво служат и има ли ползва от тях.

Сега малко по-подробно за robots.txt (а за най-любознателните и за тези на които им се четат дълги RFC-та, може да погледнат тук. )
Накратко нещата стоят така: ако робота не намери такъв файл в коренната директория на уеб сървъра (или по-точно там където стои индекс файла) той тръгва да обхожда всички връзки по всички страници. Наличието на такъв файл няма да повиши рейтинга на сайта ви по никакъв начин, той просто указва на робота, какво да индексира и какво не, от прочетените страници. Ако искате роботите просто да ви оставят на мира, правите един файл robots.txt, който е празен и … готово. Ако такъв файл не съществува, робота индексира всичко до което се докопа, като освен това генерира грешка “File does not exist”. Това последното, лично за мен е малко изнервящо, защото затруднява проследяването на истинските грешки, а освен това пълни хронологията с излишна информация.
Синтаксисът на robots.txt е доста опростен:

User-agent: < име_на_агент>
Disallow: < име_на_директория>

Коментарите се правят с #, като може да изброите няколко секции “User-agent” и “Disallow”. Всички команди трябва да започват от началото на реда, не се допуска отместване. Ето малко примери:

Примерно, искате за всички агенти да забраните обхождане на директория cgi-bin. Тогава един примерен robots.txt ще изглежда така:

User-agent: *
Disallow: /cgi-bin/

Ако искате да добавите още директории, примерно images или backups, то файлът ще изглежда така:

User-agent: *
Disallow: /cgi-bin/
Disallow: /images/
Disallow: /backups/

Възможно е да забранявате дадена директория за обхождане от конкретен агент, примерно, да забраните на агента на ABCdatos BotLink да гледа директория images, вашият robots.txt трябва да изглежда така:

User-agent: abcdatos
Disallow: /images/

Естествено, може да комбинирате няколко секции с различни агенти:

User-agent: *
Disallow: /cgi-bin/
Disallow: /images/
Disallow: /backups/

User-agent: abcdatos
Disallow: /images/

Имената на ботовете може да видите от тази връзка.

Проверката, дали създаденият от вас robots.txt е коректен, може да направите от тази връзка, а ако пък всичко изписано по-горе ви се видя сложно, може използвате генератор на robots.txt от тази връзка. Естествено, създаденият файл се качва в основната директория на вашият web сървър.