Как в вордпрессе убрать метатег для определенных страниц?

Ссылка скопирована
1 ответ

Здравствуйте. Мне нужно убрать мета-тег  <meta name="robots" content="index, follow"> с определенных страниц, например:  /?wpdParentID=767,  /?wpdParentID=1190,  /?wpdParentID=1276. Этот мета-тег прописывается с помощью плагина Yoast SEO и если в настройках отключить, то он уберется для всех страниц на сайте, а мне нужно только для этих. Помогите пожалуйста, а то появилось очень много дублей.

Дополнительно:

Ответы:

https://bydik.com/remove-yoast-seo-meta-tags/

  • Спасибо большое, попробую.
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Роман IT Ответ

Тег <meta name="robots" content="index, follow"> сам по себе не создает дубли. Если страницы с параметром ?wpdParentID=... попали в индекс, правильнее не просто убрать метатег, а отдать для таких URL noindex, follow или закрыть генерацию этих URL у источника. В Yoast SEO это можно сделать фильтром wpseo_robots.

Пример для functions.php дочерней темы или небольшого mu-plugin:

add_filter('wpseo_robots', function ($robots) {
    if (isset($_GET['wpdParentID'])) {
        return 'noindex, follow';
    }
 
    return $robots;
});

add_filter('wpseo_robots', function ($robots) { if (isset($_GET['wpdParentID'])) { return 'noindex, follow'; } return $robots; });

Если нужно сработать только для конкретных значений:

add_filter('wpseo_robots', function ($robots) {
    $blocked_ids = [767, 1190, 1276];
 
    if (isset($_GET['wpdParentID']) &amp;&amp; in_array(absint($_GET['wpdParentID']), $blocked_ids, true)) {
        return 'noindex, follow';
    }
 
    return $robots;
});

add_filter('wpseo_robots', function ($robots) { $blocked_ids = [767, 1190, 1276]; if (isset($_GET['wpdParentID']) &amp;&amp; in_array(absint($_GET['wpdParentID']), $blocked_ids, true)) { return 'noindex, follow'; } return $robots; });

После правки откройте проблемный URL в браузере и проверьте исходный код страницы: там должен быть noindex, follow. Если цель именно убрать тег полностью, у Yoast есть и другие фильтры, но для дублей это хуже: поисковику нужно явно сказать, что параметрические страницы не надо индексировать.

Перед внедрением на рабочем сайте проверьте решение на копии или хотя бы сделайте резервную копию изменяемого файла. После правки включите отображение ошибок, откройте проблемную страницу в обычном и приватном окне, проверьте консоль браузера и логи PHP. Если задача связана с WordPress, WooCommerce или ACF, дополнительно проверьте поведение после очистки кэша и после выхода из админки: часть ошибок видна только для незалогиненного пользователя.

Если код работает только в одном шаблоне, лучше не оставлять его разрозненно в нескольких файлах. Вынесите повторяемую логику в функцию, небольшой плагин или template part, а в шаблоне оставьте только вызов. Так проще поддерживать решение после обновления темы, плагинов и PHP.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно