XML-Sitemap
Anwendung
Google erlaubt in den Webmastertools vom User erzeugte Sitemaps anzugeben, um schneller indiziert zu werden. Wird die Option (a) aktiviert, dann wird eine XML-Sitemapdatei geschrieben. Eine leere sitemap.xml wird im Design-Ordner ähnlich der Setup.php als Kopie einer anderen Datei angelegt. Dabei ist der Inhalt zunächst nicht wichtig.
Mit Erzeugen der Webseiten wird die Datei sitemap.xml in das Verzeichnis „Erzeugte Webseiten/assets/sitemap.xml“ übernommen. Dort kann nun das Ersatztool den Inhalt überschreiben. Das erfolgt bei aktiver Option (a) sofort mit dem Ersetzen des HTML-Sitemap im Webseitencode.
Nun fordert aber Google, dass die sitemap.xml immer im Root-Verzeichnis liegt. Also muss die Datei am Server von /assets/ in das Root-Verzeichnis geschoben werden. Dazu nutzen wir die normalen User durch einen Trick. Auf einer beliebigen Seite geben wir in einen HTML-Code folgenden Code ein:
<?php
copy ('./assets/sitemap.xml','./sitemap.xml');
?>
Hinweis: Dieser Pfad ist nur für common-Pages korrekt. Bei Seiten in Unterverzeichnissen muss der Zugriffspfad auf Assets der aktuellen Pfadposition angepasst werden.
Immer wenn ein User diese Seite mit diesem HTML-PHP-Code aufruft wird die sitemap.xml aus dem assets-Verzeichnis ins Root kopiert. Daher sollte man diesen Code ggf. auf eine seltener aufgerufene Seite oder gar auf eine nur für den Administrator zugängliche Seite legen. Der muss aber daran denken, immer nach dem Hochladen, diese Seite einmal anzuzeigen, damit am Server die Funktion im Hintergrund aktiv wird.
Ich habe den Code direkt in der Seite mit der grafischen Sitemap. Dieser Befehl verursacht keine merkbare Performanceverschlechterung, und so bin ich sicher, dass jeden Tag einmal Google mit seinem eigenen Crawl über die Seite läuft und mir diese Funktion sicher ausführt.
Da für die XML-Sitemap die Orginal-Daten des Projektes ausgelesen werden, können Aktualisierungszeitpunkte usw. exakt ausgegeben werden. Ebenso werden Seiten, die tiefer in der Hierarchie sind höher gewertet, weil dort mehr Detailinformationen erwartet werden. Die Prioritäten können individuell angepasst werden, das aber später unter Customizen.
Wie findet das Tool das Verzeichnis für /assets?
Wird für die HTML-Sitemap Aktualisierung (die immer vorausgeht) eine HTML-Seite ausgewählt, wird ausgehend
von diesem aktuellen Verzeichnis das Verzeichnis ./assets gesucht. Das funktioniert so, dass nach der Datei fts.idx (Suchindexdatei vom Projekt) gesucht wird. D.h. diese Datei markiert absolut sicher das Hauptverzeichnis des Projektes. Es wird also solange ein Verzeichnis nach oben gewechselt, bis die fts.idx gefunden wird und dann in das richtige asstes Verzeichnis gewechselt wird. Wenn im aktuellen Verzeichnis kein fts.idx gefunden, sucht das Tool auf einer Ordner-Ebene höher und dann dann nach ../../fts.idx. Im Schlimmsten Fall landet man im Root-Verzeichnis ohne diese Datei zu finden.
Wird irgendwann das Verzeichnis /assets gefunden, dann wird dort die sitemap.xml aktualisiert. Anschließend wird sie von dort durch web2date automatisch mit den Seiten hochgeladen. Wird das Verzeichnis nicht gefunden, wird ein Fehler gemeldet. Das sollte aber normalerweise nicht vorkommen. Diese Suchlogik gilt analog für die anderen Funktionen, wie Pricefeeds und tagcloud.
Hat man den Re-Use deaktiviert, wird man beim Ausführen nach den entsprechenden Dateinamen und Pfaden gefragt.
Diese Logik des Uploads lässt sich auch für beliebig andere Dateien, wie Pricefeeds nutzen, um hochgeladen zu werden. Allerdings muss hier vorab die Datei dem Projekt mittels einer <cc:asset-Anweisung bekannt gemacht werden, eine „Leerdatei“ muss im Design-Verzeichnis bereit gestellt werden.
Vorteile der Ersatz-XML-Sitemap
Die normalen Crawler, die ebenfalls eine Sitemap in XML-Format erstellen können nur auf die Daten auf dem Server zurückgreifen. Das Ersatztool kann aber exakt feststellen wann auf welcher Seite die letzte Änderung war und pro Seite exakt den Änderungszyklus angeben. Analog gibt es je nach Hierarchie-Stufe der Seite (einstellbar) eine individuelle Gewichtung. Damit werden z.B. Seiten, die tiefer im Projekt enthalten sind, höher bewertet. Das sind i.d.R. Produkte bei Shops oder eben informative Zusatztexte in normalen Homepages.
Ansonsten ist der Vorteil einfach die Handhabung. Man muss nichts tun, und die Sitemap ist automatisch einfach da.