noindex, nofollow — хак для плагина Yoast SEO

Иногда необходимо закрыть страницы таксономий на сайте WordPress от индексации поисковыми системами. Если вы используете плагин Yoast SEO, он по умолчанию проставляет метатег noindex, follow. Однако, если вы хотите, чтобы на определенных таксономиях использовалось значение noindex, nofollow, можно добавить следующий код в файл functions.php вашей темы:

Пример кода для установки noindex, nofollow:

// добавляем для нужных таксономий noindex
add_filter('wpseo_robots', 'artit_wpseo_robots', 10, 2);
function artit_wpseo_robots($robots_str, $index) {
    if (is_tax()) { // Проверяем, что это таксономическая страница
        $current_taxonomy = get_queried_object(); // Получаем текущий объект таксономии
        
        // Если текущая таксономия относится к temp_taxonomy или another_temp_taxonomy
        if (in_array($current_taxonomy->taxonomy, ['temp_taxonomy', 'another_temp_taxonomy'])) {
            return 'noindex, nofollow'; // Устанавливаем noindex, nofollow
        }
    }
    // Возвращаем значение по умолчанию для всех остальных случаев
    return $robots_str;
}
// добавляем для нужных таксономий noindex

Объяснение кода:

  1. Добавление фильтра wpseo_robots:
    • Функция add_filter('wpseo_robots', 'artit_wpseo_robots', 10, 2); добавляет фильтр для изменения значений robots в мета-тегах Yoast SEO. Этот фильтр будет вызывать функцию artit_wpseo_robots с двумя аргументами: текущей строкой robots и индексом.
  2. Функция artit_wpseo_robots:
    • Функция artit_wpseo_robots($robots_str, $index) обрабатывает значения для мета-тегов robots.
  3. Проверка, является ли текущая страница таксономией:
    • if (is_tax()) проверяет, что текущая страница является страницей таксономии.
  4. Получение текущего объекта таксономии:
    • $current_taxonomy = get_queried_object(); получает информацию об объекте текущей таксономии.
  5. Проверка конкретной таксономии:
    • if (in_array($current_taxonomy->taxonomy, ['temp_taxonomy', 'another_temp_taxonomy'])) проверяет, является ли текущая таксономия одной из указанных (temp_taxonomy или another_temp_taxonomy).
  6. Применение noindex, nofollow:
    • Если текущая таксономия совпадает с указанными, строка robots изменяется на noindex, nofollow, что запрещает индексацию и следование по ссылкам на странице.
  7. Возврат значения по умолчанию:
    • Если условие не выполнено, функция возвращает исходное значение robots, предоставленное Yoast SEO.

Таким образом, с помощью данного кода мы добавляем гибкое управление индексацией и атрибутами robots для конкретных таксономий.

Добавить комментарий