SEO mit FeinCMS

SEO oder auch Search Engine Optimisation ist ein Thema mit welchem man sich im Web wohl oder übel auseinandersetzen muss.
FeinCMS resp. Django bieten einige praktische Funktionen für SEO an:

Sitemap generieren

Ein Sitemap.xml hilft den Webcrawlern der Suchmaschinen die Struktur eurer Seite zu verstehen. Ausserdem können darin auch noch andere Dinge angegeben werden wie zum Beispiel die Wichtigkeit einer Unterseite. Ich möchte jetzt nicht im Detail darauf eingehen, sondern nur zeigen wie dies aktiviert werden kann.
In der globalen URL Konfigurationsdatei (i.d.R. urls.py) muss folgender Code hinzugefügt werden:

from feincms.module.page.sitemap import PageSitemap
sitemaps = {'pages' : PageSitemap}

urlpatterns += patterns('',
   url(r'^sitemap\.xml$', 'django.contrib.sitemaps.views.sitemap',
       {'sitemaps': sitemaps}),
   )
Ausserdem muss das App noch zu den INSTALLED_APPS hinzugefügt werden, und zwar mit dem Namen
'django.contrib.sitemaps.views.sitemap'.

Für mehr Informationen hilft ein Blick in die FeinCMS Dokumentation.

Robots.txt angeben

In der Robots.txt kann festgelegt werden welche URLs die Crawler ignorieren sollen. Eine robots.txt mit folgendem Inhalt erlaubt das crawlen sämtlicher URLS:

User-agent: *
Allow: /

Damit die Crawler auch auf die Datei zugreifen können, lege ich diese im Templates Ordner ab und füge folgende Zeile zur urls.py hinzu:
 url(r'^robots\.txt$', direct_to_template, {'template': 'robots.txt', 'mimetype': 'text/plain'}),

SEO Extension aktivieren

Um für jede einzelne Page eurer Webseite eine eigene Meta-Description einfügen zu können, verwendet man am besten die SEO extension von FeinCMS. Dazu muss man in der models.py wo auch das Page Modul konfiguriert ist folgende Zeile hinzufügen:

Page.register_extensions(  'feincms.module.extensions.seo')

Um die Werte im Template auszugeben genügen folgende zwei Tags:

{{ feincms_page.meta_keywords }}
{{ feincms_page.meta_description }}

Labels: , , , , , ,