Sitemap-index представляет собой XML-файл, в котором перечислены не страницы, а другие карты сайта. Google читает индекс, затем каждую вложенную карту, затем адреса в них. Индекс нужен, когда в одной карте больше 50 000 адресов или 50 МБ, а полезен и раньше, чтобы разделить страницы по типам. Отправьте индекс один раз в Search Console, и Google сам пройдёт по вложенным картам.
Как выглядит sitemap-index
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://yoursite.com/post-sitemap.xml</loc>
<lastmod>2026-10-12</lastmod>
</sitemap>
<sitemap>
<loc>https://yoursite.com/product-sitemap.xml</loc>
</sitemap>
</sitemapindex>
Корневой элемент sitemapindex, а не urlset, и каждая запись указывает на файл карты. Уже вложенные карты содержат адреса страниц.
Sitemap и sitemap-index: разница
| Параметр | Sitemap | Sitemap-index |
|---|---|---|
| Корневой элемент | urlset | sitemapindex |
| Что перечисляет | Адреса страниц | Файлы карт |
| Лимит | 50 000 адресов, 50 МБ без сжатия | 50 000 карт |
| Обычное имя | sitemap.xml, post-sitemap.xml | sitemap_index.xml, sitemap.xml |
Зачем нужен sitemap-index
- Лимиты размера. Больше 50 000 адресов придётся делить.
- Понятные отчёты. Отдельные карты для статей, товаров и категорий показывают в Search Console, у какой группы проблемы с индексированием.
- Быстрые обновления. Пересобирать нужно только изменившуюся вложенную карту.
Sitemap-index в WordPress
Ядро WordPress отдаёт /wp-sitemap.xml. Популярные SEO-плагины заменяют его на /sitemap_index.xml с вложенными post-sitemap.xml, page-sitemap.xml и category-sitemap.xml. Отправляйте индекс, который собирает плагин, а не тот, что из ядра, и не держите включёнными оба.
Если sitemap_index.xml не найден
- Проверьте, какую карту сайт отдаёт на самом деле. Попробуйте
/sitemap.xml,/sitemap_index.xmlи/wp-sitemap.xml. - Пересохраните постоянные ссылки в WordPress. Правила перезаписи для карт часто ломаются после переезда.
- Проверьте плагины кеша и безопасности: они иногда блокируют XML или неправильно его кешируют.
- Посмотрите robots.txt. Карта не должна быть закрыта для Googlebot.
- Убедитесь, что сервер отдаёт 200 с типом содержимого XML, а не HTML-страницу.
Частые проблемы с sitemap-index
| Проблема | Решение |
|---|---|
| Вложенные карты отдают 404 | Пересобрать их; проверить настройки плагина и перезапись |
| Индекс ссылается сам на себя | Убрать ссылку на себя |
| Вложенные карты на другом хосте или протоколе | Держать все карты на одном каноническом хосте |
| Пустые вложенные карты | Исключить неиспользуемые типы контента |
| Вложенные карты полны адресов с noindex | Исключить эти типы контента или исправить их индексирование |
Как просканировать все страницы из sitemap-index
Отправка индекса в Search Console позволяет Google узнать обо всём, но в своём темпе. Когда страницы нужно просканировать раньше, пришлите индекс в @IndexForgeBot. Он пройдёт индекс до каждой вложенной карты и каждой страницы, проверит каждую как Googlebot и до подтверждения покажет, сколько можно проиндексировать. До 10 000 адресов за одну отправку, $0.01 за прошедший адрес. Подробнее про индексацию по sitemap.
Как Google обрабатывает sitemap-index
Когда вы отправляете индекс, Search Console показывает его со списком вложенных карт, у каждой свой статус и число обнаруженных адресов. Google может читать вложенные карты в разное время. Если одна постоянно сбоит, остальные всё равно обрабатываются, и это ещё одна причина делить по типам: один сломанный генератор не прячет всё остальное.
lastmod у записей индекса подсказывает, какая вложенная карта изменилась. Держите его честным, как и даты отдельных адресов, чтобы Google понимал, какие файлы стоит перечитать.
Какого размера делать вложенные карты
Лимит 50 000 адресов, но заполнять его не обязательно. Файлы поменьше быстрее пересобираются, и в них проще найти проблему. Многие крупные сайты держат вложенные карты по несколько тысяч адресов, сгруппированных по типу или дате.
Как делить карты
| Делить по | Для чего подходит |
|---|---|
| Типу контента | Большинства сайтов: статьи, страницы, товары, категории |
| Дате | Новостей и блогов с большими архивами |
| Разделу или языку | Больших сайтов с отдельными командами или локалями |
| Фиксированному размеру | Огромных каталогов, где типы не помогают |
Карты для картинок, видео и новостей
Специальные карты могут лежать в одном индексе с обычными. Данные о картинках и видео можно добавлять и прямо в обычные записи адресов. Карты для новостей нужны только изданиям, которые подходят для функций Google Новостей, и перечисляют статьи за последние два дня.
Как проверить sitemap-index вручную
curl -sI https://yoursite.com/sitemap_index.xml
curl -s https://yoursite.com/sitemap_index.xml | grep -o "<loc>[^<]*" | head
Первая команда должна вернуть 200 и тип содержимого XML. Вторая выведет вложенные карты. Откройте пару из них так же и убедитесь, что они отдают 200 и содержат адреса.
Sitemap-index при переезде
- Оставьте старую карту доступной на короткое время, чтобы Google увидел редиректы.
- Отправьте новый индекс, как только новые адреса заработали.
- В новых картах только новые конечные адреса, никогда не перенаправляющие.
- Следите за «Индексированием страниц» по каждой карте, чтобы убедиться, что переход прошёл.
Как собрать sitemap-index в коде
Если карты вы генерируете сами, индекс самая простая часть. Минимальный пример на Python:
from datetime import date
parts = ["post-sitemap.xml", "product-sitemap.xml"]
rows = "".join(
f"<sitemap><loc>https://yoursite.com/{p}</loc>"
f"<lastmod>{date.today()}</lastmod></sitemap>" for p in parts)
xml = ('<?xml version="1.0" encoding="UTF-8"?>'
'<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'
+ rows + '</sitemapindex>')
Ставьте lastmod каждой вложенной карты на момент, когда её содержимое действительно изменилось, а не на сегодняшнюю дату при каждом запуске.
Обычные адреса карт на разных платформах
| Платформа | Индекс | Вложенные карты |
|---|---|---|
| Ядро WordPress | /wp-sitemap.xml | /wp-sitemap-posts-post-1.xml |
| SEO-плагины WordPress | /sitemap_index.xml | /post-sitemap.xml, /page-sitemap.xml |
| Shopify | /sitemap.xml | /sitemap_products_1.xml |
Как следить за вложенными картами
- Каждая вложенная карта отдаёт 200 и корректный XML.
- Число адресов в Search Console совпадает с ожидаемым по каждому типу.
- Доля проиндексированных по каждой карте стабильна или растёт.
- Ни одна карта внезапно не опустела после обновления плагина или выкладки.
hreflang внутри sitemap
На многоязычных сайтах hreflang можно указывать не в head страницы, а в карте сайта, записями xhtml:link для каждой языковой версии. Работает так же, как в HTML, а на больших сайтах это проще держать согласованным. Каждая версия должна перечислять все остальные, включая саму себя.
Когда sitemap-index не нужен
Небольшому сайту на несколько сотен страниц хватит одного файла карты. Индекс добавляет структуру, но и больше файлов, за корректностью которых надо следить. Используйте его, когда приближаетесь к лимитам, когда нужны отчёты по типам в Search Console или когда CMS всё равно его собирает.
Проверка XML
Большинство ошибок в картах связаны с форматом: неэкранированный & в адресе, отсутствующее пространство имён, метка порядка байтов перед объявлением XML или HTML-страница ошибки вместо XML. Откройте каждый файл в браузере или валидаторе XML. Отчёт по sitemap в Search Console перечисляет конкретные ошибки и строки, где он их нашёл.
Sitemap-index и краулинговый бюджет
Sitemap-index не увеличивает объём сканирования. Он только помогает Google понять, что существует. На больших сайтах качество карты важнее её размера: тысячи адресов с редиректами или noindex приучают Google, что вашей карте нельзя доверять, и он меньше доверяет и хорошим записям.
Типичные ошибки при отправке sitemap-index в инструменты
Многие инструменты и сервисы ждут одну карту с адресами страниц. Если дать им индекс, некоторые читают только список вложенных файлов и сообщают «0 страниц» или «6 адресов», считая каждую вложенную карту страницей. Прежде чем верить числу, проверьте, заявлена ли у инструмента поддержка sitemap-index. @IndexForgeBot принимает и то, и другое: пришлите индекс, и он прочитает каждую вложенную карту, а потом покажет, сколько адресов страниц нашёл и сколько прошло проверку.
Короткий чек-лист по sitemap-index
- Индекс отдаёт 200 с типом содержимого XML.
- Каждая перечисленная в нём карта отдаёт 200 и содержит адреса.
- Все вложенные карты на том же хосте и протоколе, что и сайт.
- Ни одна карта не указана дважды, и индекс не ссылается сам на себя.
- Индекс указан в robots.txt и отправлен в Search Console.
- Во вложенных картах только индексируемые канонические адреса.
Что будет, если убрать вложенную карту
Удаление вложенной карты из индекса не убирает её страницы из Google. Страницы остаются в индексе, пока существуют и на них есть ссылки. Google лишь перестаёт использовать этот файл как источник обнаружения. Если страницы нужно убрать, им нужен noindex, 404 или 410 либо редирект, как и без всякой карты.
Сжатые карты
Вложенные карты можно отдавать как .xml.gz, чтобы экономить трафик на больших сайтах. Индекс перечисляет сжатые файлы напрямую. Следите, чтобы сервер отдавал правильный тип содержимого и не сжимал файл дважды: это частая причина ошибки «Не удалось прочитать файл Sitemap».
Как с первого взгляда отличить sitemap от sitemap-index
Откройте файл и посмотрите на первый элемент после объявления XML. <urlset> значит обычную карту с адресами страниц. <sitemapindex> значит индекс, ссылающийся на другие карты. По имени файла не понять: на многих платформах sitemap.xml это индекс.
Частые вопросы
Отправлять индекс или каждую вложенную карту?
Достаточно индекса. Вложенные карты Google прочитает из него.
Может ли sitemap-index содержать другой sitemap-index?
Нет. Вложенность не поддерживается. Индекс перечисляет карты, а карты перечисляют адреса.
Важен ли порядок карт в индексе?
Нет. По порядку в файле Google приоритеты не расставляет.
Можно ли сжимать вложенные карты gzip?
Да, .xml.gz поддерживается. Лимит 50 МБ относится к размеру без сжатия.
Чем sitemap.xml отличается от sitemap_index.xml?
sitemap.xml обычно содержит адреса страниц, sitemap_index.xml перечисляет другие карты. Но по имени формат не определить: на многих платформах sitemap.xml тоже индекс. Смотрите корневой элемент файла.
Какую карту отправлять в Search Console, если их несколько?
Индекс, если он есть. Google сам прочитает вложенные карты. Не держите одновременно включёнными карту ядра WordPress и карту SEO-плагина.
Можно ли отправить sitemap-index на индексацию целиком?
Да. @IndexForgeBot проходит индекс до каждой вложенной карты и страницы, проверяет их и показывает цену до отправки. Лимит одной отправки 10 000 адресов.
Почему Search Console показывает меньше адресов, чем в моей карте?
Отчёт показывает обнаруженные адреса, а дубли, адреса на другом хосте и ошибочные записи могут не учитываться. Сравните число адресов во вложенных картах с данными отчёта по каждой карте отдельно.
Нужно ли обновлять sitemap-index при каждой публикации?
Обновляться должна вложенная карта, в которую попала новая страница, и её lastmod в индексе. Если карты собирает CMS или плагин, это происходит автоматически.
Можно ли положить sitemap-index на другой домен?
Карты должны лежать на том же хосте, что и адреса в них, если только вы не подтвердили оба хоста в Search Console. Проще держать всё на одном каноническом домене.
Есть ссылки, которые застряли вне индекса?Бот сначала проверит каждый адрес и спишет $0.01 только за ушедшие ссылки. На старте 10 бесплатно.
Открыть бота