Як використовувати RobotsЯк користуватися robots.txt? Сьогодні я вам покажу, як використовувати файл robots.txt. Але для початку давайте розберемося для чого, власне, потрібен файл robots.txt?

Файл robots.txt призначений для того, щоб вказати пошуковим роботам пошукових систем (таким як Yandex, Rambler, Google, AltaVista і так далі.) які файли і папки необхідно заборонити індексувати.

Robots.txt повинен бути розташований в кореневій директорії сайту. Для дуже маленьких html-сайтів, які містять 10-30 сторінок необхідність файлу robots.txt відпадає, так як всі файли такого сайту необхідно індексувати. У випадку ж великих динамічних сайтів з’являється безліч спеціальних сторінок, абсолютно не призначених для опублікування, а для оновлення сайту необхідна зручна внутрішня структура сайту і активне використання файлу robots.txt.

Приміром, Yandex, для швидкого видалення з індексу директорій сайту вимагає прописування цих директорій у файлі robots.txt.

Як виглядає Robots.txt?
Файл robots.txt зазвичай виглядає так:
User-agent: *
Disallow: / delo.php
Disallow: / d123 /
Disallow: / travel / dat /

У рядку User-agent: зазначається конкретний робот (Yandex, StackRambler) або * – всі роботи .
У рядку Disallow вказується шлях до папки або конкретного файлу, забороненого до індексації (шлях абсолютний, відраховується від кореневої теки сайту).

Щоб дозволити доступ робота до деяких частин сайту або сайту цілком, використовуйте директиву Allow.
Порожніх рядків у файлі між рядком User-agent і Disallow, Allow бути не повинно. Якщо ви використовуєте карту сайту описану за допомогою формату sitemaps.xml, і хочете, щоб робот дізнався про неї, вкажіть шлях до sitemaps.xml, як параметр директиви Sitemap (якщо файлів декілька, вкажіть всі), приклади:

User-agent: Yandex
Allow: / Sitemap: http://mysite.ru/site_structure/my_sitemaps1.xml
Sitemap: http://mysite.ru/site_structure/my_sitemaps2.xml

Якщо у вашого сайту є дзеркала, спеціальний робот дзеркальник визначить їх і сформує групу дзеркал вашого сайту. У пошуку буде брати участь тільки головне дзеркало. Для цього Ви повинні вказати його robots.txt, використовуючи директиву Host, визначивши як її параметра ім’я головного дзеркала. Директива Host, як трактує Help Яндекса, не гарантує вибір зазначеного головного дзеркала, тим не менш, алгоритм при ухваленні рішення враховує її з високим пріоритетом. Приклад: Якщо www.taina.com.ua є головне дзеркало сайту, то robots.txt для всіх сайтів з групи дзеркал виглядає так:
User-Agent: *
Disallow: / forum Disallow: / cgi-bin
Host: www.taina.com.ua

Так само можна задати час відвідування пошукового робота на сторінці вашого сайту, для цього можна скористатися директивою Crawl-delay. Вона дозволяє задати пошуковому роботу мінімальний період часу (в секундах) між кінцем закачування однієї сторінки і початком закачування наступної. Обов’язково, з метою сумісності з роботами, директиву Crawl-delay необхідно додавати в групі, що починається із запису “User-Agent”, безпосередньо після директив Disallow (Allow). Яндекс підтримує дробові значення Crawl-Delay, наприклад, 0.5. Це не гарантує, що пошуковий робот буде заходити на ваш сайт кожні півсекунди, але дає роботу більше свободи і дозволяє прискорити обхід сайту. Приклади:
User-agent: Yandex
Crawl-delay: 2 # задає таймаут в 2 секунди
User-agent: *
Disallow: / search
Crawl-delay: 4.5 # задає таймаут в 4.5 секунди не є перерахування файлів і директорій у файлі robots.txt небезпечним? Деякі турбуються, що, перераховуючи файли і директорії у файлі / robots.txt, вони привертають до них непотрібну увагу. Для них дві поради. По-перше, ви можете помістити всі файли, які не повинні бути доступні роботам, в окрему директорію, сконфігурувати сервер так, щоб не можна було отримати список файлів з цієї директорії, а потім записати в robots.txt тільки назва цієї директорії. Таким чином, роботи, що не дотримуються стандарту, не зможуть проіндексувати файли в цій директорії, за винятком випадків, коли ви самі поставите на них посилання на інших сторінках. Простіше кажучи, замість: User-Agent: *
Disallow: / foo.html
Disallow: / bar.html використовуйте: User-Agent: *
Disallow: / norobots / помістіть в директорію “norobots” файли foo.html і bar.html і забороніть серверу віддавати список файлів, що знаходяться в цій директорії. Тепер атакуючий буде знати, що у вас є директорія “norobots”, але не зможе дізнатися імена файлів, що знаходяться там – йому доведеться вгадувати їх. Однак на практиці цей підхід дуже вразливий. Хтось може розмістити посилання на ваші файли на своєму сайті. Чи їх назви можуть з’явитися в загальнодоступному лог-файл, наприклад, що генерується проксі-сервером, через який ходять відвідувачі вашого сайту. Чи хтось може перенастроювати сервер, знову сказавши йому віддавати список файлів в директорії. Все це приводить нас до цього відповіді на це питання: Ця відповідь така: файл robots.txt не призначений для контролю доступу і не повинен для нього використовуватися. Розглядайте його не як замок на дверях, а як табличку «не входити». Якщо доступ до певних файлів на сервері потрібно обмежити – використовуйте систему авторизації доступу. Підтримка Basic Authentication з’явилася у веб-серверах ще на зорі веб (наприклад, вона дуже просто налаштовується на Apache), а якщо вам потрібно щось серйозніше, використовуйте SSL. Як бачите все досить легко і зрозуміло. Використовуйте це на своїх сайтах, тим самим ви допоможете пошуковому роботу правильно читати ваш веб-ресурс.