Для успешного продвижения сайта в поисковых системах наличие актуальной карты сайта (Sitemap) является обязательным элементом SEO-оптимизации. В WordPress по умолчанию есть базовая поддержка Sitemap, однако для полноценной автоматизации их создания и обновления часто требуется использовать специальные инструменты и написать кастомный код. В этой статье мы подробно разберём, как автоматизировать процесс создания и обновления Sitemap в WordPress с помощью плагинов и собственных функций.
Что такое Sitemap и зачем её автоматизировать в WordPress
Sitemap — это файл в формате XML, который содержит структурированную информацию о страницах сайта для поисковых систем. Он помогает быстрее индексировать контент и улучшает SEO. Автоматизация создания Sitemap важна, чтобы при добавлении, обновлении или удалении контента карта сайта автоматически обновлялась, исключая необходимость ручного вмешательства и снижая вероятность ошибок.
Без автоматизации вы рискуете, что поисковые системы будут видеть устаревшую карту сайта, что негативно повлияет на индексацию новых или изменённых страниц.
В WordPress есть встроенный механизм Sitemap с версии 5.5, но он довольно базовый и не всегда покрывает все потребности. Поэтому часто применяют сторонние плагины или пишут кастомный код.
Популярные плагины для автоматизации Sitemap в WordPress
Yoast SEO
Один из самых популярных SEO-плагинов, который автоматически генерирует и обновляет Sitemap при любом изменении контента. Yoast SEO поддерживает исключение отдельных типов записей, таксономий и страниц из Sitemap, а также умеет работать с большими сайтами, разбивая Sitemap на части.
Чтобы активировать Sitemap в Yoast SEO, достаточно убедиться, что в настройках SEO > Общие > Функции включена опция Sitemap.
Google XML Sitemaps
Специализированный плагин для создания Sitemap. Он генерирует карту сайта и автоматически обновляет её при публикации новых постов или страниц. Плагин позволяет гибко настраивать, какие разделы сайта включать в Sitemap и с какой частотой обновления.
Rank Math
Современный SEO-плагин с поддержкой Sitemap. По умолчанию Rank Math генерирует Sitemap и автоматически обновляет их при изменениях. В настройках можно подробно указать, какие типы записей и таксономий включать или исключать.
Как создать кастомный автоматический Sitemap с помощью кода в WordPress
Если вы хотите реализовать собственный механизм Sitemap без плагинов или для специфических задач, можно написать кастомный код, который будет создавать и обновлять Sitemap при изменении контента.
Рассмотрим пример, как генерировать XML Sitemap и обновлять его при сохранении записи.
Шаг 1. Создаём функцию генерации Sitemap
function wpshab_generate_sitemap() {
$posts = get_posts(array(
'numberposts' => -1,
'post_type' => 'post',
'post_status' => 'publish'
));
$sitemap = '<?xml version="1.0" encoding="UTF-8"?>\n';
$sitemap .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n';
foreach ($posts as $post) {
$url = get_permalink($post->ID);
$lastmod = get_the_modified_date('c', $post->ID);
$sitemap .= "<url>\n";
$sitemap .= " <loc>{$url}</loc>\n";
$sitemap .= " <lastmod>{$lastmod}</lastmod>\n";
$sitemap .= "</url>\n";
}
$sitemap .= '</urlset>';
$upload_dir = wp_upload_dir();
$sitemap_path = $upload_dir['basedir'] . '/sitemap.xml';
file_put_contents($sitemap_path, $sitemap);
}
Эта функция собирает все опубликованные посты, формирует XML-код и сохраняет файл sitemap.xml в папку загрузок WordPress. Обратите внимание на использование формата даты ISO 8601 для <lastmod>, это важно для корректного восприятия поисковиками.
Шаг 2. Автоматически обновляем Sitemap при публикации и обновлении записи
function wpshab_update_sitemap_on_save($post_id) {
if (wp_is_post_revision($post_id)) {
return;
}
wpshab_generate_sitemap();
}
add_action('save_post', 'wpshab_update_sitemap_on_save');
Этот хук запускает генерацию Sitemap каждый раз, когда пост сохраняется или обновляется. Исключается генерация при сохранении ревизий для оптимизации.
Шаг 3. Добавляем ссылку на Sitemap в robots.txt
Чтобы поисковые системы знали, где находится Sitemap, добавим ссылку в файл robots.txt. Если вы не хотите редактировать файл вручную, можно сделать это программно через фильтр:
function wpshab_robots_txt_sitemap($output, $public) {
if ($public) {
$upload_dir = wp_upload_dir();
$sitemap_url = $upload_dir['baseurl'] . '/sitemap.xml';
$output .= "\nSitemap: {$sitemap_url}";
}
return $output;
}
add_filter('robots_txt', 'wpshab_robots_txt_sitemap', 10, 2);
Теперь поисковые системы смогут автоматически обнаружить актуальный Sitemap.
Дополнительные советы и рекомендации по автоматизации Sitemap
Как включить в Sitemap кастомные типы записей и таксономии
Если у вас есть кастомные типы записей (например, продукты или портфолио), их тоже стоит включать в Sitemap. Для этого в функции генерации нужно добавить дополнительные запросы:
$custom_posts = get_posts(array(
'numberposts' => -1,
'post_type' => array('product', 'portfolio'),
'post_status' => 'publish'
));
// Аналогично формируем ссылки и добавляем в Sitemap
Для таксономий (категорий, меток и кастомных таксономий) также можно получить термины и добавить их URL в Sitemap.
Как уменьшить нагрузку при обновлении Sitemap на больших сайтах
Если у вас большой сайт с тысячами записей, генерировать Sitemap при каждом сохранении может быть ресурсоёмко. В таких случаях лучше использовать отложенную генерацию через cron-задачи или обновлять Sitemap раз в определённый период.
Пример добавления wp_cron задачи:
function wpshab_schedule_sitemap_update() {
if (!wp_next_scheduled('wpshab_cron_update_sitemap')) {
wp_schedule_event(time(), 'hourly', 'wpshab_cron_update_sitemap');
}
}
add_action('wp', 'wpshab_schedule_sitemap_update');
function wpshab_cron_generate_sitemap() {
wpshab_generate_sitemap();
}
add_action('wpshab_cron_update_sitemap', 'wpshab_cron_generate_sitemap');
<Так Sitemap будет обновляться автоматически каждый час, снижая нагрузку на сервер.
Использование плагина Clearfy Pro для управления Sitemap
Если вы используете плагин Clearfy Pro, в нём есть расширенные возможности по автоматизации Sitemap и SEO-оптимизации. Плагин позволяет гибко исключать страницы из Sitemap, управлять частотой обновления и интегрируется с популярными SEO-плагинами.
Это отличный вариант для тех, кто хочет получить максимум контроля без написания кода.
Как проверить корректность и актуальность Sitemap
После настройки автоматического создания Sitemap важно регулярно проверять его корректность. Для этого используйте инструменты Яндекс.Вебмастер и Google Search Console. Там можно загрузить ссылку на Sitemap и проверить статус её индексации, ошибки и предупреждения.
Также полезно валидировать XML с помощью онлайн-сервисов, чтобы убедиться в правильной структуре.