
Это я к чему…
Помните почти одноименный мой пост про
А закрывать неугодные страницы мы будем моим любимым способом – при помощи метатегов.
Идеальный robots.txt для WordPress будет примерно такой:
User-Agent: * Allow: /wp-content/uploads Disallow: /wp- Host: site.ru Sitemap: http://site.ru/sitemap.xml |
Ничего удивительного, если вы читали пост про DLE, там роботс вообще из 4-х строк.
Страницы, которые необходимо исключить из индекса, мы будем закрывать метатегом <meta name=»robots» content=»noindex»>. Чем это лучше и почему более правильно — я писал очень крутую статью и не перестаю ее рекомендовать к изучению —
Я не рекомендую использовать плагины, которые делают что-то подобное. То о чем я хочу рассказать – только хардкор, только PHP. Для реализации сегодняшних правок нам потребуется добавить всего одну функцию в файл functions.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 // Главная страница блога. Та страница, на котороый выводятся последние записи блога. У меня, например это https://alaev.info/blog. См. в админке "Настройки" - "Чтение". Т.е. если в качестве страницы для вывода записей блога выбрана статическая страница, то при просмотре этой страницы, будет возвращено значение функции true. //is_singular() OR // Просмотр любых типов записей, включая одиночные посты, одиночные страницы, страницы прикрепленных файлов и т.д. //is_single() OR // Просмотр любого одиночного поста. Работает для любого типа постов, кроме страниц просмотра прикрепленных файлов и отдельных одиночных страниц //is_page() OR // Просмотр отдельной одиночной страницы (это то, что в разделе "Страницы" в админке) is_attachment() OR // Страницы просмотра прикрепленных файлов //is_paged() OR // Все и любые страницы пагинации is_search() // Страницы результатов поиска по сайту ) {echo "".'<meta name="robots" content="noindex,nofollow" />'."\n";} } add_action('wp_head', 'my_meta_noindex', 3); // добавляем свой noindex,nofollow в head |
Рекомендую добавить все это дело в самое начало файла functions.php, но если хотите, можете добавить в любое место.
К каждой строке кода есть понятное описание. Некоторые строки закомментированы (двойной слеш перед строкой), а какие-то нет – я примерно прикинул, какой должен быть оптимальный вариант, и сразу настроил код таким образом.
Чтобы активировать какое-то правило достаточно удалить двойной слеш, а чтобы запретить правило, соответственно, двойной слеш надо добавить. Все просто и понятно, не так ли?
Некоторые правила можно комбинировать, например, если надо закрыть только страницы пагинации при просмотре архивов (категории, теги, авторы и т.д.), а основные страницы пагинации (например, http://site.ru/page/2 и т.д.) оставить доступными для роботов, то правило будет такое: ( is_archive() && is_paged() ) OR
Чуть не забыл предупредить:
1. После закрытия страниц описанным выше способом, не забудьте удалить из robots.txt директивы, которые запрещают эти же страницы.
2. Некоторые плагины (например, All in One SEO, который установлен и у меня) тоже предлагают свои настройки индексации и добавляют мета-теги. Все это должно работать аналогичным путем. НО! Я рекомендую или отключить в плагине эти настройки, или не активировать их в моем коде. Мой способ гораздо более гибкий и настраиваемый, нежели плагины, потому выбор тут очевиден, не ошибитесь :)
3. Экспериментируйте, друзья, и найдите свой правильный robots.txt для WordPress! Но не забывайте проверять результаты своих экспериментов.
Ну все, дальше сами разберетесь :)
PS Все, что вы делаете по этой инструкции – вы делаете на свой страх и риск. И если вы вдруг полностью запретите индексацию сайта, то я тут не причем!
PPS По предыдущему опыту я вас предупреждаю — не смейте мне в комментариях выкладывать полностью содержание своего robots.txt и спрашивать правильный ли он и как дальше жить! Такие комменты я буду сразу удалять. Если хотите совета, то, в крайнем случае, давайте ссылку на ваш роботс.
Спасибо за внимание, задавайте вопросы, пишите комментарии, а главное отписывайтесь о работоспособности.