Yandex & django sitemap

Сегодня столкнулся с тем, что yandex выдавал ошибку, когда я пытался скормить ему sitemap.xml через http://webmaster.yandex.ru/. Причина отказа, как было установлено, долгая генерация файла с картой сайта. Проблема решается просто: нужно кэшировать генерируемый sitemap: предварительно записать его в кэш и затем уже скармливать яндексу.

Если на сайте кэширования ранее не было вообще, то самый простой способ настроить кэш — это использовать файловый backend.

Пишем в settings.py:

CACHE_BACKEND = 'file:///tmp/domain.com'

В файле urls.py заворачиваем генерацию sitemap в cache_page декоратор

from django.views.decorators.cache import cache_page
from django.contrib.sitemaps.views import sitemap

from project.sitemaps import ProjectSitemap

sitemaps = {
    'site': ProjectSitemap,
}

urlpatterns = patterns('',
    (r'^sitemap.xml$', cache_page(sitemap, 60 * 30), {'sitemaps': sitemaps}),
Add post to:   Delicious Reddit Slashdot Digg Technorati Google
Make comment

Comments

Алексей 31.03.2009 12:40

Проблема не решена. Потом когда придет Яндекс во второй, третий раз, чтобы заново проинексировать sitemap, срок кэша истекет.

А что мешает генерировать с нужным периодом? Или же вообще добавить в крон генерацию.

Так не только яндекс sitemap забирает. Гугля. Яху, скорее всего, тоже. Ещё какие-нибудь черти :-)

На самом деле, что будет потом меня уже не сильно волнует, если яндекс один раз потерпит неудачу, надеюсь, придёт потом повторно. Главное, что удалось ему файл скормить в первый раз т.к. сайт новый совсем.

На Wordpress блогах делают так, генерят при каждом новом постинге. Вот тут бы тоже, подвесить на событие о новом посте.

Учитывая тот факт, что у меня время кэша 30 минут, то через тридцать минут после создания поста его ссылка заведомо будет в сайтмапе. Мне вообще показалось, что вы с пингом путаете )

Не пинг это для быстрой индексации нужен.)

Хы, я хоть и на WP, но об этом только сейчас услышал :)

Игорь 6.05.2010 18:26

ААААА!!!! ИСТЕЧЕТ, а не ИСТЕКЕТ!!! Извините, но я не могу удержаться. А вообще спасибо за решение — с такой проблемой не столкнулся, но лучше реализую=)

Я даже не знал об этом. Интересно, кешировать файл sitemap

Required. 30 chars of fewer.

Required.

captcha image Please, enter symbols, which you see on the image