Функции WordPress

Правильный robots.txt для WordPress и применение мета тега robots

Правильный robots.txt для WordPress Привет, друзья. Кое-кто в комментариях сегодня меня попросил написать пост про правильный robots.txt для WordPress. Я как-то даже смутился, потому что не представляю себе, как можно сделать robots неправильным. Наверное, все же можно, раз вы просите.
Это я к чему…

Помните почти одноименный мой пост про правильный robots.txt для DLE, он собрал очень много отзывов (почти 300 комментариев), как раз там меня и попросили реализовать аналог для WordPress. Ну, окей, я сделал это, написание функции заняло всего 5 минут. Поэтому я хочу вас познакомить сегодня с правильным robots.txt для WP с моей точки зрения.
А закрывать неугодные страницы мы будем моим любимым способом – при помощи метатегов.

Идеальный 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»>. Чем это лучше и почему более правильно — я писал очень крутую статью и не перестаю ее рекомендовать к изучению — robots.txt vs. мета-тег robots.

Я не рекомендую использовать плагины, которые делают что-то подобное. То о чем я хочу рассказать – только хардкор, только 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 и спрашивать правильный ли он и как дальше жить! Такие комменты я буду сразу удалять. Если хотите совета, то, в крайнем случае, давайте ссылку на ваш роботс.

Спасибо за внимание, задавайте вопросы, пишите комментарии, а главное отписывайтесь о работоспособности.

Статьи по теме

Кнопка "Вернуться к началу"
Закрыть

Обнаружен Adblock

Пожалуйста, подумайте о том, чтобы поддержать нас, отключив свой блокировщик рекламы!