All articles, tagged with “sitemap”

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}),