SEO-эксперт WLAD2
Владислав Островерх

WP расширение: блокировка видимости тегом «ноиндекс» поисковому краулеру

8 мин чтения
Задать вопрос автору

Плагин WordPress записывает в <head> страницы мета-тег noindex, nofollow с атрибутом name="yandex" — только при активации чекбокса в редакторе записи. YandexBot считывает директиву и исключает страницу из своего индекса; Googlebot директиву игнорирует, сохраняя позиции в Google без изменений. robots.txt — неэффективен: с 2023 года Яндекс официально подтвердил игнорирование Disallow при индексировании содержимого.

Сегодня я получил от Яндекса ответ, что они игнорируют теперь файл роботс и в случае если я хочу закрыть страницу и её содержимое от индексации, то мне нужно ставить такой <meta name=»yandex» content=»noindex, nofollow«/> либо http ошибку на страницу.

вдруг ваши закрытые страницы в robots.txt индексируется Яндексом и при это в Гугле вы их не хотите закрывать, то вот ниже PHP код плагина, который мне написал ChatGPT:

<?php
/**
* Plugin Name: Noindex-Nofollow Plugin
* Plugin URI: https://example.com/
* Description: WordPress plugin to add noindex/nofollow meta tags.
* Version: 1.0
* Author: GPT и я http://wlad2.ru
* Author URI: http://wlad2.ru
* Text Domain: noindex-nofollow-plugin
* License: GPL2
*/

// Add meta box to the post editor
function nnf_add_meta_box($post_type) {
$post_types = array(‘post’, ‘page’, ‘service’); // Добавить тип записи ‘service’ в массив
if (in_array($post_type, $post_types)) {
add_meta_box(‘nnf_meta_box’, ‘Noindex/Nofollow’, ‘nnf_render_meta_box’, $post_type, ‘side’, ‘high’);
}
}
add_action(‘add_meta_boxes’, ‘nnf_add_meta_box’);

// Render the meta box
function nnf_render_meta_box($post) {
$nnf_value = get_post_meta($post->ID, ‘nnf_meta_key’, true);
wp_nonce_field(‘nnf_meta_box_nonce’, ‘nnf_meta_box_nonce’);
?>
<label for=»nnf-checkbox»>
<input type=»checkbox» id=»nnf-checkbox» name=»nnf-checkbox» value=»noindex-nofollow» <?php checked($nnf_value, ‘noindex-nofollow’); ?> />
<?php _e(‘Add noindex/nofollow meta tags’, ‘noindex-nofollow-plugin’); ?>
</label>
<?php
}

// Save the meta box data
function nnf_save_meta_box_data($post_id) {
if (!isset($_POST[‘nnf_meta_box_nonce’]) || !wp_verify_nonce($_POST[‘nnf_meta_box_nonce’], ‘nnf_meta_box_nonce’)) {
return;
}

if (defined(‘DOING_AUTOSAVE’) && DOING_AUTOSAVE) {
return;
}

if (!current_user_can(‘edit_post’, $post_id)) {
return;
}

if (isset($_POST[‘nnf-checkbox’])) {
update_post_meta($post_id, ‘nnf_meta_key’, sanitize_text_field($_POST[‘nnf-checkbox’]));
} else {
delete_post_meta($post_id, ‘nnf_meta_key’);
}
}
add_action(‘save_post’, ‘nnf_save_meta_box_data’);

// Add the meta tags to the post/page header
function nnf_add_meta_tags() {
if (is_singular()) {
global $post;
$post_types = array(‘post’, ‘page’, ‘service’); // Добавить тип записи ‘service’ в массив
if (in_array($post->post_type, $post_types)) {
$nnf_value = get_post_meta($post->ID, ‘nnf_meta_key’, true);
if ($nnf_value === ‘noindex-nofollow’) {
echo ‘<meta name=»yandex» content=»noindex, nofollow» />’;
}
}
}
}
add_action(‘wp_head’, ‘nnf_add_meta_tags’);

Теперь в шаблоне админки и редактора страниц должен появится такой чекбокс:

ставим галочку

Теперь вы как вебмастер с легкостью можете помешать Яндексу индексировать страницы на CMS WordPress, который например могут быть дублем по интенту и по кластеру.

Этот модуль был написан из десятка итерация, первая версия работала идеально, но на старом сайте были дополнительные категории в которых оно не выводилось, пришлось просить GPT бота подшаманить и он справился. Вот первая версия code скрипта, вдруг кому поможет:

<?php
/**
* Plugin Name: Noindex-Nofollow Plugin
* Plugin URI: https://example.com/
* Description: WordPress plugin to add noindex/nofollow meta tags.
* Version: 1.0
* Author: Your Name
* Author URI: https://example.com/
* Text Domain: noindex-nofollow-plugin
* License: GPL2
*/

