Карта сайта (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 и удобства индексации. Используйте готовые решения или кастомные функции, адаптируя их под свои задачи.