Schon fast standardmäßig nehmen wir XMAP Erweiterung für das Erzeugen von Sitemaps. XMAP erlaubt beides, sowohl HTML als auch XML Sitemaps zu generieren – XML für die Suchmaschinen, HTML für die normalen Besucher. Diese Erweiterung ist von guter Qualität und wird ständig weiterentwickelt. Das Problem besteht aber in dem Aussehen der Sitemap-URL. Eine übliche URL für XMAP Sitemap sieht so aus: http://WEBSITE.com/index.php?option=com_xmap&view=html&id=3 Dieses URL kommt durch keine Validierung. Für dieses Problem gibt es folgende Lösungswege.
Lösung 1. Die Benutzung von SEF URL direkt in Joomla
Sie benutzen SEF URL von Joomla oder Ihrer SEO Erweiterung. Da muss man einfach eine Regel erstellen, dass dem realen URL ein SEF URL in der Art: http://WEBSITE.com/sitemap.xml entspricht. Leider funktioniert diese Lösung nicht immer, warum auch immer.
Lösung 2. Das dynamische Generieren der Sitemap-Datei über htaccess
Sie erzeugen ein PHP Script z.B. mit dem Namen sitemapgenerator.php mit dem folgenden Inhalt:
<?php
echo file_get_contents("http://WEBSITE.com/index.php?option=com_xmap&view=xml&id=1");
?>
id-Parameter entspricht hier dem Sitemap ID, welches man als XML haben möchte.
In der .htaccess direkt unter der Zeile „RewriteEngine On“ fügt man folgende Zeile ein.
RewriteRule http://WEBSITE.com/sitemap.xml /sitemapgenerator.php [L]
Lösung 3. Die Erzeugung von statischen XML Dateien mit Hilfe eines PHP Skripts
Für diese Lösung erstellt man eben ein kleines Skript:
<?php
$data = file_get_contents("http://WEBSITE.com/index.php?option=com_xmap&view=xml");
file_put_contents("/voller-PATH-zu-dem-web-root-ihrer-website/sitemap.xml", $data);
?>
Dieses Skript kann man auch als sitemapgenerator.php nennen und als Cron Job auf Ihrem Hosting einrichten. Für die Websites, die selten aktualisiert werden, reicht das tägliche Ausführen. Bitte vergessen Sie hier nicht, den vollen Path zu der Sitemap Datei anzugeben, sonst wird die Datei entweder in Ihrem Cron Job Ordner erzeugt oder schlimmer noch gar nicht.
Probleme mit mehrsprachigen Websites
Bei mehrsprachigen Websites kommt zwingend ein zusätzlicher GET-Parameter ins Spiel - „lang“
http://WEBSITE.com/index.php?option=com_xmap&view=html&id=3&lang=de
Je nachdem, ob SEF URLs ein- oder ausgeschaltet sind, benimmt sich die XMAP Erweiterung unterschiedlich. Komischerweise führt die Einschaltung von SEF URLs dazu, dass die Sprache als Filter verstanden wird. Es werden nur die URLs für die Artikel in der gewählten Sprache gezeigt, egal welche Menüs und in welcher Sprache laut XMAP für ein konkretes Sitemap-ID eingestellt sind.
In dieser Situation hilft die Erstellung von Sitemap-Index mit dem Namen „sitemap.xml“. Sitemap-Index ist die Datei, in der alle die Website betreffenden Sitemaps aufgelistet sind.
<sitemapindex>
<sitemap>
<loc>http://zinitsolutions.com/sitemap-de.xml</loc>
<lastmod>2012-01-23</lastmod>
</sitemap>
<sitemap>
<loc>http://zinitsolutions.com/sitemap-ru.xml</loc>
<lastmod>2012-01-23</lastmod>
</sitemap>
</sitemapindex>
Es wird also für jede Sprache eine eigene Sitemap erstellt und dann werden diese in den Sitemap-Index aufgenommen. Sollte Aufteilung nach den Sprachen funktionieren genauso für die HTML Sitemaps. Für die Erstellung von Sitemaps für jede Sprache kann man jede oben beschriebene Lösung nehmen. Viel Erfolg bei der Erstellung von Websites mit suchmaschinenfreundlichen URLs wünscht Ihnen Zinit Solutions GmbH!