Карта сайта wp-sitemap.xml в WordPress
Поздравляю вас с тем, что на вашем сайте теперь будет -1 плагин! Потому что начиная с версии WordPress 5.5 в ядре движка будет присутствовать расширяемая карта сайта!
Карта сайта будет находиться по адресу /wp-sitemap.xml , если вы уже обновились и у вас версия WordPress 5.5 или выше, попробуйте перейти по этому адресу и у вас откроется XML карта сайта. Если же при переходе у вас возникла ошибка 501, то значит у вас не стоит расширение для PHP, SimpleXML, которое необходимо для создание XML карты сайта.
Индекс карты сайта может содержать до 20000 карт сайта, в каждой по 2000 страниц (можно изменить при помощи хука).
По умолчанию в карту сайта попадают все типы постов с параметрами public и publicly_queryable и таксономии, а также архивы автора и главная страница сайта.
Также рекомендую вам свой видеокурс по WordPress, в котором мы создаём тему для сайта на основе готовой HTML вёрстки с учётом всех последних изменений в движке – вот ссылка.
Как отключить карту сайта WordPress
Допустим я уже использую какой-то плагин для WordPress для создания карты сайта, например Google XML Sitemaps и он меня полностью устраивает, а тестить новый функционал у меня пока что нет времени.
Вы можете вставить этот код в functions.php вашей текущей или дочерней темы:
add_filter( 'wp_sitemaps_enabled', '__return_false' );
И всё, карта сайта по адресу /wp-sitemap.xml исчезнет и будет выводиться ошибка 404.
Кроме того, хочу добавить, что карта сайта будет выдавать 404 ещё в одном случае – когда в настроках чтения у вас включена галка «Попросить поисковые системы не индексировать сайт».
Также у вас есть возможность проверить, что карты сайта включены при помощи метода wp_sitemaps_get_server()->sitemaps_enabled() :
if( wp_sitemaps_get_server()->sitemaps_enabled() ) { // ага, включены }
Удаляем определённые карты сайта из индекса
У вас также есть возможность удалить определённые провайдеры (карты сайта) из индекса, например если вам не нужны в вашей карте архивы постов пользователей, то вы можете использовать этот фильтр-хук:
add_filter( 'wp_sitemaps_add_provider', 'truemisha_remove_user_sitemap', 25, 2 ); function truemisha_remove_user_sitemap( $provider, $name ) { if ( 'users' === $name ) { // если архивы пользователей, то отключаем return false; } return $provider; }
Убираем определённые типы постов из карты
Для этого существует отдельный хук wp_sitemaps_post_types , если вы например хотите исключить из вашей карты сайта тип постов Страницы, то код будет выглядеть так:
add_filter( 'wp_sitemaps_post_types', 'truemisha_remove_pages', 25 ); function truemisha_remove_pages( $post_types ) { unset( $post_types['page'] ); return $post_types; }
Удаляем определённые таксономии из карты сайта
Похожая ситуация и для таксономий – есть хук wp_sitemaps_taxonomies , при помощи которого легко это сделать, например для таксономии Теги post_tag :
add_filter( 'wp_sitemaps_taxonomies', 'truemisha_remove_tags', 25 ); function truemisha_remove_tags( $taxonomies ) { unset( $taxonomies['post_tag'] ); return $taxonomies; }
Добавляем теги XML
По умолчанию карта сайта в WordPress содержит только один тег XML – URL ( loc ).

Другие же теги, такие как changefreq , priority и lastmod не являются обязательными и поэтому не присутствуют сразу же по умолчанию в вашей карте, для оптимизации производительности.
Тем не менее вы можете добавить их в определённую карту при помощи этих хуков:
- wp_sitemaps_index_entry – основной индекс,
- wp_sitemaps_posts_entry – карта с типами постов,
- wp_sitemaps_taxonomies_entry – карта с таксономиями,
- wp_sitemaps_users_entry – архивы пользователей.
Хорошо, допустим я хочу добавить все три тега в карту с постами:
add_filter( 'wp_sitemaps_posts_entry', 'truemisha_add_sitemap_tags', 25, 2 ); function truemisha_add_sitemap_tags( $entry, $post ) { $entry[ 'priority' ] = '40%'; $entry[ 'changefreq' ] = 'Monthly'; $entry[ 'lastmod' ] = $post->post_modified_gmt; return $entry; }
Готово, внутри функции хука доступен также объект поста $post , благодаря которому мы легко получаем время последнего изменения.
Если вы попробуете добавить несуществующие теги, то это приведёт к уведомлению _doing_it_wrong.
Исключаем определённую страницу из карты сайта
Предположим, что вы создали какой-то SEO-плагин, который позволяет добавлять мета-тег robots noindex для определённых страниц или записей сайта, тогда вполне логично, что их нужно исключать и из карты сайта.
В этом вам поможет фильтр-хук wp_sitemaps_posts_query_args :
add_filter( 'wp_sitemaps_posts_query_args', 'truemisha_exclude_post', 25, 2 ); function truemisha_exclude_post( $args, $post_type ) { // ничего не делаем, если тип поста не post if ( 'post' !== $post_type ) { return $args; } // параметр post__not_in уже может существовать, не теряем его $args[ 'post__not_in' ] = isset( $args[ 'post__not_in' ] ) ? $args[ 'post__not_in' ] : array(); // исключаем запись с ID 1, да, которая "Привет мир" $args[ 'post__not_in' ][] = 1; return $args; }
Количество URL в одной карте
Ещё один хук, который хочу вам показать – это wp_sitemaps_get_max_urls . Как я уже сказал в самом начале урока – по умолчанию содержится 2000 URL в одной карте, но мы можем изменить это значение.
add_filter( 'wp_sitemaps_max_urls', 'truemisha_url_v_karte', 25 ); function truemisha_url_v_karte( $object_type ){ // $object_type может быть 'post', 'term', 'user' return 1000; }
Миша
Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.
Пишите, если нужна помощь с сайтом или разработка с нуля.
Как создать Sitemap (карту сайта) в CMS WordPress

Sitemap.xml — это карта сайта; перечень всех страниц, требующих индексации, используемый поисковыми ботами. В данной карте размещается информация об структуре, приоритетности сканирования и времени последнего обновления.
Это необходимый инструмент для ресурсов с разветвленной структурой поскольку чем больше уровней вложенных страниц, при отсутствии Sitemap.xml, тем медленнее новые страницы могут включаться в индекс сайта.
Помимо того, что боты поисковиков будут быстрее проводить сканирование сайта, они также смогут определять последовательность сканирования страниц на основе метаданных.
Данный файл нужен каждому сайту, будь то лендинг или новостной сайт.
Вам обязательно необходим Sitemap.xml если:
- Тяжелый многостраничный сайт. В данном случае существует большая вероятность того, что поисковые боты пропустят внесенные изменения либо недавно добавленные страницы;
- Большой объем видео и фото контента. Файл .xml помогает Google ботам находить и анализировать мультимедийный контент;
- Новый ресурс в котором немного внешних ссылок на него;
- У сайта большой архив страниц не связанных между собой.
Можно обойтись без Sitemap.xml в случаях:
- Небольшой ресурс (меньше чем 500 страниц, которые должны быть представлены в результатах поиска);
- Организована внутренняя перелинковка в результате чего поисковые боты свободно переходят в разделы по ссылкам с основной страницы.
- Мало или отсутствует мультимедийный контент. Либо нет необходимости в показе их в результатах поиска.
Разница между XML и HTML
Помимо XML существует также HTML карта. Отличие в том, что вторую помимо поисковых ботов могут использовать также юзеры для ориентирования по сайту. Это полноценная отдельная страница с перечнем разделов ресурса.
XML более популярны, хотя и не доступны для юзера. Сейчас разработчики сайтов стараются отходить от использования HTML карты и повышать юзабилити путем понятного и комфортного использования сайта без карты сайта.
Поскольку карты HTML отходят на второй план, разбирать мы будем sitemap.xml.
Далее мы расскажем как настроить карту сайта на самой популярной CMS WordPress.
Как настроить Sitemap для WordPress
Перед тем как начать настройку карты, обратим ваше внимание, что существуют ограничения по лимиту в 50.000 адресов в файле sitemap и общий размер файла не больше 50 МБ.
Если данного лимита вам недостаточно, данный момент можно решить созданием нескольких карт сайта и одной основной картой, которая будет включать себя все остальные карты. Тем самым, вы сможете увеличить количество размещаемых URL.
Есть множество плагинов для создания и управления sitemap.xml, они имеют разный функционал. Мы предоставим наш список рекомендаций.
Установить плагины можно прямо в админ панели WordPress разделе Плагины — Добавить новый. В поисковой строке введите название плагина и в окне искомого нажмите Установить и в списке установленных плагинов активировать его.

Google XML Sitemaps
Хорош тем, что карта создается по основным требованиям стандартов Google. При этом Яндекс, Bing, Yahoo и другие поисковики так же свободно могут использовать его для получения информации для сканирования.
Плагин поддерживает все типы страниц, сгенерированных WordPress, а также настраиваемые URL-адреса.
После создания карты сайта новые статьи автоматически будут добавляться в файл sitemap.xml.
По дефолту генерирует несколько файлов sitemap такие, как основную, статические страницы (страница с контактами или информацией такие как контакты и информация о компании) и страница статей. Поэтому он идеально подойдет для ресурсов, которые планируют развиваться и расти и могут не беспокоится о лимите на один файл.
Для работы с настройками sitemap.xml, перейдите в раздел Настройки ⟶ XML-Sitemap.
Тут у вас будет возможность настраивать приоритет сканирования, определять частоту обновления страниц, удалять и добавлять страницы (в пункте Содержание карты).
Не забудьте после внесенных изменений обновить параметры.
Yoast SEO
Yoast SEO подходит только для Google, Yandex не поддерживается. Это хороший плагин для общего управления SEO. Имеет ограниченный функционал по настройке Sitemap. Предлагаемые параметры можно только включить или отключить. Google XML Sitemaps в данном плане имеет более гибкую структуру.
Плагин обычно автоматически генерирует XML-карту сайта сразу после установки. Также создает сразу несколько файлов и группирует их в файле индекса.

Чтобы посмотреть карту сайта, перейдите в раздел SEO — Общие — Yoast SEO settings. В общих настройках Yoast SEO перейдите на вкладку «Функции». Щелкните вопросительный знак для функции XML Sitemap. Затем нажмите «Просмотреть карту сайта XML».

Доступность карты сайта для поисковиков
Согласно рекомендациям Google сделать доступный файл Sitemap можно несколькими способам
Отправьте файл через интерфейс специального отчета.
Выполните запрос ping. В браузере или командной строке отправьте запрос GET на приведенный ниже адрес, указав полный URL файла Sitemap и убедившись, что этот файл доступен: https://www.google.com/ping?sitemap=FULL_URL_OF_SITEMAP
Пример: https://www.google.com/ping?sitemap=https://example.com/sitemap.xml
Вставьте в любом месте файла robots.txt строку с путем к файлу Sitemap (она будет обнаружена при следующем сканировании файла robots.txt).
Пример: Sitemap: https://example.com/my_sitemap.xml
Если вы используете Atom или RSS и хотите уведомить о внесенных вами изменениях не только Google, но и другие поисковые системы, сделайте это с помощью протокола WebSub.
developers.google.com
Вывод:
Sitemap.xml важный элемент в индексации. Большинство плагинов для WordPress позаботилось о том, чтобы его создание и настройка была не затруднительной. А с WordPress тарифами от Hostpro это проще простого. Мы всегда с радостью поможем с вашими задачами и вопросами.
Настройте карту вашего сайта и удобно работайте с добавлением новых страниц и контента на сайте.
Обращаем ваше внимание, что наличие карты сайта не гарантирует полноценной индексации всех страниц сайта. Поскольку для индексации Google требует чтобы сайт имел сложенную внутреннюю структуру ссылок. Поэтому помимо генерации карты сайта позаботьтесь чтобы внутренние и внешние ссылки указывали на определенный элемент на карте сайта.
Как найти карту сайта
Карта сайта (или список страниц) — это файл, где перечислены все URL-адреса вашего сайта, которые должны индексироваться поисковыми системами, такими как Google. WordPress.com автоматически создаёт карту сайта в формате XML.
В этом руководстве
- Locate Your Sitemap
- News Sitemaps
- Sitemap Shortcode
Как найти карту сайта
Чтобы быстро получить доступ к карте своего веб-сайта, добавьте /sitemap.xml в конце его адреса. Например, yourgroovydomain.com/sitemap.xml или yourgroovysite.wordpress.com/sitemap.xml .
Чтобы найти карту сайта, выполните следующие действия.

- Откройте консоль вашего сайта.
- Перейдите в раздел Инструменты → Маркетинг.
- Перейдите на вкладку Посещаемость в верхней части страницы.
- Прокрутите страницу до раздела Карты сайта.
Первый URL-адрес — это стандартная карта сайта, обычно используемая для того, чтобы поисковые системы могли включать ваш сайт в результаты поиска. Мы также предоставляем карту новостей сайта.

Если в настройках конфиденциальности вашего сайта выбрано значение «Публичный» и опция Запретить поисковым системам индексировать этот сайт не выбрана, поисковые системы автоматически найдут карту вашего сайта и будут использовать её для индексирования сайта. WordPress.com автоматически отправляет обновление поисковым системам при каждом обновлении или удалении страницы или записи.
На карте вашего сайта может быть не более 1000 недавно обновлённых записей.
Карты новостей сайта
Карты новостей сайта похожи на стандартные карты сайта для поисковых систем, но предназначены для Google Новостей — службы агрегатора новостей, разработанной Google. В карты новостей сайта включаются записи, опубликованные за последние 48 часов.
Для размещения в Google Новостях веб-сайт должен быть предварительно одобрен Google. После одобрения новостные веб-сайты смогут отправлять карту новостей сайта в Google Новости.
Шорткод карты сайта
Шорткод
Pages
Categories

Чтобы отобразить этот список на любой странице своего сайта, вставьте блок «Шорткод» и введите шорткод
Pages
Categories
Карта Сайта WordPress
В Версии WordPress 5.5 была наконец-то добавлена поддержка карты сайта в ядро. Плагин Google XML Sitemaps и ему подобные больше не нужны.
- Как работает Карта сайта WordPress
- Создание своего Провайдера
- Как изменить URL карты сайта
Оглавление:
- Знакомство
- Что по умолчанию попадает в Карту сайта?
- Максимальное кол-во ссылок в Карте
- Не работает Карта сайта WordPress, 501 ошибка?
- Ссылка на карту сайта в файле robots.txt
- Отключение Карты сайта WordPress
- Добавление элементов в карту сайта
- Удаление элементов Карты сайта
- Отключение Провайдера целиком (всех таксономий, юзеров, типов постов)
- Отключение типа записи (поста, страницы)
- Отключение таксономии (рубрики, метки)
- Исключение отдельных url (url записи, рубрики, метки)
- Удалим отдельные Записи из Карты сайта
- Удалим Термины из Карты сайта
- Удалим отдельных Юзеров из Карты сайта
- Как проверить Включена ли карта сайта
- Как проверить Находимся ли мы на странице карты сайта?
- Дополнительные поля (теги) для Карты сайта
- Рассмотрим все подробнее
- Классы, Функции, Хуки
- Заметки
- Оптимизируем WP_Query внутри карт сайта
Знакомство
Главная страница Карты Сайта WordPress находится по адресу /wp-sitemap.xml . Она содержит ссылки на карты ссылок. Альтернативные адреса с которых отредиректит на правильный адрес: sitemap.xml или /sitemap-xml .

И уже каждая карта ссылок содержит ссылки на страницы сайта.

Что по умолчанию попадает в Карту сайта?
Только публичные типы постов или таксономий, а также страницы постов авторов. Публичный тип или нет определяется параметрами public и publicly_queryable при регистрации типа записи или таксономии.
Максимальное кол-во ссылок в Карте
Главная (index) страница может содержать максимум 50 000 карт (ссылок на карты). Это значение изменить нельзя, оно находится в приватном свойстве WP_Sitemaps_Index::$max_sitemaps.
Каждая карта ссылок может содержать максимум 2 000 ссылок на странице. Это значение меняется через хук wp_sitemaps_max_urls:
# Изменим макс. кол-во ссылок в каждой карте ссылок. # Возможные значение $object_type: post, term, user add_filter( ‘wp_sitemaps_max_urls’, ‘kama_sitemap_max_urls’, 10, 2 ); function kama_sitemap_max_urls( $num, $object_type )
Изменение кол-ва макс. ссылок влияет на кол-во ссылок пагинации на главной странице Карты сайта. Например, если у нас всего 500 постов, то по умолчанию будет всего одна карта ссылок для всех постов. Но если мы изменим максимум на 100. То на индексной странице появится 5 ссылок на Карты постов.
Не работает Карта сайта WordPress, 501 ошибка?
XML Карта Сайта WP работает на основе PHP расширения SimpleXML. Если его нет у вас на сервере, то при переходе на страницу карты сайта вы получите 501 ошибку.
Ссылка на карту сайта в файле robots.txt
Ссылка https://домен/wp-sitemap.xml добавляется в конец файла robots.txt автоматически. Но только, если у вас нет физического файла robots.txt в корне сайта. Т.е. robots.txt должен создаваться динамически. Подробнее о динамическом файле robots, читайте в функции do_robots().
Пример правильного создания динамического файла robots.txt для WordPress смотрите по этой ссылке.
Отключение Карты сайта WordPress
Если на сайте установлен плагин или код, который уже создает карту сайта и Карта сайта от WordPress уже не нужна, то её можно отключить. Для этого вставьте следующий код в functions.php темы, в код плагина или куда-либо еще (впрочем, скорее всего, ваш плагин это уже сделал).
add_filter( 'wp_sitemaps_enabled', '__return_false' );
Теперь, если перейти по адресу /wp-sitemap.xml вы увидите 404 страницу.
Заметка: такое отключение не удаляет правила перезаписи для карт сайта, так как они нужны чтобы отдавать нужные ответы при отключенной карте сайта. Подробнее здесь.
Обратите внимание, что карта сайта WordPress отключается автоматически, если в настройках «Чтение» есть галочка «Попросить поисковые системы не индексировать сайт».

Добавление элементов в карту сайта
Чтобы добавить тип записи или таксономию в карту сайта WordPress, нужно сделать их публичными, для этого при регистрации нужно установить в true параметры public и publicly_queryable.
Чтобы добавить произвольные ссылки в карту сайта, нужно создать свой Провайдер.
Удаление элементов Карты сайта
Из коробки в WP есть три провайдера (поставщика) карт сайтов для разных типов: записи, таксономии, пользователи:
- posts — WP_Sitemaps_Posts<>
- taxonomies — WP_Sitemaps_Taxonomies<>
- users — WP_Sitemaps_Users<>
Удалять можно как самого провайдера карт сайтов, так и отдельный тип (отдельную карту «внутри» провайдера) или вообще отдельный элемент типа (ссылку «внутри» карты). Рассмотрим на примере таксономий. Можно отключить провайдера «taxonomies» и тогда все таксономий исчезнут из карты сайта, можно отключить отдельную таксономию и оставить остальные таксономии, или можно исключить отдельную рубрику (элемент) таксономии из списка ссылок.
Отключение Провайдера целиком (всех таксономий, юзеров, типов постов)
Провайдер — это общее понятие, которое включает в себя все типы. Например
- провайдер типа записи включает все типы записей.
- провайдер таксономии включает все типы таксономий.
Если отключить провайдера целиком, из карты сайта будут удалены все типы, например если отключить провайдера таксономий, то все типа таксономий (рубрики, метки, архивы пользователей) будут исключены из карты сайта.
# Отключение провайдера карт сайтов: пользователи и таксономии add_filter( 'wp_sitemaps_add_provider', 'kama_remove_sitemap_provider', 10, 2 ); function kama_remove_sitemap_provider( $provider, $name ) < $remove_providers = [ 'users', 'taxonomies' ]; // отключаем архивы пользователей if( in_array( $name, $remove_providers ) )< return false; >return $provider; >
Отключение типа записи (поста, страницы)
Например в карте сайта нам не нужен тип записи page .
# Удалим тип записи из карты сайта add_filter( ‘wp_sitemaps_post_types’, ‘wpkama_remove_sitemaps_post_types’ ); function wpkama_remove_sitemaps_post_types( $post_types )
Отключение таксономии (рубрики, метки)
Например в карте сайта нам не нужны метки (таксономия post_tag ).
# Удалим таксономии из карты сайта add_filter( ‘wp_sitemaps_taxonomies’, ‘wpkama_remove_sitemaps_taxonomies’ ); function wpkama_remove_sitemaps_taxonomies( $taxonomies )
Исключение отдельных url (url записи, рубрики, метки)
Элементы исключаются путем изменения параметров запроса WP_Query, WP_Term_Query через специальные хуки.
Заметка: Если после исключения отдельных элементов в карте сайта вообще не остается элементов для данного типа или провайдера, то тип или провайдер будет полностью исключен из карты сайта.
Удалим отдельные Записи из Карты сайта
Например посты с ID 12 и 24 не нужны нам в карте сайта (пусть они имеют метатег noindex ,
но в карте появляются), исключим их из Карты сайта.
add_filter( 'wp_sitemaps_posts_query_args', 'kama_sitemaps_posts_query_args', 10, 2 ); function kama_sitemaps_posts_query_args( $args, $post_type ) < if( 'post' !== $post_type )< return $args; >// учтем что этот параметр может быть уже установлен if( ! isset( $args['post__not_in'] ) ) < $args['post__not_in'] = array(); >// Исключаем посты foreach( [ 12, 24 ] as $post_id ) < $args['post__not_in'][] = $post_id; >return $args; >
Удалим Термины из Карты сайта
Например термины с ID 12 и 24 из таксономии cities имеют метатег noindex , исключим их из Карты сайта.
add_filter( 'wp_sitemaps_taxonomies_query_args', 'kama_sitemaps_taxonomies_query_args', 10, 2 ); function kama_sitemaps_taxonomies_query_args( $args, $taxonomy ) < if( 'cities' !== $taxonomy )< return $args; >// учтем что этот параметр может быть уже установлен if( ! isset( $args['exclude'] ) ) < $args['exclude'] = array(); >// Исключаем термины $args['exclude'] = array_merge( $args['exclude'], [ 12, 24 ] ); return $args; >
Удалим отдельных Юзеров из Карты сайта
Например нам не нужны юзеры с ID 12, 24.
add_filter( 'wp_sitemaps_users_query_args', 'kama_sitemaps_users_query_args' ); function kama_sitemaps_users_query_args( $args ) < // учтем что этот параметр может быть уже установлен if( ! isset( $args['exclude'] ) )< $args['exclude'] = array(); >// Исключаем юзеров $args['exclude'] = array_merge( $args['exclude'], [ 12, 24 ] ); return $args; >
Как проверить Включена ли карта сайта
Чтобы узнать Включена ли карта сайта, используйте такую проверку:
$is_sitemaps_enabled = wp_sitemaps_get_server()->sitemaps_enabled(); if( $is_sitemaps_enabled ) < // карты сайта WP работают >else< // карты сайта WP отключены >
Как проверить Находимся ли мы на странице карты сайта?
Как ни странно, но готовой функции вроде is_sitemap() или is_sitemap_page() в WordPress НЕТ (справедливо для WP 6.1).
Однако сделать это не сложно. Для этого нужно проверить текущий параметр запроса (это внутренний параметр, который устанавливается на хуке wp
/** * Checks if it is WordPress sitemap page. * * @return bool */ function is_sitemap_page() < global $wp_version; if( ! did_action( 'parse_request' ) )< _doing_it_wrong( __FUNCTION__, 'Can`t be called before `parse_request` hook.', $wp_version ); return false; >return (bool) sanitize_text_field( get_query_var( 'sitemap' ) ); >
add_action( 'wp', function() < if( is_sitemap_page() )< // это страница карты сайта. >> );
Дополнительные поля (теги) для Карты сайта
Добавим все дополнительные поддерживаемые теги для Карт записей (постов).
add_filter( ‘wp_sitemaps_posts_entry’, ‘wpkama_sitemaps_posts_entry’, 10, 2 ); function wpkama_sitemaps_posts_entry( $entry, $post )

Рассмотрим все подробнее
Протокол sitemaps поддерживает четыре атрибута для каждого элемента карты сайта (по умолчанию в WP используется только ). Остальные можно добавить через фильтры.
Вот что выводится по умолчанию в WordPress:
http://www.example.com/
Вот что поддерживается протоколом:
http://www.example.com/ 2005-01-01 monthly 0.8
loc(Обязательный) URL-адрес страницы. Этот URL должен начинаться с протокола (например, http). Должен быть меньше 2048 символов. lastmod
Дата последнего изменения файла. Дата должна быть в формате W3C Datetime:
- YYYY — 1997
- YYYY-MM — 1997-07
- YYYY-MM-DD — 1997-07-16
- YYYY-MM-DDThh:mmTZD — 1997-07-16T19:20+01:00
- YYYY-MM-DDThh:mm:ssTZD — 1997-07-16T19:20:30+01:00
Обратите внимание, что этот тег независим от заголовка If-Modified-Since (304) , который может возвращать сервер, и поисковые системы могут использовать информацию из обоих источников по-разному.
Как часто страница может меняться. Это значение предоставляет общую информацию для поисковых систем. Поисковики могут игнорировать эту информацию и заходить на страницу чаще или реже. Возможные значения:
- always — используется для страниц, которые изменяются при каждом обращении к ним.
- hourly
- daily
- weekly
- monthly
- yearly
- never — используется для архивированных URL-адресов.
Важность этого URL по отношению к другим URL-адресам. Значение указывается от 0.0 до 1.0 . Это значение не влияет на то, как ваши страницы сравниваются со страницами на других сайтах — оно только позволяет поисковым системам узнать, какие страницы вы считаете наиболее важными. Стандартный приоритет равен 0.5 .
Обратите внимание, что приоритет, который вы назначаете странице, вряд ли повлияет на положение Ваших URL-адресов на страницах результатов поисковой системы. Поисковые системы могут использовать эту информацию при выборе между URL-адресами на одном и том же сайте, поэтому вы можете использовать этот тег, чтобы увеличить вероятность того, что ваши самые важные страницы будут присутствовать в поисковом индексе.
Также, обратите внимание, что присвоение высокого приоритета всем URL-адресам вряд ли что-то улучшит. Поскольку приоритет является относительным, он используется только для выбора ботом какую страницу посетить в первую очередь между URL-адресами на вашем сайте.
| Все фильтры доп. XML тегов | |
|---|---|
| wp_sitemaps_posts_entry | Доп теги (поля) для URL Карт сайта записей (постов). |
| wp_sitemaps_taxonomies_entry | Доп теги (поля) для URL Карт сайта таксономий. |
| wp_sitemaps_users_entry | Доп теги (поля) для URL Карт сайта юзеров. |
| wp_sitemaps_index_entry | Доп теги (поля) для URL главной страницы карты сайта. |
Классы, Функции, Хуки
Для управления/изменения Карты сайта есть набор функций, классов и хуков. Ниже приведен список всех Функций, классов и хуков, которые связаны с Картой сайта WordPress.
| Функции | |
|---|---|
| wp_sitemaps_get_server() | Получает текущий экземпляр сервера Sitemaps. |
| wp_get_sitemap_providers() | Получает массив поставщиков карт сайта. |
| wp_register_sitemap_provider() | Регистрирует нового поставщика карты сайта. |
| wp_sitemaps_get_max_urls() | Возвращает максимальное количество URL-адресов для карты сайта. |
| Классы | |
|---|---|
| WP_Sitemaps<> | Основной класс отвечает за настройку перезаписей и регистрацию всех поставщиков. |
| WP_Sitemaps_Index<> | Создает главную страницу sitemap, на которой перечислены ссылки на все карты сайтов. |
| WP_Sitemaps_Provider<> | Базовый класс для расширения поставщиков карт сайта. Также содержит общие функциональные возможности. |
| WP_Sitemaps_Registry<> | Обрабатывает регистрацию поставщиков карт сайта. |
| WP_Sitemaps_Renderer<> | Отвечает за рендеринг данных sitemap в XML в соответствии с протоколом sitemap. |
| WP_Sitemaps_Stylesheet<> | Предоставляет таблицы стилей XSL для стилизации всех карт сайта. |
| WP_Sitemaps_Posts<> | Провайдер. Создает карты сайтов для типа объекта записи и его подтипов (пользовательские типы записей). |
| WP_Sitemaps_Taxonomies<> | Провайдер. Создает карты сайтов для типа объекта таксономия и его подтипов (пользовательские таксономии). |
| WP_Sitemaps_Users<> | Провайдер. Создает карты сайтов для типа объекта пользователь . |
| Общие хуки | |
|---|---|
| wp_sitemaps_enabled | Фильтрует, включены ли XML-карты сайтов или нет. |
| wp_sitemaps_max_urls | Фильтрует максимальное количество URL-адресов, отображаемых на карте сайта. |
| wp_sitemaps_init | Срабатывает при инициализации карт сайтов. |
| wp_sitemaps_index_entry | Фильтрует запись sitemap для главной страницы. |
| Хуки Поставщиков (Providers) | |
|---|---|
| wp_sitemaps_add_provider | Фильтрует поставщика sitemap перед его добавлением. |
| wp_sitemaps_post_types | Фильтрует типы записей для включения в карты сайтов. |
| wp_sitemaps_posts_entry | Фильтрует теги записи. |
| wp_sitemaps_posts_show_on_front_entry | Фильтрует теги домашней страницы. |
| wp_sitemaps_posts_query_args | Фильтрует параметры запроса WP_Query. |
| wp_sitemaps_posts_pre_url_list | Фильтрует список URL-адресов до его создания (замыкание). |
| wp_sitemaps_posts_pre_max_num_pages | Фильтрует макс. кол-во страниц страниц постов (замыкание). |
| wp_sitemaps_taxonomies | Фильтрует список таксономий. |
| wp_sitemaps_taxonomies_entry | Фильтрует теги элемента таксономии. |
| wp_sitemaps_taxonomies_query_args | Фильтрует параметры запроса получения элементов таксономии. |
| wp_sitemaps_taxonomies_pre_url_list | Фильтрует список URL таксономий до создания (замыкание). |
| wp_sitemaps_taxonomies_pre_max_num_pages | Фильтрует макс. кол-во страниц таксономий (замыкание). |
| wp_sitemaps_users_entry | Фильтрует теги пользователя. |
| wp_sitemaps_users_query_args | Фильтры параметры запроса юзеров. |
| wp_sitemaps_users_pre_url_list | Фильтрует список URL пользователей до создания (замыкание). |
| wp_sitemaps_users_pre_max_num_pages | Фильтрует макс. кол-во страниц юзеров (замыкание). |
Заметки
Оптимизируем WP_Query внутри карт сайта
По-умолчанию для вывода постов всех типов, класс WP_Sitemaps_Posts<> использует WP_Query и в результат отдаёт массив с объектами постов, тогда как в любом сценарии нам хватит одного лишь ID поста. Если у вас очень большое количество постов какого-либо типа, то вы можете обнаружить долгую генерацию отдельных карт. Код ниже позволяет изменить WP_Query, заставив его отдавать массив только с ID, что улучшит скорость генерации страницы и снизит нагрузку.
// Добавляем фильтр, чтобы WP_Query отдавал только массив id постов add_filter( ‘wp_sitemaps_posts_query_args’, ‘optimize_sitemap_posts_query’, 10, 1 ); function optimize_sitemap_posts_query( $args )
