Sitemaps: помогаем поисковым системам индексировать ваш сайт

sitemaps-help-search-header

Поисковые роботы, какими умными алгоритмами они не были наделены, все равно — обычные программы. Которые к тому же должны кравлить целую тучу разных сайтов. Неудивительно, что об изменениях на вашем сайте робот может узнать через неделю после самих изменений. В случае с Гуглботом это особенно актуально для страниц с низким PageRank.

У вас есть не так много средств, чтобы управлять тем, как часто робот просматривает сайт. Да, есть HTTP-заголовок  Expires, но от него не так много пользы. Довольно часто приходится просто сидеть и ждать, пока поисковый робот почтит вас своим вниманием и переиндексирует именно эту страницу.

К счастью, появилась технология, с помощью которой вебмастер может самостоятельно указывать поисковой системе, какие страницы изменились, какие — нет, какие страницы и как часто следует индексировать. Тыкать поисковый бот носом, так сказать. Эта технология называется Sitemaps.



Архитектура Sitemap

Sitemap — это xml документ, который размещается на сервере и содержит информацию, помогающую поисковым ботам лучше кравлить сайт. Вот отрывок из моего сайтмапа:

<?xml version="1.0" encoding="UTF-8"?><br />
<?xml-stylesheet type="text/xsl" href="http://blog.undsoft.com/wp-content/plugins/google-sitemap-generator/sitemap.xsl"?><br />
<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"><br />
 <url><br />
   <loc>http://blog.undsoft.com/</loc><br />
   <lastmod>2009-01-14T16:49:53+00:00</lastmod><br />
   <changefreq>weekly</changefreq><br />
   <priority>1.0</priority><br />
 </url><br />
</urlset><br />

Как вы видите, все не так сложно. Сначала идет обычный для любого xml документа заголовок, затем с этим документом связывается xsl. В третьей сточке указывается xmlns — простанство имен для xml документа.

Что это все за буковки? :) Что ж, если в целом, то xml — это документ, которые содержит данные в определенном формате. Данные могут быть абсолютно любыми, в данном случае — это информация о страницах сайта. Xsl для xml — это как таблица стилей для веб-страницы. Xml содержит исключительно данные и это вполне подходит для программ, но если пользователь попытается открыть xml документ, не все браузеры смогут его отобразить, поскольку он, опять же, содержит только данные. Xsl — это то, что и определяет как пользователь увидит эти данные. Xsl — предаставление данных в xml. Это совсем не обязательно и нужно только для usability.

Xmlns уже более необходим. Как я уже говорил, данные в xml документы представлены в определенном формате. В зависимости от сферы применения документа, такой формат может быть разным. Xmlns и определяет этот формат. Другими словами, это набор правил для каждого xml, чтобы они были составлены одинаково — какие ключевые слова за что отвечают и как их следует интерпретировать.

Если все понятно, то двигаемся дальше. Дальше идет перечисление страниц сайта с указанием параметров:

  • loc — полный путь к  странице. Допускается использовать адреса только с того же домена.
  • lastmod — время последнего изменения страницы
  • changefreq — частота изменения страницы. Возможные значения: always, never, hourly, daily, weekly, monthly, yearly. Значение always означает, что это динамическая страница, которая изменяется при каждом запросе. Never следует использовать для архивных страниц.
  • priority — относительный «вес» страницы в сравнении с другими страницами вашего сайта. Принимает значения от 0 до 1. Вероятно, все, на что влияет данный параметр — это то, какую страницу поисковый бот просмотрит раньше, если изменилось несколько с разным значением priority.

Перечисляем все нужные URL и Sitemap готов. В одном Sitemap может быть до 50,000 адресов и он сам может весить не более 10 мегабайт. Если вам нужно больше — создайте еще один сайтмап и объедините их в Sitemap index.

Готовый Sitemap рекомендуется размещать в корне домена, а в robots.txt включать указание на него в виде строчки: Sitemap: <полный путь к Сайтмапу>.

Также вам следует понимать, что Sitemap — это просто способ указать поисковой системе как лучше кравлить ваш сайт. Другими словами, Sitemap носит рекомендательный характер. Это не означает, что бот будет кравлить ваш сайт так часто, как вы указали, или что он вобще будет кравлить все указанные страницы. Точно так же, нет никакого смысла указывать всем страницам приоритет равный 1, так как этот параметр относительный.

Даем знать поисковикам

Поисковые системы узнают о Sitemap по строчке в robots.txt, однако некоторым из них можно сообщить вручную. Например, у Google есть Webmaster Tools, которые и позволяют вам добавить сайтмап, узнать какие другие сайты ссылаются на ваш, были ли ошибки при индексировании и тому подобное. Похожими возможностями обладает сервис от Яндекса.

Когда что-нибудь меняется у вас на сайте, а значит должен поменяться и Sitemap, вы можете просто дождаться очередной переиндексации, а можете и самостоятельно известить поисковую систему о том, что Sitemap изменился. У Гугла это можно сделать с помощью специальной кнопки в Webmaster Tools или с помощью специального запроса:

http://www.google.com/webmasters/tools/ping?sitemap=адрес_сайтмап

В ответ вы дожны получить код HTTP 200. Помните, что адрес сайтмап должен быть URL-кодирован.

Аналогичнно некоторые другие западные поисковые системы имеют похожие интерфейсы для извещения об измениях в Sitemap. Есть ли такая возможность для наших поисковиков — я не знаю.

После извещения, поисковый бот заново загрузит Sitemap, посмотрит, что в нем изменилось и в зависимости от этого переиндексирует или проиндексирует нужные страницы. Свежие страницы появляются в базе довольно быстро — значительно быстрее, чем без Sitemap.

Software

Никто не заставляет вас писать Sitemap самому. Во-первых, существуют специальные специальные сайты, которые за вас создадут Sitemap, такие как xml-sitemaps.com. Во-вторых, специальные скрипты для сервера. Вот тут есть скрипт на python от Google.

Но самое удачное на мой взгляд — интегрировать систему, которая будет создавать Sitemap, с вашим сайтом. Вы можете самостоятельно написать скрипт, который будет создавать Sitemap. Если вы используете какие-то CMS-решения, вполне возможно, что кто-то уже написал соответствующий plugin.

Для Wordpress существует хороший plugin — Google (XML) Sitemaps Generator. Он умеет самостоятельно создавать Sitemap после написания нового поста, расчитывать приоритет в зависимости от количества комментариев, извещать поисковые системы о том, что Sitemap изменился. Кроме того, он за вас пропишет путь к Sitemap в robots.txt. Очень удобно.

Пользуйтесь.




Также посмотрите:

blog comments powered by Disqus