Как создать динамический Sitemap в WordPress с помощью YoastSEO

Для эффективного SEO вашего сайта на WordPress очень важно иметь правильно настроенный Sitemap. Плагин YoastSEO автоматически генерирует Sitemap, но как сделать его динамическим и адаптируемым под ваши нужды? В этой статье мы подробно разберём, как создать и настроить динамический Sitemap в WordPress с помощью YoastSEO, а также рассмотрим примеры кода для расширения функционала.

Что такое динамический Sitemap и зачем он нужен

Sitemap — это файл, в котором перечислены URL вашего сайта для упрощения работы поисковых систем. Динамический Sitemap — это такой Sitemap, который автоматически обновляется при добавлении, изменении или удалении контента на сайте. Это важно, чтобы поисковики всегда видели актуальную структуру сайта и быстрее индексировали новые страницы.

YoastSEO генерирует Sitemap по умолчанию и обновляет его при изменениях, но иногда необходимо кастомизировать его под особенности сайта. Например, исключить определённые типы записей, добавить пользовательские URL или изменить приоритеты страниц.

Динамический Sitemap помогает повысить скорость индексации и улучшить SEO-показатели, особенно на больших сайтах с частым обновлением контента.

Настройка стандартного Sitemap в YoastSEO

Чтобы включить или проверить стандартный Sitemap от YoastSEO, перейдите в админке WordPress в раздел SEO > Общие > Функции и убедитесь, что опция XML-карты сайта включена.

По умолчанию Sitemap доступен по адресу https://ваш-сайт.ru/sitemap_index.xml. Он содержит ссылки на Sitemap для разных типов контента (записи, страницы, категории и т.д.).

Если вы хотите исключить определённые типы записей или таксономии, это можно сделать в настройках YoastSEO в разделе SEO > Поиск в результатах > Типы записей и Таксономии.

Пример исключения пользовательского типа записи из Sitemap

Если у вас есть кастомный тип записи portfolio, и вы не хотите, чтобы его страницы попадали в Sitemap, добавьте в functions.php вашей темы следующий код:

function yoastseo_exclude_portfolio_from_sitemap($value, $post_type) {
    if ('portfolio' === $post_type) {
        return false;
    }
    return $value;
}
add_filter('wpseo_sitemap_post_type_archive_links', 'yoastseo_exclude_portfolio_from_sitemap', 10, 2);

Этот фильтр отключит добавление архивов типа записи portfolio в Sitemap.

Создание своего динамического Sitemap с пользовательскими URL

Иногда необходимо добавить в Sitemap URL, которые не относятся к стандартным записям или страницам — например, ссылки на внешние ресурсы, отдельные файлы или динамические страницы. YoastSEO не поддерживает это напрямую, но можно расширить функционал с помощью хуков.

Для этого создадим свой Sitemap и добавим его в индекс YoastSEO.

Шаг 1. Добавляем свой Sitemap в индекс YoastSEO

В functions.php добавьте следующий код:

function yoastseo_add_custom_sitemap($sitemaps) {
    $sitemaps['custom'] = site_url('/custom-sitemap.xml');
    return $sitemaps;
}
add_filter('wpseo_sitemap_index', 'yoastseo_add_custom_sitemap');

Этот код добавит ссылку на ваш кастомный Sitemap в основной индекс Sitemap YoastSEO.

Шаг 2. Создаём обработчик для custom-sitemap.xml

Добавим обработчик запроса, который будет отдавать XML с нужными URL. Добавьте в functions.php:

function yoastseo_custom_sitemap_rewrite() {
    add_rewrite_rule('^custom-sitemap\.xml$', 'index.php?custom_sitemap=1', 'top');
}
add_action('init', 'yoastseo_custom_sitemap_rewrite');

function yoastseo_custom_sitemap_query_var($vars) {
    $vars[] = 'custom_sitemap';
    return $vars;
}
add_filter('query_vars', 'yoastseo_custom_sitemap_query_var');

function yoastseo_custom_sitemap_template() {
    if (get_query_var('custom_sitemap') == 1) {
        header('Content-Type: application/xml; charset=utf-8');
        echo '<?xml version="1.0" encoding="UTF-8"?>';
        echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';

        // Пример добавления пользовательских URL
        $urls = array(
            array(
                'loc' => site_url('/special-page/'),
                'lastmod' => date('c', strtotime('2024-06-01')),
                'changefreq' => 'monthly',
                'priority' => '0.8',
            ),
            array(
                'loc' => 'https://external-site.ru/page',
                'lastmod' => date('c'),
                'changefreq' => 'yearly',
                'priority' => '0.5',
            ),
        );

        foreach ($urls as $url) {
            echo '<url>';
            echo '<loc>' . esc_url($url['loc']) . '</loc>';
            echo '<lastmod>' . esc_html($url['lastmod']) . '</lastmod>';
            echo '<changefreq>' . esc_html($url['changefreq']) . '</changefreq>';
            echo '<priority>' . esc_html($url['priority']) . '</priority>';
            echo '</url>';
        }

        echo '</urlset>';
        exit;
    }
}
add_action('template_redirect', 'yoastseo_custom_sitemap_template');

После добавления этого кода нужно обновить правила перезаписи (перейдите в админке в «Настройки > Постоянные ссылки» и нажмите «Сохранить изменения» без изменений).

Проверка и отладка Sitemap

После настройки динамического Sitemap важно удостовериться, что он корректно отображается и содержит все нужные URL. Для этого:

  • Откройте https://ваш-сайт.ru/sitemap_index.xml и убедитесь, что там есть ссылка на ваш кастомный Sitemap.
  • Перейдите по ссылке на кастомный Sitemap https://ваш-сайт.ru/custom-sitemap.xml и проверьте корректность XML.
  • Используйте инструменты Google Search Console для отправки Sitemap и мониторинга ошибок индексации.

Если Sitemap не отображается или появляется ошибка, проверьте корректность кода, права доступа и обновите правила перезаписи.

Советы по оптимизации Sitemap

Чтобы Sitemap работал максимально эффективно:

  • Разбивайте Sitemap на части, если у вас более 50 000 URL.
  • Обновляйте lastmod для страниц, когда они изменяются.
  • Используйте приоритеты и частоту обновления (priority и changefreq) осмысленно.
  • Исключайте из Sitemap страницы с низкой SEO-ценностью.

Заключение по динамическому Sitemap для WordPress с YoastSEO

Создание динамического Sitemap с помощью YoastSEO и дополнительных хуков позволяет гибко управлять структурой индексации сайта. Вы можете исключать ненужные страницы, добавлять нестандартные URL и оптимизировать под конкретные задачи SEO. Приведённые примеры кода помогут быстро внедрить эти изменения без сложных плагинов и сторонних сервисов.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Оптимизация категорий WordPress для YoastSEO: продвинутые методы и примеры кода
14.04.2026
Решение проблемы с необычными символами в YoastSEO для WordPress
19.02.2026
Как автоматизировать оптимизацию изображений в WordPress с помощью YoastSEO
06.02.2026
Как устранить проблемы с каноническими URL в WooCommerce и YoastSEO
22.05.2026
Как использовать YoastSEO для автоматического управления редиректами в WordPress
31.12.2025
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее