Sitemaps — это протокол в формате XML , предназначенный для веб-мастера, чтобы информировать поисковые системы об URL-адресах на веб-сайте , которые доступны для веб-сканирования . Он позволяет веб-мастерам включать дополнительную информацию о каждом URL-адресе: когда он последний раз обновлялся, как часто он меняется и насколько он важен по отношению к другим URL-адресам сайта. Это позволяет поисковым системам более эффективно сканировать сайт и находить URL-адреса, которые могут быть изолированы от остального содержимого сайта. Протокол Sitemaps — это протокол включения URL-адресов и дополняет robots.txt
протокол исключения URL-адресов.
Google впервые представил Sitemaps 0.84 в июне 2005 года, чтобы веб-разработчики могли публиковать списки ссылок со своих сайтов. [1] Google, Yahoo! и Microsoft объявили о совместной поддержке протокола Sitemaps в ноябре 2006 года. [2] Версия схемы была изменена на «Sitemap 0.90», но никаких других изменений внесено не было.
В апреле 2007 года Ask.com и IBM объявили о поддержке Sitemaps. [3] Также Google, Yahoo, MSN объявили об автоматическом обнаружении Sitemaps через robots.txt
. В мае 2007 года правительства штатов Аризона, Калифорния, Юта и Вирджиния объявили, что будут использовать Sitemaps на своих веб-сайтах. [4]
Протокол Sitemaps основан на идеях [5] из «Удобных для сканеров веб-серверов» [6] с улучшениями, включая автоматическое обнаружение robots.txt
и возможность указывать приоритет и частоту изменения страниц.
Файлы Sitemap особенно полезны на веб-сайтах, где:
Формат Sitemap Protocol состоит из XML-тегов. Сам файл должен быть в кодировке UTF-8 . Sitemaps также могут быть просто текстовым списком URL-адресов. Они также могут быть сжаты в формате .gz.
Ниже показан пример файла Sitemap, который содержит только один URL-адрес и использует все необязательные теги.
<?xml version='1.0' encoding='UTF-8'?> <urlset xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns= "http://www.sitemaps.org/schemas/sitemap/0.9" > <url> <loc> https://example.com/ </loc> <lastmod> 2006-11-18 </lastmod> <changefreq> ежедневно </changefreq> <priority> 0.8 </priority> </url> </urlset>
Протокол Sitemap XML также расширен, чтобы обеспечить способ перечисления нескольких Sitemap в файле «Индекс Sitemap». Максимальный размер Sitemap в 50 МБ или 50 000 URL [8] означает, что это необходимо для больших сайтов.
Ниже приведен пример индекса Sitemap, ссылающегося на одну отдельную карту сайта.
<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd" xmlns= "http://www.sitemaps.org/schemas/sitemap/0.9" > <sitemap> <loc> https://www.example.com/sitemap1.xml.gz </loc> <lastmod> 2014-10-01T18:23:17+00:00 </lastmod> </sitemap> </sitemapindex>
Определения элементов приведены ниже: [8]
Поддержка элементов, которые не являются обязательными, может различаться в разных поисковых системах. [8]
Протокол Sitemaps позволяет Sitemap быть простым списком URL-адресов в текстовом файле. Спецификации файлов XML Sitemaps применяются также к текстовым Sitemaps; файл должен быть в кодировке UTF-8 и не может быть больше 50 МБ (несжатый) или содержать более 50 000 URL-адресов. Sitemaps, превышающие эти ограничения, должны быть разбиты на несколько Sitemaps с файлом индекса Sitemap (файл, который указывает на несколько Sitemaps). [9]
Syndication feed — это разрешенный метод отправки URL-адресов сканерам; это рекомендуется в основном для сайтов, которые уже имеют syndication feeds. Один из заявленных недостатков заключается в том, что этот метод может предоставлять сканерам только недавно созданные URL-адреса, но другие URL-адреса все еще могут быть обнаружены во время обычного сканирования. [8]
Может быть полезно иметь канал синдикации в качестве дельта-обновления (содержащего только самый новый контент) для дополнения полной карты сайта.
Если Sitemaps отправляются напрямую в поисковую систему ( pinged ), она вернет информацию о статусе и любые ошибки обработки. Подробности отправки будут различаться в зависимости от поисковой системы. Местоположение sitemap также можно включить в robots.txt
файл, добавив следующую строку:
Sitemap: <sitemap_location>
Это <sitemap_location>
должен быть полный URL-адрес карты сайта, например:
https://www.example.org/sitemap.xml
Эта директива не зависит от строки user-agent, поэтому не имеет значения, где она размещена в файле. Если на веб-сайте есть несколько файлов sitemap, в robots.txt
, или URL может просто указывать на основной файл индекса sitemap.
В следующей таблице перечислены URL-адреса отправки карты сайта для нескольких основных поисковых систем:
URL-адреса карты сайта, отправленные с помощью URL-адресов отправки карты сайта, должны быть закодированы в формате URL , например: замените :
(двоеточие) на %3A
, замените /
(косую черту) на %2F
. [8]
Файлы Sitemaps дополняют и не заменяют существующие механизмы сканирования, которые поисковые системы уже используют для обнаружения URL-адресов. Использование этого протокола не гарантирует, что веб-страницы будут включены в поисковые индексы, и не влияет на способ ранжирования страниц в результатах поиска. Конкретные примеры приведены ниже.
Файлы Sitemap имеют ограничение в 50 000 URL-адресов и 50 MiB (52 428 800 байт) на карту сайта. Карты сайта можно сжимать с помощью gzip , что снижает потребление полосы пропускания. Поддерживается несколько файлов Sitemap, при этом файл индекса Sitemap служит точкой входа. Файлы индекса Sitemap не могут содержать более 50 000 файлов Sitemap и должны быть не больше 50 MiB и могут быть сжаты. У вас может быть более одного файла индекса Sitemap. [8]
Как и во всех XML-файлах, любые значения данных (включая URL-адреса) должны использовать escape-коды сущностей для символов амперсанда (&), одинарной кавычки ('), двойной кавычки ("), меньше (<) и больше (>).
Лучшая практика оптимизации индекса sitemap для индексации поисковой системой — убедиться, что индекс ссылается только на sitemaps, а не на другие индексы sitemap. Вложение индекса sitemap в индекс sitemap недопустимо по мнению Google. [11]
Google поддерживает ряд дополнительных типов XML-карт сайта, выходящих за рамки протокола Sitemaps, чтобы позволить веб-мастерам предоставлять дополнительные данные о содержании своих веб-сайтов. Видео- и видеокарты сайта предназначены для улучшения возможностей веб-сайтов ранжироваться в поиске изображений и видео. [12] [13]
Карты сайта для видео содержат данные, связанные со встраиванием и автовоспроизведением, предпочтительные миниатюры для показа в результатах поиска, дату публикации, продолжительность видео и другие метаданные. [13] Карты сайта для видео также используются для того, чтобы поисковые системы могли индексировать видео, встроенные на веб-сайт, но размещенные на внешних ресурсах, например, на Vimeo или YouTube .
Карты сайта изображений используются для указания метаданных изображения, таких как информация о лицензировании, географическое местоположение и подпись к изображению. [12]
Google поддерживает тип карты сайта Google News для облегчения быстрой индексации срочных новостных тем. [14] [15]
В декабре 2011 года Google анонсировала аннотации для сайтов, которые хотят ориентироваться на пользователей на многих языках и, опционально, в странах. Несколько месяцев спустя Google объявила в своем официальном блоге [16] , что они добавляют поддержку указания аннотаций rel="alternate" и hreflang в Sitemaps. Вместо (единственной до тех пор опции) HTML-элементов ссылок опция Sitemaps предлагала множество преимуществ, включая меньший размер страницы и более простое развертывание для некоторых веб-сайтов.
Пример многоязычной карты сайта может выглядеть следующим образом:
Если, например, у нас есть сайт, ориентированный на пользователей английского языка через https://www.example.com/en
и пользователей греческого языка через https://www.example.com/gr
, до этого единственным вариантом было добавить аннотацию hreflang либо в заголовок HTTP, либо в виде элементов HTML в обоих URL-адресах, как показано ниже.
<link rel= "alternate" hreflang= "en" href= "https://www.example.com/en" /> <link rel= "alternate" hreflang= "gr" href= "https://www.example.com/gr" />
Но теперь в качестве альтернативы можно использовать следующую эквивалентную разметку в Sitemaps:
<url> <loc> https://www.example.com/en </loc> <xhtml:ссылка rel= "альтернативный" hreflang= "гр" href= "https://www.example.com/gr" /> <xhtml:ссылка rel= "альтернативный" hreflang= "ru" href= "https://www.example.com/en" /> </url> <url> <loc> https://www.example.com/gr </loc> <xhtml:ссылка rel= "альтернативный" hreflang= "гр" href= "https://www.example.com/gr" /> <xhtml:ссылка rel= "альтернативный" hreflang= "ru" href= "https://www.example.com/en" /> </url>
{{cite conference}}
: CS1 maint: несколько имен: список авторов ( ссылка )