Руководство по XML Sitemap: создание, структура и лучшие практики
XML Sitemap: всё, что нужно знать
XML-карта сайта (sitemap) — это структурированный файл, помогающий поисковым системам обнаруживать, сканировать и индексировать страницы вашего сайта эффективно. Хотя поисковые системы могут находить страницы через ссылки, карта сайта предоставляет прямой маршрут ко всему важному контенту, гарантируя, что ничего не будет пропущено при сканировании.
Структура и формат карты сайта
XML-карты сайта следуют стандартизированному формату, определённому протоколом sitemaps.org. Каждая карта — это XML-документ со специфической структурой, которую поисковые системы могут обрабатывать.
Базовая структура
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://example.com/</loc>
<lastmod>2025-01-15</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://example.com/about</loc>
<lastmod>2024-12-01</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
Описание XML-тегов
| Тег | Обязательный | Описание |
|---|---|---|
<urlset> | Да | Корневой элемент, содержащий все записи URL |
<url> | Да | Контейнер для каждой отдельной записи URL |
<loc> | Да | Абсолютный URL страницы (обязательно с протоколом) |
<lastmod> | Нет | Дата последнего изменения в формате W3C datetime |
<changefreq> | Нет | Ожидаемая частота изменений (daily, weekly, monthly) |
<priority> | Нет | Относительный приоритет внутри сайта (от 0.0 до 1.0) |
Индексные файлы карт сайта
Для крупных сайтов, превышающих лимит в 50 000 URL на одну карту или 50 МБ размера файла, используется индексный файл, ссылающийся на несколько отдельных карт.
Структура индексного файла
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/sitemap-pages.xml</loc>
<lastmod>2025-01-15</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-blog.xml</loc>
<lastmod>2025-01-14</lastmod>
</sitemap>
</sitemapindex>
Создание карты сайта
Динамическая генерация
Для большинства сайтов предпочтительным подходом является динамическая генерация карт из базы данных или CMS. Это гарантирует, что карта всегда отражает текущее состояние контента.
// PHP: динамическая генерация карты сайта
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">';
$pages = $pdo->query("SELECT slug, updated_at FROM pages WHERE is_published = 1");
foreach ($pages as $page) {
echo '<url>';
echo '<loc>https://example.com/' . htmlspecialchars($page['slug']) . '</loc>';
echo '<lastmod>' . date('Y-m-d', strtotime($page['updated_at'])) . '</lastmod>';
echo '</url>';
}
echo '</urlset>';
Статический файл
Для небольших сайтов с редкими изменениями контента достаточно статического XML-файла, поддерживаемого вручную или генерируемого при сборке проекта.
Отправка карты сайта
Способы отправки
- Google Search Console — отправьте непосредственно через раздел Sitemaps подтверждённого ресурса
- Bing Webmaster Tools — отправьте через раздел Sitemaps подтверждённого сайта
- Ссылка в robots.txt — добавьте
Sitemap: https://example.com/sitemap.xmlв robots.txt - Ping-эндпоинты — программное уведомление поисковых систем после изменений контента
Интеграция с robots.txt
User-agent: *
Allow: /
Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/sitemap-blog.xml
Типичные ошибки
- Неканонические URL — каждый URL в карте должен быть каноническим (без дубликатов и редиректов)
- Заблокированные страницы — не включайте URL, заблокированные robots.txt или директивой noindex
- Устаревшие даты lastmod — обновляйте lastmod только при реальном изменении контента
- Отсутствие протокола — все URL должны быть абсолютными с префиксом SSL/TLS проверку:// или http://
- Превышение лимитов — не более 50 000 URL на файл и 50 МБ несжатого размера
- Страницы с ошибками — не включайте URL, возвращающие 404, 500 или другие ошибки
- Неправильная кодировка — используйте UTF-8 и корректно экранируйте спецсимволы XML (&, <, >)
- Игнорирование HTTPS — используйте HTTPS-адреса, если сайт работает по HTTPS
Специализированные карты сайта
Карты изображений
Карты изображений помогают поисковым системам обнаруживать изображения, которые не могут быть найдены при обычном сканировании, особенно загружаемые через JavaScript или CSS.
Видео-карты
Видео-карты предоставляют метаданные о видеоконтенте: заголовок, описание, длительность, URL миниатюры и дату истечения, обеспечивая расширенные результаты в поиске.
Новостные карты
Новостные карты предназначены для издателей Google News и включают статьи, опубликованные за последние 48 часов, с метаданными: название издания, язык и заголовок.
Мониторинг и обслуживание
- Регулярно проверяйте XML карты на соответствие спецификации схемы
- Отслеживайте статистику сканирования в Google Search Console на предмет проблем индексации
- Удаляйте URL, возвращающие 404 или статусы редиректов
- Автоматически обновляйте карты при изменении контента
- Используйте gzip-сжатие для больших карт для экономии трафика
- Анализируйте разницу между отправленными и проиндексированными URL для выявления проблем охвата
Заключение
Хорошо поддерживаемая XML-карта сайта — фундаментальный инструмент SEO, улучшающий эффективность сканирования и помогающий индексировать весь важный контент. Следуя правильной структуре, избегая типичных ошибок и поддерживая актуальность карты, вы предоставляете поисковым системам максимально чёткий маршрут к вашему контенту.
Проверьте ваш сайт прямо сейчас
Проверить →