Автоматическое создание Sitemap в WordPress с поддержкой Multisite

Для современных сайтов на WordPress карта сайта (Sitemap) — важный элемент SEO и удобства индексирования в поисковых системах. Особенно это критично для сетевых установок WordPress Multisite, где необходимо организовать корректное создание и обновление Sitemap для каждой подсайта в сети. В этой статье подробно разберем, как автоматизировать создание Sitemap в WordPress с поддержкой Multisite, какие плагины использовать, а также рассмотрим пример собственного решения с кодом.

Почему важно иметь Sitemap в WordPress Multisite

Sitemap помогает поисковым системам быстро понять структуру сайта, индексировать новые и обновленные страницы, а также улучшает ранжирование. В мультисайтовой среде каждая отдельная часть сети — это по сути самостоятельный сайт с уникальной структурой и контентом. Автоматическое создание Sitemap для каждого сайта мультисети позволяет:

  • Упростить работу поисковиков с множеством подсайтов;
  • Избежать дублирования контента и ошибок индексации;
  • Автоматически обновлять карту сайта при добавлении новых записей и страниц;
  • Управлять настройками карты сайта централизованно.

Без автоматизации администратору придется вручную создавать и обновлять Sitemap для каждого сайта, что неудобно и неэффективно.

Плагины для автоматического создания Sitemap с поддержкой Multisite

1. Yoast SEO

Yoast SEO — самый популярный SEO-плагин, который умеет автоматически генерировать Sitemap для каждого сайта в мультисети. Он создает XML-карту сайта, которая обновляется при добавлении новых записей, страниц, категорий и так далее. Для мультисайта достаточно активировать плагин в каждой подсайте, и Yoast создаст Sitemap для нее по адресу https://example.com/sitemap_index.xml.

Однако Yoast не предоставляет централизованного управления Sitemap для всей сети сразу, что может быть неудобно при большом количестве сайтов.

2. Google XML Sitemaps

Этот плагин также поддерживает мультисайтовые установки и генерирует карты сайта в XML-формате. Он более легкий, чем Yoast, и позволяет гибко настраивать включение/исключение определенных типов контента, приоритеты и частоту обновлений.

Для активации на мультисайте нужно включить плагин в каждой подсайте и настроить индивидуально.

3. WPGPT Sitemap (пример из WPShop)

Если вы используете плагины WPShop, можно рассмотреть специализированные решения, которые могут интегрироваться с вашим сайтом и обеспечивать генерацию Sitemap с учетом особенностей вашего контента и мультисайта.

Например, плагин WPGPT может помочь в автоматизации генерации контента и Sitemap с расширенными возможностями.

Как сделать собственный генератор Sitemap с поддержкой Multisite

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

Основные задачи скрипта:

  • Пройтись по всем сайтам сети;
  • Для каждого сайта получить список опубликованных записей и страниц;
  • Сформировать XML-карту сайта с учетом стандартов;
  • Сохранить файл Sitemap в корне каждого подсайта или в общей папке.
function wpfactory_generate_sitemap_for_multisite() {
    if (!is_multisite()) {
        return;
    }
    $sites = get_sites();
    foreach ($sites as $site) {
        switch_to_blog($site->blog_id);
        $posts = get_posts(array('post_type' => array('post','page'), 'post_status' => 'publish', 'numberposts' => -1));
        $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) {
            $permalink = get_permalink($post->ID);
            $lastmod = get_post_modified_time('c', true, $post->ID);
            $sitemap .= "<url>\n";
            $sitemap .= "  <loc>" . esc_url($permalink) . "</loc>\n";
            $sitemap .= "  <lastmod>" . esc_html($lastmod) . "</lastmod>\n";
            $sitemap .= "</url>\n";
        }
        $sitemap .= '</urlset>';
        $upload_dir = wp_upload_dir();
        $file_path = $upload_dir['basedir'] . "/sitemap-" . $site->blog_id . ".xml";
        file_put_contents($file_path, $sitemap);
        restore_current_blog();
    }
}

// Запускаем функцию по расписанию или вручную
wpfactory_generate_sitemap_for_multisite();

Этот пример демонстрирует базовый принцип. Для практического использования рекомендуем дополнительно добавить обработку ошибок, кэширование, уведомления и интеграцию с robots.txt.

Автоматизация обновления Sitemap с помощью WP-Cron

Чтобы Sitemap всегда был актуален, полезно запускать его генерацию по расписанию с помощью WP-Cron. Пример добавления задачи:

function wpfactory_schedule_sitemap_generation() {
    if (!wp_next_scheduled('wpfactory_generate_sitemap_event')) {
        wp_schedule_event(time(), 'hourly', 'wpfactory_generate_sitemap_event');
    }
}
add_action('wp', 'wpfactory_schedule_sitemap_generation');

add_action('wpfactory_generate_sitemap_event', 'wpfactory_generate_sitemap_for_multisite');

Так Sitemap будет обновляться каждый час автоматически, без участия администратора.

Как интегрировать Sitemap с robots.txt

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

function wpfactory_robots_sitemap($output, $public) {
    if (is_multisite()) {
        $upload_dir = wp_upload_dir();
        $sitemap_url = $upload_dir['baseurl'] . "/sitemap-" . get_current_blog_id() . ".xml";
        $output .= "\nSitemap: " . esc_url($sitemap_url) . "\n";
    }
    return $output;
}
add_filter('robots_txt', 'wpfactory_robots_sitemap', 10, 2);

Этот код добавит ссылку на Sitemap в robots.txt для каждого подсайта.

Итоги и рекомендации

Автоматическое создание Sitemap для WordPress Multisite — важная задача, повышающая индексируемость и SEO. Используйте проверенные плагины, такие как Yoast SEO или Google XML Sitemaps, если нужна простота. Для более гибкой и централизованной автоматизации можно написать собственное решение на PHP с интеграцией в WP-Cron и robots.txt.

Если хотите расширить функционал, обратите внимание на плагины из WPShop, которые могут помочь с SEO и управлением мультисайтом.

Оптимизация загрузки шаблонов в WordPress для повышения производительности
15.03.2026
Как отключить автоматическое сохранение в WordPress REST API без потери безопасности
15.07.2026
Как отключить и заблокировать XML-RPC в WordPress для защиты сайта
01.04.2026
Как найти и удалить дубли изображений в WordPress без потери данных
04.09.2026
Как использовать WPGPT для создания автоматического контента в WordPress
04.03.2026