WordPress Notes WP-team

Как отключить attachment-страницы из XML sitemap в WordPress и оставить в индексе только важные URL

На многих WordPress-сайтах в XML sitemap неожиданно попадают attachment-страницы — отдельные страницы вложений для изображений и файлов. Для поиска это обычно лишний слой URL: контента там мало, ценности для индексации почти нет, а sitemap начинает содержать мусорные адреса. Если задача — оставить в карте сайта только полезные страницы, attachment лучше убрать на уровне генерации sitemap, а не просто надеяться на robots.txt.

Когда это действительно проблема

Сценарий узнаётся быстро: в Google Search Console в отчёте по sitemap видны URL вида /attachment/ или страницы с медиа-файлами, а в индексе появляются страницы без нормального текста, заголовков и внутренней перелинковки. На небольшом сайте это выглядит как косметическая проблема, но на проектах с большим количеством изображений sitemap раздувается и усложняет контроль индексации.

Что обычно ломается

  • в sitemap попадают сотни или тысячи attachment-URL;
  • поисковик тратит обход на страницы без пользы;
  • в отчётах растёт число URL с низкой ценностью;
  • сложнее отслеживать, какие страницы реально должны индексироваться.

Диагностика: убедитесь, что проблема именно в attachment

Сначала проверьте, кто именно генерирует sitemap. В WordPress это может быть встроенный XML sitemap ядра, SEO-плагин или кастомный код темы. Если у вас включён стандартный sitemap WordPress, откройте /wp-sitemap.xml и посмотрите, есть ли там отдельные записи для attachment. Если sitemap отдаёт SEO-плагин, структура будет другой, но логика та же: нужно найти источник URL вложений.

Быстрая проверка через браузер или curl:

curl -I https://example.com/wp-sitemap.xml

Если карта сайта доступна и содержит разделы с вложениями, дальше имеет смысл проверить, не индексируются ли сами attachment-страницы. Для этого откройте несколько URL вложений и посмотрите, есть ли на них полноценный контент или только изображение и стандартный шаблон темы.

Как отключить attachment-страницы из XML sitemap

Если вы используете встроенный sitemap WordPress, самый надёжный способ — исключить тип записи attachment из генерации sitemap через фильтр wp_sitemaps_post_types. Это не ломает сайт и не требует правки ядра.

<?php
add_filter( 'wp_sitemaps_post_types', function( $post_types ) {
    if ( isset( $post_types['attachment'] ) ) {
        unset( $post_types['attachment'] );
    }

    return $post_types;
} );

Код можно добавить в functions.php дочерней темы или в собственный небольшой mu-plugin. Второй вариант надёжнее: он не зависит от смены темы.

Если sitemap генерирует SEO-плагин

У популярных SEO-плагинов есть свои настройки sitemap. В этом случае сначала проверьте интерфейс плагина: часто attachment можно отключить без кода. Это предпочтительнее, чем вмешиваться в фильтры, если плагин уже умеет делать нужную работу штатно. Если настройки нет, тогда ищите документацию именно к вашему плагину и используйте его фильтры, а не универсальные советы из интернета.

ПодходКогда подходитМинус
Настройка в SEO-плагинеЕсли плагин умеет исключать attachment штатноЗависит от конкретного плагина
Фильтр wp_sitemaps_post_typesЕсли используется встроенный sitemap WordPressНужно добавить код
robots.txtКак дополнительная мераНе убирает URL из sitemap

Пошаговое решение без лишнего риска

  1. Проверьте, кто генерирует sitemap: ядро WordPress или SEO-плагин.
  2. Сделайте резервную копию или внесите правку в staging-копии сайта.
  3. Исключите attachment из sitemap через настройку плагина или фильтр.
  4. Очистите кэш, если на сайте есть page cache, object cache или CDN.
  5. Переотправьте sitemap в Google Search Console и дождитесь переобхода.

Если нужно не только убрать attachment из sitemap, но и закрыть сами страницы от индексации, можно дополнительно настроить редирект attachment-страниц на файл изображения или на родительскую запись. Но это уже отдельная задача: не смешивайте её с удалением URL из sitemap.

Проверка результата после внедрения

После изменения откройте sitemap повторно и убедитесь, что раздела с attachment больше нет. Если sitemap кэшируется, проверьте не только страницу в браузере, но и ответ сервера после очистки кэша.

Что проверить вручную

  • в /wp-sitemap.xml нет ссылок на attachment;
  • в sitemap-индексах SEO-плагина отсутствуют медиа-URL;
  • в Search Console новый sitemap загружается без ошибок;
  • страницы вложений не получают новые внутренние ссылки из шаблона.

Дополнительно можно проверить конкретный URL вложения: если он всё ещё доступен, это не означает ошибку. Важно, чтобы он не попадал в карту сайта и не создавал лишний шум для индексации.

Частые ошибки и как их исправить

Отключили attachment в sitemap, но URL всё равно индексируются

Это нормально: удаление из sitemap не удаляет уже проиндексированные страницы. Если нужно убрать их из индекса, придётся отдельно настроить noindex или редирект. Sitemap — это подсказка для обхода, а не команда на удаление.

Правка в functions.php пропала после обновления темы

Значит, код добавили не туда. Для технических правок лучше использовать дочернюю тему или mu-plugin. Иначе любое обновление темы может вернуть attachment в sitemap.

Сайт использует SEO-плагин, а код на фильтр не сработал

Тогда вы правите не тот источник. Встроенный фильтр WordPress не влияет на sitemap, который генерирует сторонний плагин. Сначала определите источник XML, потом уже вносите изменения.

После правки sitemap не обновился

Чаще всего виноват кэш: серверный, плагин кэширования или CDN. Очистите все уровни кэша и проверьте ответ заново. Если sitemap отдаётся как статический файл, его тоже нужно пересобрать.

Что делать с безопасностью и производительностью

Не стоит закрывать attachment-страницы только через robots.txt, если они уже попали в sitemap. Поисковик может продолжать видеть URL в карте сайта, а сам запрет в robots.txt не всегда помогает убрать их из индекса быстро и предсказуемо. Лучше убрать источник URL и отдельно решить судьбу самих страниц.

Если на сайте много медиа, полезно периодически проверять, не создают ли темы и плагины новые attachment-ссылки в хлебных крошках, блоках галерей или списках последних файлов. Именно такие мелочи снова возвращают мусорные URL в обход.

Если вам нужен более широкий аудит дублей и лишних URL, имеет смысл смотреть не только на attachment, но и на архивы, пагинацию и служебные страницы. Для комплексной чистки сайта в экосистеме WPShop есть Clearfy Pro: https://wpshop.ru/plugins/clearfy.

Практический ориентир простой: если URL не несёт самостоятельной ценности для поиска, не должен быть в sitemap. А если уже индексируется — сначала уберите его из карты сайта, потом решайте, нужен ли редирект или noindex.

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше