Як відомо, файл robots.txt використовується для заборони індексації частини або всього сайту всіма можливими роботами. Правильне складання цього файлу дозволить уникнути індексації документів, які для індексації не призначені.
Формат файлу robots.txt
Robots.txt — простий текстовий файл, який повинен знаходитися в кореневій директорії сервера. Ім’я файлу повинно бути в нижньому регістрі (ROBOTS.TXT, Robots.txt — неправильно).
У файлі містяться записи, які відокремлюються однією або декількома вільними рядками (розділяються CR, CRNL, NL або r, rn, n). Кожний запис, у свою чергу, складається з рядків такого виду:
- ім’я_поля[необов’язкові пропуски]:[необов’язкові пропуски]значення[необов’язкові пропуски]
- Поле є нечутливим до регістру (case insensitive).
- Кожний запис починається одним або декількома рядками, де ім’я_поля= User-agent, після чого слідує один або декілька рядків, де ім’я_поля=Disallow, імена полів, які відрізняються від двух наведених, ігноруються.
- Знак «#» означає, що пропуски перед ним і всі символи до кінця рядку є коментарями. Рядки, що містять тільки коментарі, ігноруються і не можуть використовуватися для розділення записів.
User-agent
- Значенням цього поля є ім’я робота, до якого застосовуються правила доступу;
- Якщо рядків з User-agent декілька, то для всіх роботів приймаються однакові правила, які містяться в поточному записі;
- Якщо значення поля дорівнює «*», то правила застосовуються до будь-якого роботу, для якого немає окремого запису.
У файлі robots.txt може бути тільки один запис з User-agent: Disallow
Disallow
- У записі повинно бути хоча б одне поле Disallow;
- У полі Disallow вказується шлях (URL), який не буде відвіданий;
- Вільне значення (Disallow: ) інтерпретується як дозвіл на відвідування будь-якої сторінки;
- Регулярні вирази і символи підстановки заборонені;
Практика
У процесі обробки сайту роботи мають масив посилань для відвідування і навпаки правил виключення з файлу robots.txt. Для кожного посилання виділяється шлях (http://www.site.com/path/to/file.html), після чого до цього шляху застосовуються по черзі правила виключення. Нехай у файлі є рядок Disallow: /path/to, він порівнюється з відповідним підрядком посилання:
- http://www.site.com/path/to/file1.html — відвідування заборонене;
- http://www.site.com/path/to/file2.html — відвідування заборонене;
- http://www.site.com/path/file3.html — відвідування заборонене;
Щоб заборонити роботу відвідування динамічних сторінок, можнна використовувати частковий шлях. Наприклад, щоб заборонити відвідування сторінки для друку типу http://www.site.com/index.php?action=print&id=1, але дозволити відвідування сторінок типу http://www.site.com/index.php?action=view&id=1, необхідно в robots.txt написати наступне:
Disallow: /index.php?action=print
Але потрібно враховувати порядок параметрів у посиланні. Отже, наступні сторінки робот відвідає: http://www.site.com/index.php?id=1&action=print http://www.site.com/?action=print&id=1
Приклад файлу robots.txt
User-agent: *
Disallow: /news
#заборонити всім роботам індексувати посилання
#які починаються з /news
User-agent: StackRambler
User-agent: Aport
Disallow: /eng
Disallow: /news
#Рамблеру і Апорту заборонити індексацію посилань,
#які починаютсья з /news і /eng
User-agent: Yandex
Disallow:
#Яндексу дозволити все.
Варто відмітити, що файл robots.txt не є панацеєю, оскільки його правила виключення використовують тільки «культурні» роботи, а разом з ними існує цілий список роботів, сервісів і програм, які не слідують правилам виключення, або ігнорують існування файлу robots.txt на сайті.
Крім цього, у файлі виключення не варто додавати шляхи до файлів, про існування яких не варто знати стороннім людям. Файл robots.txt доступний всім, тому присутність там рядків, на кшталт Disallow: /admin, тільки підбурить деяких відвідувачів до здійснення шкідливих дій.
Примітки
- У деяких випадках використовується динамічне формування файлу robots.txt, для сайтів з дзеркалами.
- Деякі системи підтримують додаткові поля. Яндекс, наприклад, використовує поле Host для визначення головного дзеркала сайту.
- Деякі системи дозволяють використовувати регулярні вирази. Так Гугл, який має пошук по зображенням, файлам PDF та іншим, підтримує в полі Disallow символи «*» (будь-яка послідовність символів) і «$» (закінчення рядку посилання).
- В адресі сайту забороняється вказувати "http://".
Це дозволяє заборонити індексувати визначені типи файлів:
User-agent: Googlebot
Disallow: *.pdf$
#Заборона індексації файлів PDF
На думку автора це надмірне розширення, оскільки з тим же успіхом можна винести всі документи PDF в окремий каталог і заборонити його індексацію:
User-agent: *
Disallow: /pdf/
Автор - Владимир Чернышов aka Cherny