Вроде уже давно поставил точку на изысканиях правильного Robots.txt для WordPress. Лишний контент убран, сайт хорошо индексируется, но вот недавно заметил одну неприятную вещь — Яндекс не загружает картинки из папки /wp-content/uploads/. С Гуглом все в порядке, он периодически добавляет новые изображения, а Яндекс, даже при ручном добавлении не хочет включать их в индекс. Для многих это возможно и не имеет значения, но на моем блоге много фотографий и отказыватся от дополнительного трафика с Яндекс.Картинок не хочется. Что ж, попробуем решить эту проблему и получить правильный файл Robots.txt для блогов на WordPress.

Приведу пример файла Robots.txt, который до недавнего времени стоял на моих сайтах:

User-agent: *
Disallow: /xmlrpc.php
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/
Disallow: /tag/
Disallow: /?s=
Disallow: /trackback/
Disallow: /feed/
Disallow: /comments/
Disallow: */trackback/
Disallow: */feed/
Disallow: */comments/
Allow: /wp-content/uploads/

Sitemap: http://xela.ru/sitemap.xml

На первый взгляд все грамотно, но обратите внимание на выделенные красным строки. Самое обидное, что когда разбирался в синтаксисе Robots.txt вообще, сам же и написал, что Яндекс выполняет ту директиву, которая выше. Иными словами последнюю строку робот поисковика проигнорирует и картинки будут закрыты от индексации.

Есть три пути, как решить эту проблему. Можно перенести разрешающую строку выше запрещающей. При этом мы нарушаем правила написания файла, впрочем они не являются строгими и скорее всего такой вариант пройдет. Второй вариант — сделать дополнительную секцию для Яндекса. Мне он не понравился из-за громоздкости. Вполне понятно, что чем больше файл, тем вероятнее в нем ошибка. Да и хочется универсального решения.

После некоторого раздумия я просто решил удалить строку Disallow: /wp-content/. Собственно в это папке не находится какой-то тайной информации, так пусть она будет открыта вся. Если в поисковиках вдруг всплывут ненужные файлы, то всегда можно спрятать их прописав запрещение, скажем, на папку плагинов или темы.

Мой итоговый вариант получился следующим:

User-agent: *
Disallow: /xmlrpc.php
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /tag/
Disallow: /?s=
Disallow: /trackback/
Disallow: /feed/
Disallow: /comments/
Disallow: */trackback/
Disallow: */feed/
Disallow: */comments/
Disallow: */?
Allow: /wp-content/uploads/

Sitemap: http://xela.ru/sitemap.xml

Внимательные увидят еще одну добавленную строку. Одно время в Яндексе вылезли странные ссылки на мой сайт следующего вида:

http://www.xela.ru/2009/12/nastrojka-servera-apache-na-vps/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+xelaru+(Xela.ru+Блог+о+фотографии,+программировании+и+seo)

Я так и не смог разобраться откуда они попадают в индекс. Судя по вот этой части «utm_source=feedburner», они появляются после перехода с RSS-подписки. При этом страница ничем не отличается от обычной со ссылкой до знака вопроса. Поэтому, чтобы в Яндексе не было ненужных дублей, я просто закрыл подобные страницы дополнительной директивой.

Файл вверху действующий, так что можете смело использовать его у себя, нужно только заменить путь к сайту в sitemap.