Одним из этапов оптимизации сайта для поисковиков является составление файла robots.txt.
С помощью данного файла можно запрещать некоторым или всем поисковым роботам индексировать ваш сайт или его определенные части, не предназначенные для индексации.
Одним из этапов оптимизации сайта для поисковиков является составление файла robots.txt. С помощью данного файла можно запрещать некоторым или всем поисковым роботам индексировать ваш сайт или его определенные части, не предназначенные для индексации. В частности можно запретить индескирование дублирующегося контента такого как версии страниц для печати.
Файл robots.txt — текстовый файл в формате .txt, ограничивающий поисковым роботам доступ к содержимому на http-сервере. Как определение, Robots.txt — это стандарт исключений для роботов, который был принят консорциумом W3C 30 января 1994 года, и который добровольно использует большинство поисковых систем. Файл robots.txt состоит из набора инструкций для поисковых роботов, которые запрещают индексацию определенных файлов, страниц или каталогов на сайте. Рассмотрим описание robots.txt для случая, когда сайт не ограничивает доступ роботам к сайту.
Поисковые роботы перед началом индексации сайта всегда обращаются к файлу robots.txt в корневом каталоге вашего сайта, например, http://ваш_сайт.ru/robots.txt, чтобы знать какие разделы сайта роботу индексировать запрещено. Но даже если вы не собираетесь ничего запрещать, то данный файл все равно рекомендуется создать.
Как видно по расширению robots.txt – это текстовый файл. Для создания или редактирования данного файла лучше использовать самые простые текстовые редакторы наподобие Блокнот (Notepad). robots.txt должен быть размещен в корневом каталоге сайта и имеет собственный формат, который мы рассмотрим ниже.
Простой пример robots.txt
User-agent: *
Allow: /
Здесь роботс полностью разрешает индексацию всего сайта.
Файл robots.txt необходимо загрузить в корневой каталог вашего сайта, чтобы он был доступен по адресу:
ваш_сайт.ru/robots.txt
Формат файла robots.txt
Файл robots.txt должен состоять как минимум из двух обязательных записей. Первой идет директива User-agent указывающая, какой поисковый робот должен следовать идущим дальше инструкциям. Значением может быть имя робота (googlebot, Yandex, StackRambler) или символ * в случае если вы обращаетесь сразу ко всем роботам. Например:
User-agent: googlebot
Название робота вы можете найти на сайте соответствующего поисковика. Дальше должна идти одна или несколько директив Disallow. Эти директивы сообщают роботу, какие файлы и папки индексировать запрещено. Например, следующие строки запрещают роботам индексировать файл feedback.php и каталог cgi-bin:
Disallow: /feedback.php
Disallow: /cgi-bin/
Также можно использовать только начальные символы файлов или папок. Строка Disallow: /forum запрещает индексирование всех файлов и папок в корне сайта, имя которых начинается на forum, например, файл http://ваш_сайт.ru/forum.php и папку http://ваш_сайт.ru/forum/ со всем ее содержимым. Если Disallow будет пустым, то это значит, что робот может индексировать все страницы. Если значением Disallow будет символ /, то это значит что весь сайт индексировать запрещено.
Для каждого поля User-agent должно присутствовать хотя бы одно поле Disallow. То-есть, если вы не собираетесь ничего запрещать для индексации, то файл robots.txt должен содержать следующие записи:
User-agent: *
Disallow:
Дополнительные директивы
Кроме регулярных выражений Яндекс и Google разрешают использование директивы Allow, которая является противоположностью Disallow, то-есть указывает какие страницы можно индексировать. В следующем примере Яндексу запрещено индексировать все, кроме адресов страниц начинающихся с /articles:
User-agent: Yandex
Allow: /articles
Disallow: /
В данном примере директиву Allow нужно прописывать перед Disallow, иначе Яндекс поймет это как полный запрет индексации сайта. Пустая директива Allow также полностью запрещает индексирование сайта:
User-agent: Yandex
Allow:
равнозначно:
User-agent: Yandex
Disallow: /
Нестандартные директивы нужно указывать только для тех поисковиков, которые их поддерживают. В противном случае робот не понимающий данную запись может неправильно обработать ее или весь файл robots.txt. Более подробно о дополнительных директивах и вообще о понимании команд файла robots.txt отдельным роботом можно узнать на сайте соответствующей поисковой системы.
Регулярные выражения в robots.txt
Большинство поисковых систем учитывают только явно указанные имена файлов и папок, но есть и более продвинутые поисковики. Робот Google и робот Яндекса поддерживают использование простых регулярных выражений в robots.txt, что значительно уменьшает количество работы для вебмастеров. Например, следующие команды запрещают роботу Google индексировать все файлы с расширением .pdf:
User-agent: googlebot
Disallow: *.pdf$
В приведенном примере символ * – это любая последовательность символов, а $ указывает на окончание ссылки.
User-agent: Yandex
Allow: /articles/*.html$
Disallow: /
Приведенные выше директивы разрешают Яндексу индексировать только находящиеся в папке /articles/ файлы с расширением ".html". Все остальное запрещено для индексации.
Карта сайта
В файле robots.txt можно указывать расположение XML-карты сайта:
User-agent: googlebot
Disallow:
Sitemap: http://ваш_сайт.ru/sitemap.xml
Если у вас очень большое количество страниц на сайте и вам пришлось разбить карту сайта на части, то в файле robots.txt нужно указывать все части карты:
User-agent: Yandex
Disallow:
Sitemap: http://ваш_сайт.ru/my_sitemaps1.xml
Sitemap: http://ваш_сайт.ru/my_sitemaps2.xml
Зеркала сайта
Как вы знаете обычно один и тот же сайт может быть доступен по двум адресам: как с www, так и без него. Для поискового робота ваш_сайт.ru и www.ваш_сайт.ru это разные сайты, но с одинаковым содержимым. Они называются зеркалами.
Из-за того что на страницы сайта есть ссылки как с www так и без, то вес страниц может разделиться между www.ваш_сайт.ru и ваш_сайт.ru. Чтобы этого не происходило поисковику нужно указать главное зеркало сайта. В результате "склеивания" весь вес будет принадлежать одному главному зеркалу и сайт сможет занять более высокую позицию в поисковой выдаче.
Указать основное зеркало для Яндекса можно прямо в файле robots.txt с помощью директивы Host:
User-agent: Yandex
Disallow: /feedback.php
Disallow: /cgi-bin/
Host: www.ваш_сайт.ru
После склейки зеркалу www.ваш_сайт.ru будет принадлежать весь вес и он будет занимать более высокую позицию в поисковой выдаче. А ваш_сайт.ru поисковик вообще не будет индексировать.
При обмене ссылками с другими сайтами желательно использовать указанный в поле Host адрес www.ваш_сайт.ru, а не ваш_сайт.ru.
Для остальных поисковиков выбором главного зеркала является серверный постоянный редирект (код 301) с дополнительных зеркал на основное. Делается это с помощью файла .htaccess и модуля mod_rewrite. Для этого размещаем в корень сайта файл .htaccess и пишем туда следующее:
RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} ^ваш_сайт.ru$
RewriteRule ^(.*)$ http://www.ваш_сайт.ru/$1 [R=301,L]
В результате все запросы с ваш_сайт.ru будут идти на www.ваш_сайт.ru, то-есть ваш_сайт.ru/page1.php будет перенаправляться на www.ваш_сайт.ru/page1.php.
Метод с редиректом будет работать для всех поисковых систем и браузеров, но все же рекомендуется добавлять для Яндекса директиву Host в файл robots.txt.
Комментарии в robots.txt
В файл robots.txt также можно добавлять комментарии – они начинаются с символа # и заканчиваются переводом строки. Комментарии желательно писать в отдельной строке, а лучше вообще их не использовать.
Пример использования комментариев:
User-agent: StackRambler
Disallow: /garbage/ # ничего полезного в этой папке нет
Disallow: /doc.xhtml # и на этой странице тоже
# и все комментарии в этом файле также бесполезны
Примеры файлов robots.txt
1. Разрешаем всем роботам индексировать все документы сайта:
User-agent: *
Disallow:
2. Запрещаем всем роботам индексировать сайт:
User-agent: *
Disallow: /
3. Запрещаем роботу поисковика Google индексировать файл feedback.php и содержимое каталога cgi-bin:
User-agent: googlebot
Disallow: /cgi-bin/
Disallow: /feedback.php
4. Разрешаем всем роботам индексировать весь сайт, а роботу поисковика Яндекс запрещаем индексировать файл feedback.php и содержимое каталога cgi-bin:
User-agent: Yandex
Disallow: /cgi-bin/
Disallow: /feedback.php
Host: www.ваш_сайт.ru
User-agent: *
Disallow:
5. Разрешаем всем роботам индексировать весь сайт, а роботу Яндекса разрешаем индексировать только предназначенную для него часть сайта:
User-agent: Yandex
Allow: /yandex
Disallow: /
Host: www.ваш_сайт.ru
User-agent: *
Disallow:
Пустые строки разделяют ограничения для разных роботов. Каждый блок ограничений должен начинаться со строки с полем User-Agent, указывающей робота, к которому относятся данные правила индексации сайта.
Часто встречающиеся ошибки
Нужно обязательно учитывать, что пустая строка в файле robots.txt представляет собой разделитель двух записей для разных роботов. Также нельзя указывать несколько директив в одной строке. Запрещая индексацию файла веб-мастера часто пропускают / перед названием файла.
Не нужно прописывать в robots.txt запрет на индексирование сайта для различных программ, которые предназначены для полного скачивания сайта, например, TeleportPro. Ни "программы-качалки", ни браузеры никогда не смотрят в этот файл и не выполняют прописанных там инструкций. Он предназначен исключительно для поисковых систем. Не стоит также блокировать в robots.txt админку вашего сайта, ведь если на нее нигде нет ссылки, то и индекироваться она не будет. Вы всего лишь раскроете расположение админки людям, которые не должны о ней знать. Также стоит помнить, что слишком большой robots.txt может быть проигнорирован поисковой системой. Если у вас слишком много страниц не предназначенных для индексации, то лучше их просто удалить с сайта или перенести в отдельную директорию и запретить индексирование данной директории.
Проверка файла robots.txt на наличие ошибок
Обязательно проверьте как понимает ваш файл robots поисковиковые системы. Для проверки Google вы можете воспользоваться Инструментами Google для веб-мастеров. Если вы хотите узнать как ваш файл robots.txt понимает Яндекс, то можете воспользоваться сервисом Яндекс.Вебмастер. Это позволит вовремя исправить допущенные ошибки. Также на страницах данных сервисов вы сможете найти рекомендации по составлению файла robots.txt и много другой полезной информации.
Ниже я приведу пример файла robots.txt сайта ваш_сайт.ru
#Правила для всех поисковых роботов
User-agent: *
#Разрешаем сканирование
Allow: *.js
Allow: *.css
Allow: /templates/*.js
Allow: /templates/*.css
Allow: /plugins/*.js
Allow: /plugins/*.css
Allow: /components/*.js
Allow: /components/*.css
Allow: /modules/*.js
Allow: /modules/*.css
Allow: /media/*.js
Allow: /media/*.css
Allow: *.png
Allow: *.jpg
Allow: *.gif
Allow: /images/
#Открываем для индексирования файл стилей форума
Allow: /media/kunena/*.css
Allow: /components/com_kunena/*.css
#
#Открываем для индексирования карту сайта
Allow: /*index.php?option=com_xmap&view=xml&tmpl=component&id=1
#
#Открываем для индексирования турбостраниц
Allow: /*com_ajax&plugin=rssfeedforyandexzen&format*
#
#Запрещаем сканирование
Disallow: /administrator/
Disallow: /bin/
Disallow: /cache/
Disallow: /cli/
Disallow: /components/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
Disallow: /layouts/
Disallow: /libraries/
Disallow: /logs/
Disallow: /media/
Disallow: /modules/
Disallow: /plugins/
Disallow: /templates/
Disallow: /tmp/
Disallow: /?*
Disallow: /*?
#Disallow: /*?*
Disallow: /component*
#Закрываем дубли, найденные вручную
Disallow: /forum/recent
Disallow: /blog/izbrannye-stati
Disallow: /index.php?start*
Disallow: /*uncategorised*
#Закрываем от индексирования раздел о разработчиках форума Kunena
Disallow: /forum/credits
#
#Указываем карту сайта
Sitemap: https://ваш_сайт.ru/index.php?option=com_xmap&view=xml&tmpl=component&id=1
#Указываем главное зеркало сайта
host: https://ваш_сайт.ru