4 нояб. 2007 г.

Blogger+Feedburner и загрузка Sitemap в Google Webmaster Tools

Многие блоггеры, выбравшие в качестве платформы для ведения своего блога сервис blogspot.com (Blogger), рано или поздно сталкиваются с некоторыми ограничениями, вызванными использованием «чужого» домена.

Упомянутые ограничения вызваны в основном тем, что пользователь не может свободно управлять файлами на хостинге, загружая полноценные скрипты (вроде того, что предлагает делать Sape.ru), а также создавать полноценные карты сайта.

Добавление карты в Google Webmasters Tools необходимо для того, чтобы робот Google видел все страницы нашего блога и поскорее (прям не терпится) их проиндексировал. В качестве такой карты для движка Blogger часто рекомендуют взять стандартный RSS-feed, расположенный по адресу http://BLOG.blogspot.com/rss.xml. Проблемы начинаются после того, как блоггер начинает использовать сервис Feedburner для ведения статистики по RSS-подписчикам. Для работы этого сервиса в Blogger есть специальная опция редиректа (Панель инструментов — Настройки — Канал сайта — «URL переадресации канала сообщений»), которая позволяет работать с Feedburner, но напрочь отрезает возможность добавления стандартного RSS-фида в качестве карты сайта в Google Webmasters Tools. Дело в том, что после редиректа фид уже выглядит не как http://BLOG.blogspot.com/rss.xml, а как http://feeds.feedburner.com/BLOG, что для Google Webmasters Tools выглядит уже подозрительно, в результате чего он не принимает такие карты сайтов. В общем-то сам движок Blogger не дурак, и с недавних пор каждый блог в корне содержит файл robots.txt со ссылкой на карту по умолчанию: http://BLOG.blogspot.com/feeds/posts/default?orderby=updated. Как нам удалось установить в процессе переписки в блоге "The Quixotic Engineer" (можете почитать обсуждение — любопытные идеи решения проблемы предлагались), если добавлять в Google Webmasters Tools URL вида http://BLOG.blogspot.com/rss.xml?orderby=updated, редирект не происходит. Казалось бы, вот оно, щастье.

Но не тут-то было. Оказалось, мы столкнулись с ещё одним ограничением. Сформированная таким образом карта сайта сообщает Гуглу информацию только о 25 последних постах. Частичным решением может быть обязательное добавление в шаблон стандартного виджета «BlogArchive». Он позволяет иметь ссылки на все посты блога с каждой его страницы. Таким образом, робот Google кое-как получает информацию о структуре сайте по 25 URL-ам сообщений.

Но, в общем-то, весь описанный геморрой, как обычно, вовсе оказался не нужен. Недавно я нашел правильное, на мой взгляд, и элегантное решение, позволяющее добавить в Google Webmasters Tools (GWT) карту блога без ограничений по количеству постов и всяких лишних извращений.

Мой перевод статьи-первоисточника, по традиции, вольный, я и публикую в этой статье.

Итак, приступим.

Подготовка карты блога для GWT

Чтобы передать в GWT полный фид блога, расположенного на сервисе Blogger, вам необходимо использовать фид из корня сайта: 

http://yourblog.blogspot.com/atom.xml
http://yourblog.blogspot.com/rss.xml

Естественно, необходимо заменить «yourblog» на соответствующую часть URL вашего блога, либо заменить «yourblog.blogspot.com» на URL вашего домена (если используется внешний домен).

Не важно, какой из фидов вы будете использовать, поскольку будут работать как «atom.xml», так и «rss.xml» с той лишь разницей, что используются различные форматы (в первом случае это Atom, во втором — RSS).

Отключение редиректа

Если используется опция редиректа фида (как описано выше), необходимо этот редирект пресечь. Делается это при помощи дополнительной опции:

atom.xml?redirect=false

Эта чудесная опция позволит предотвратить перенаправление фида на Feedburner и такой URL (http://yourblog.blogspot.com/atom.xml?redirect=false) может быть успешно указан в GWT.

Передача всех ваших постов

Ранее корневые виды в Blogger не позволяли применять никаких дополнительных параметров. Но, добавив обработку опции «redirect=false», разработчики открыли пути использования и других стандартных опций фидов в Blogger. Именно при помощи этих опций мы сможем засабмитить более 25 постов! Перво-наперво, оцените, сколько всего постов в вашем блоге (определить это количество можно на странице «Панель инструментов» — «Отправка» — «Изменить сообщения» выделив «Опубликованные» сообщения). После этого вы можете использовать параметры max-results и start-index, чтобы увеличить количество получаемых результатов, а также использовать несколько карт, если потребуется. Внимание: На данный момент Blogger ограничивает значение параметра max-results 500 элементами. Это ограничение уже менялось несколько раз как в сторону увеличения, так и в сторону уменьшения, поэтому оно все ещё может измениться. Сейчас ограничение равно 500, но было время, когда оно равнялось 100 записям.

Я буду использовать ограничение в 100 записей в своих примерах, но вы можете использовать и большее ограничение, если есть желание. Итак, для того, чтобы получить первые 100 постов, наш запрос будет выглядеть следующим образом:

atom.xml?redirect=false&start-index=1&max-results=100

Далее, если на моем блоге более 100 постов (сейчас у меня 105 сообщений), я могу создать ещё одну карту при помощи следующего URL:

atom.xml?redirect=false&start-index=101&max-results=100

Как вы заметили, нужно изменять значение параметра «start-index» на число, равное количеству получаемых в запросе записей. Итак, первая карта начиналась с первого поста и передавала в GWT 100 записей, вторая карта должна начинаться со 101-го (100+1) поста. Таким образом, мы создали карту для последующих 95 сообщений. Они будут автоматически учитываться Google, поскольку карты загружаются с определенной периодичностью (обычно раз в день).

Ниже приводится изображение карты моего блога в GWT, с которой я работаю почти месяц:

Сказав все это, остается добавить только две вещи. Первая состоит в том, что я не думаю, что все эти манипуляции сильно помогут (если вообще помогут). Блоги, размещенные на Blogger, несложно индексировать, поэтому, возможно, Google будет индексировать их также хорошо, как и без какой бы то ни было карты сайта. Второе: если вы хотели создать карту сайта не на основе RSS-фида при помощи какой-нибудь утилиты по генерации sitemap, тогда, в соответствии с недавним сообщением в Google Webmaster Central Blog, вы можете загрузить файл карты сайта на Blogspot через другой доверенный сайт (возможно, googlepages? я еще это не проверял).

Замечание от переводчика. Что касается меня, то я последовал этому руководству, добавив в GWT кучу sitemap на будущее, после чего не беспокоюсь больше на эту тему:

Подписаться на новые статьи:  RSS (Что это такое?) или Email