Доброго времени суток дорогие друзья, в данной статье хотелось бы рассказать вам про правильный файл robots.txt для движка WordPress, а также про применение мета тега robots для закрытия страниц определенных от поисковиков. В этой статье мы сделаем правильный robots.txt без лишнего кода, а страницы которые неугодные нам в поиске скроем через наш любимый и действенный метатег robots (noindex, nofollow). За функцию и пример robots.txt спасибо Алаеву. Начнем по порядку.
Идеальный robots.txt для WordPress будет примерно такой:
User-Agent: * Allow: /wp-content/uploads Disallow: /wp- Host: site.ru Sitemap: http://site.ru/sitemap.xml |
Вот и всё с этим файлом. Достаточно будет этих 5 строк, если конечно вы не используете дополнительный функционал в виде плагинов, которые создают вам какие-то невозможны системы...
Теперь мы будем закрывать страницы от поисковиков при помощи правки в файле вашего шаблона - functinons.php. Применять мы будем с вами вот этот мета тега: <meta name="robots" content="noindex">. Почему именно он и в чем разница я рассказывать в этой статье не буду, кому интересно пишите в комментарии, я сделаю отдельную статью и распишу отличия их.
Добавляем в файл functinons.php:
/*** ДОБАВЛЯЕМ meta robots noindex,nofollow ДЛЯ СТРАНИЦ ***/ function my_meta_noindex () { if ( //is_archive() OR // Просмотр любых страниц архива - за месяц, за год, по категориям, по авторам, и т.д. //is_category() OR // Просмотр архива статей по категориям is_author() OR // Просмотр архива статей по авторам is_date() OR // Просмотр архива статей по любым датам //is_day() OR // Просмотр архива статей по дням //is_month() OR // Просмотр архива статей по месяцам //is_year() OR // Просмотр архива статей по годам is_tag() OR // Просмотр архива статей по тегам is_tax() OR // Просмотр архива статей по таксономии. Что это? //is_front_page() OR // Просмотр главной страницы сайта. То, что отображается на главной странице сайта http://site.ru/ См. в админке "Настройки" - "Чтение". Т.е. если в качестве главной выбрана статическая страница, то при просмотре главной страницы сайта и этой статической страницы, будет возвращено значение функции true. //is_home() OR // Главная страница блога. Та страница, на котороый выводятся последние записи блога. У меня, например это http://alaev.info/blog. См. в админке "Настройки" - "Чтение". Т.е. если в качестве страницы для вывода записей блога выбрана статическая страница, то при просмотре этой страницы, будет возвращено значение функции true. //is_singular() OR // Просмотр любых типов записей, включая одиночные посты, одиночные страницы, страницы прикрепленных файлов и т.д. //is_single() OR // Просмотр любого одиночного поста. Работает для любого типа постов, кроме страниц просмотра прикрепленных файлов и отдельных одиночных страниц //is_page() OR // Просмотр отдельной одиночной страницы (это то, что в разделе "Страницы" в админке) is_attachment() OR // Страницы просмотра прикрепленных файлов //is_paged() OR // Все и любые страницы пагинации is_search() // Страницы результатов поиска по сайту ) {echo "".''."\n";} } add_action('wp_head', 'my_meta_noindex', 3); // добавляем свой noindex,nofollow в head |
Настройки все подписаны, для включения тех или иных вам нужно убрать два слеша в начале "//", для отключения наоборот добавить. Добавлять рекомендую в самое начало файла, к примеру после <?php, на следующую строку. Те строки которые включены - это в целом оптимальный вариант для всех, но кому нужно настройте более детально под себя.
Некоторые правила из этой функции можно скомбинировать, например, если нам нужно закрыть от индексации только страницы с пагинацией (постраничная навигация) при просмотре архива, а основные страницы пагинации (например, http://site.ru/page/2 и т.д.) нужно оставить доступными для поисковиков, то настраиваем правила следующим образом: ( is_archive() && is_paged() ) OR
Посмотрим еще на один пример, нам нужно запретить все страницы с тегами, но для какого-то одного (для определенного) нужно оставить доступ, то в таком случае делаем следующее правило: ( is_tag() && !is_tag('tagname') ) OR
, где tagname - пишите название вашего тега. Вот и всё собственно, дальше думаю сами разберетесь.
И напоследок несколько рекомендаций по работе с данным кодом и вообще с этими правилам:
- После добавления функции в файл вашего шаблона, не забудьте убрать из robots.txt ненужные правила, все правила, которые повторяют код функции (которые запрещают те же страницы для поисковиков).
- Определенные плагины (например, All in One SEO) также предлагают подобную настройку индексации, и точно также добавляют эти самые мета-теги. Работает это в целом точно также, но править код не нужно уже. Однако, я рекомендую использовать код, что выше. Это более гибки вариант и более независимый.
- Также не советую использовать и плагин и правки кода в functions (они могут конфликтовать или дублировать код).
Вот собственно и конец статьи, если остались какие-то вопросы, то пишите в комментарии. Если хотите спросить правильный ли у вас robots или нет, то скидывайте ссылку на него (не выкладывайте его полностью, либо только под спойлер). Также при возникновении вопросов пишите в комментариях, будем искать ответ вместе...