Создание автоматической карты сайта (sitemap) в WordPress: пошаговое руководство

Карта сайта (sitemap) — важный элемент любой SEO-стратегии. Она помогает поисковым системам быстрее и эффективнее индексировать контент вашего сайта. В этой статье мы детально разберём, как создать автоматическую карту сайта в WordPress с помощью кода и популярных плагинов, а также рассмотрим практические примеры и советы по оптимизации.

Почему важна автоматическая карта сайта в WordPress

Ручное создание sitemap.xml неудобно и непрактично, особенно если сайт постоянно обновляется. Автоматизация позволяет:

  • Обновлять карту сайта при добавлении новых страниц, записей или таксономий без участия пользователя.
  • Управлять приоритетами и частотой обновления страниц.
  • Улучшать индексацию сайта поисковыми системами.
  • Повышать SEO-показатели и видимость сайта.

WordPress по умолчанию с версии 5.5 включает базовую XML-карту сайта, но она ограничена и не всегда покрывает все потребности. Поэтому многие разработчики создают кастомные решения или используют плагины.

Использование плагинов для создания карты сайта в WordPress

Yoast SEO — универсальный инструмент с картой сайта

Yoast SEO — один из самых популярных SEO-плагинов, который автоматически генерирует XML-сайтмап. Его преимущества:

  • Автоматическая генерация и обновление sitemap.xml.
  • Возможность исключать страницы, категории, метки.
  • Поддержка мультиязычных сайтов.

Для активации карты сайта в Yoast SEO перейдите в «SEO» — «Общие» — «Функции» и включите «XML-карты сайта».

Google XML Sitemaps — специализированный плагин

Этот плагин предназначен исключительно для создания и управления XML-картой сайта. Его особенности:

  • Гибкие настройки включения типов постов и таксономий.
  • Поддержка уведомления поисковых систем о новых изменениях.
  • Простота и лёгкость в использовании.

Рекомендуется, если вам нужна только карта сайта без дополнительных SEO-функций.

Создание кастомной карты сайта с помощью кода в WordPress

Если вы хотите контролировать процесс и оптимизировать карту сайта под свои задачи, можно написать собственный генератор sitemap. Ниже приведён пример такого решения.

Пример функции для генерации sitemap.xml

function wpeasy_generate_sitemap() {
  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">';

  // Получаем все опубликованные записи
  $posts = get_posts(array(
    'post_type' => 'post',
    'post_status' => 'publish',
    'numberposts' => -1
  ));

  foreach ($posts as $post) {
    setup_postdata($post);
    echo '<url>';
    echo '<loc>' . get_permalink($post) . '</loc>';
    echo '<lastmod>' . get_the_modified_date('c', $post) . '</lastmod>';
    echo '<changefreq>weekly</changefreq>';
    echo '<priority>0.8</priority>';
    echo '</url>';
  }
  wp_reset_postdata();

  // Добавим главную страницу
  echo '<url>';
  echo '<loc>' . home_url('/') . '</loc>';
  echo '<lastmod>' . date('c') . '</lastmod>';
  echo '<changefreq>daily</changefreq>';
  echo '<priority>1.0</priority>';
  echo '</url>';

  echo '</urlset>';
  exit;
}

Эта функция выводит XML с картой сайта, включая все опубликованные записи и главную страницу с соответствующими тегами.

Регистрация обработки запроса sitemap.xml

Чтобы WordPress корректно обрабатывал URL /sitemap.xml, добавим rewrite-правила и хук:

function wpeasy_add_sitemap_rewrite() {
  add_rewrite_rule('^sitemap\.xml$', 'index.php?wpeasy_sitemap=1', 'top');
}
add_action('init', 'wpeasy_add_sitemap_rewrite');

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

function wpeasy_template_redirect() {
  $sitemap = get_query_var('wpeasy_sitemap');
  if ($sitemap) {
    wpeasy_generate_sitemap();
  }
}
add_action('template_redirect', 'wpeasy_template_redirect');

После добавления этого кода обновите постоянные ссылки в админке, чтобы новые правила заработали.

Оптимизация и расширение карты сайта

Добавление пользовательских типов записей и таксономий

Чтобы включить в sitemap кастомные типы постов и таксономии, расширьте запросы в функции генерации:

$custom_posts = get_posts(array(
  'post_type' => array('post', 'page', 'your_custom_post_type'),
  'post_status' => 'publish',
  'numberposts' => -1
));

Итерируйте по ним аналогично стандартным записям.

Автоматическое уведомление поисковых систем о обновлении sitemap

Для ускорения индексации можно автоматически уведомлять Google и Bing при изменении сайта. Пример для уведомления Google:

function wpeasy_ping_search_engines() {
  $sitemap_url = home_url('/sitemap.xml');
  wp_remote_get('https://www.google.com/ping?sitemap=' . urlencode($sitemap_url));
  wp_remote_get('https://www.bing.com/ping?sitemap=' . urlencode($sitemap_url));
}
add_action('save_post', 'wpeasy_ping_search_engines');

Этот код отправляет запросы поисковикам после сохранения любой записи.

Использование плагина Clearfy Pro для настройки карты сайта

Если вы используете плагин Clearfy Pro, в нём есть удобный модуль управления sitemap. Среди его возможностей:

  • Выбор типов записей и таксономий для включения.
  • Исключение отдельных страниц или записей.
  • Настройка частоты обновления и приоритетов.
  • Оптимизация карты для ускорения индексации.

Clearfy Pro значительно упрощает создание и управление sitemap без необходимости писать код.

Рекомендации по использованию и тестированию карты сайта

После создания карты сайта обязательно:

  • Проверьте её на валидность с помощью валидатора XML или инструментов Google Search Console.
  • Добавьте ссылку на sitemap.xml в файл robots.txt: Sitemap: https://ваш-сайт.ru/sitemap.xml.
  • Следите за логами индексации в Google Search Console для выявления ошибок.
  • Регулярно обновляйте карту при изменениях структуры сайта.

Таким образом, автоматическая карта сайта в WordPress — ключевой инструмент для SEO и удобства индексации. Используйте готовые решения или кастомные функции, адаптируя их под свои задачи.

Как добавить собственные типы постов в WordPress с подробным примером
31.12.2025
Автоматическое удаление товаров без продаж в WooCommerce
28.06.2026
WooCommerce: как исправить ошибку отображения цены после изменения варианта товара
09.05.2026
WooCommerce: автоматическое изменение стоимости товара при изменении варианта
24.05.2026
Как создать уникальный виджет WordPress своими руками
21.11.2025