// Add meta box to the post editor
function nnf_add_meta_box() {
add_meta_box(‘nnf_meta_box’, ‘Noindex/Nofollow’, ‘nnf_render_meta_box’, ‘post’, ‘side’, ‘high’);
add_meta_box(‘nnf_meta_box’, ‘Noindex/Nofollow’, ‘nnf_render_meta_box’, ‘page’, ‘side’, ‘high’);
}
add_action(‘add_meta_boxes’, ‘nnf_add_meta_box’);

// Render the meta box
function nnf_render_meta_box($post) {
$nnf_value = get_post_meta($post->ID, ‘nnf_meta_key’, true);
wp_nonce_field(‘nnf_meta_box_nonce’, ‘nnf_meta_box_nonce’);
?>
<label for=»nnf-checkbox»>
<input type=»checkbox» id=»nnf-checkbox» name=»nnf-checkbox» value=»noindex-nofollow» <?php checked($nnf_value, ‘noindex-nofollow’); ?> />
<?php _e(‘Add noindex/nofollow meta tags’, ‘noindex-nofollow-plugin’); ?>
</label>
<?php
}

// Save the meta box data
function nnf_save_meta_box_data($post_id) {
if (!isset($_POST[‘nnf_meta_box_nonce’]) || !wp_verify_nonce($_POST[‘nnf_meta_box_nonce’], ‘nnf_meta_box_nonce’)) {
return;
}

if (defined(‘DOING_AUTOSAVE’) && DOING_AUTOSAVE) {
return;
}

if (!current_user_can(‘edit_post’, $post_id)) {
return;
}

if (isset($_POST[‘nnf-checkbox’])) {
update_post_meta($post_id, ‘nnf_meta_key’, sanitize_text_field($_POST[‘nnf-checkbox’]));
} else {
delete_post_meta($post_id, ‘nnf_meta_key’);
}
}
add_action(‘save_post’, ‘nnf_save_meta_box_data’);

// Add the meta tags to the post/page header
function nnf_add_meta_tags() {
if (is_singular()) {
$nnf_value = get_post_meta(get_the_ID(), ‘nnf_meta_key’, true);
if ($nnf_value === ‘noindex-nofollow’) {
echo ‘<meta name=»yandex» content=»noindex, nofollow» />’;
}
}
}
add_action(‘wp_head’, ‘nnf_add_meta_tags’);

Также это решение может спасти вас, если вы ранее пытались решить всё через каноническую ссылку, но Яндекс их воспринимает по настроению.

В это модуле, нет никаких параметров, просто закинули в папку по имени noindex-nofollow-plugin и он фурычит.

Сперва я конечно пытался найти плагин который уже делает такие запреты и был сильно расстроен , но не решение этой задачи. Написал в чаты (это современные форумы), но и там мне не подсказали на готовый плагин.

Может хоть теперь, я избавлюсь от ряда противных ссылок.

Моё тестирование на запрет пока закончилось на версии 6.2 WP и самой свежей версии — ставим галочку и наслаждаемся.

Допустим ты всё еще не понял, то выше код делает блок ботам, точнее одному отдельному боту поисковика Яндекс и это прям нужно под SEO оптимизацию.

Наверно ты искал эту страницу по запросам:

  • плагин под wordpress <meta name=»yandex» content=»noindex, nofollow»/>;
  • Вордпресс только под нужные страницы <meta name=»yandex» content=»noindex, nofollow» />;
  • wordpress function add_yandex_meta_tag() { if ( is_page( 384 ) ) { echo ‘<meta name=»yandex» content=»noindex, nofollow» />’;

Ключевые слова, которые имеют отношение к сути поста: к ссылкам, links, настроить, инструменты, позволяет, отображения, дублирование, выводить, аудит, проиндексировано, фильтр, editor, выводится, расширение, трафик, структура, разрешено.

Быстрый SEO-парсер Владислава Островерха — инструкция в Telegram
Владислав Островерх
Владислав Островерх / автор cтатьи

Автор закрытого текстового анализатора с парсингом LSI, BM25-таблицей и косинусной близостью. SEO-специалист — продвигаю сайты через текстовые факторы ранжирования.

По всем вопросам в Телеграм

Последние статьи

cms wordpress, Внутренняя оптимизация, мой софт, техническая оптимизация, Технологии
Обсуждение

Есть вопрос или свой опыт?

Дополните материал своим примером или задайте вопрос. Комментарии загрузятся только после нажатия.

Обсуждаем статью: WP расширение: блокировка видимости тегом «ноиндекс» поисковому краулеру