Vorab eine Erklärung, warum dieses Formular Englisch beschriftet ist:

Nicht etwa, weil wir es auf einer englischen Tutorial-Site "geklaut" haben. Da wäre es ja ein leichtes, die Seite "einzudeutschen" - nein - in Englisch deshalb, weil dieses Formular so elementar wichtig für die Suchmaschinenoptimierung (SEO = Search Engin Optimization) ist und einen weiten Nutzerkreis finden wird.

sitemap


Und warum steht dieses Formular hier bei den Tutorials?

Auch ganz einfach. Wir haben lange nach fertigen Lösungen gesucht, weil "das Rad nicht zum x-ten Male erfunden werden muss". Allerdings - gefunden haben wir einen "Haufen Dreck" (bitte entschuldigen Sie diesen Ausdruck, aber er beschreibt den Zustand ziemlich treffend). Von kostenpflichtigen Downloads über online freeware tools - so ziemlich alles war dabei. Alles wurde mit höchstem Selbstlob angepriesen und nichts hat funktioniert und das im World Wide Web. Genau es diesem Grund soll in einem Tutorial gezeigt werden, wie einfach letztlich die Entwicklung eines PHP-Scripts zur Erzeugung von Sitemaps ist und dabei lernen Sie gleichzeitig, das angebotene Script zu verstehen, zu verändern und eigenen Bedürfnissen anzupassen.

Die Suchmaschinen (und hier geht es wohl schwerpunktmäßig um google) beschreiben das erforderliche Protokoll sehr präzise:

sitemap protocol


Spezifikationen zum Protokoll:

TAG Pflicht (ja / nein) Beschreibung
<urlset> erforderlich Fasst die Datei zusammen und verweist auf den aktuellen Protokollstandard.
<url> erforderlich Übergeordnetes Tag für die einzelnen URL-Einträge. Die übrigen Tags sind diesem untergeordnet.
<loc> erforderlich URL der Seite. Diese URL muss mit dem Protokoll beginnen (z. B. "http") und mit einem abschließenden Schrägstrich enden, sofern vom Webserver benötigt. Dieser Wert darf höchstens 2048 Zeichen lang sein.
<lastmod> Optional Datum der letzten Änderung der Datei. Dieses Datum sollte das W3C Datetime-Format aufweisen. Mit diesem Format können Sie ggf. die Uhrzeit weglassen und JJJJ-MM-TT verwenden.
<changefreq> Optional Die Häufigkeit, mit der sich die Seite voraussichtlich ändern wird. Dieser Wert gibt Suchmaschinen allgemeine Informationen. Er steht nicht unbedingt mit der Häufigkeit in Zusammenhang, mit der Sie die Seite durchsuchen. Gültige Werte sind:

  • always

  • hourly

  • daily

  • weekly

  • monthly

  • yearly

  • never


  • Der Wert "always" wird zur Beschreibung von Dokumenten verwendet, die sich bei jedem Zugriff verändern. Der Wert "never" dient zur Beschreibung archivierter URLs.

    Der Wert dieses Tags wird als Hinweis aufgefasst, nicht als Befehl. Die Suchmaschinen-Crawler berücksichtigen diese Information zwar bei ihren Entscheidungen. Sie durchsuchen jedoch Seiten, die mit "hourly" gekennzeichnet sind, eventuell seltener als stündlich, oder Seiten, die mit "yearly" gekennzeichnet sind, häufiger als jährlich. Selbst mit "never" gekennzeichnete Seiten werden von den Crawlern wahrscheinlich in gewissen Zeitabständen durchsucht, um unerwartete Änderungen an solchen Seiten zu erkennen.
    <priority> Optional Die Priorität dieser URL gegenüber anderen URLs auf Ihrer Website. Gültige Werte liegen zwischen 0,0 und 1,0. Dieser Wert hat keinen Einfluss auf einen Vergleich Ihrer Seiten mit Seiten auf anderen Websites, er informiert die Suchmaschinen lediglich darüber, welche Seiten für Sie die höchste Priorität haben. Auf dieser Grundlage werden die Seiten dann durchsucht.

    Die Standardpriorität einer Seite ist 0.5.

    Die Priorität, die Sie einer Seite zuordnen, hat keinen Einfluss auf die Position Ihrer URLs in den Ergebnisseiten einer Suchmaschine. Diese Information wird von den Suchmaschinen lediglich zur Auswahl zwischen URLs derselben Website genutzt. Die Verwendung dieses Tags erhöht somit die Wahrscheinlichkeit, dass Ihre wichtigeren Seiten im Suchindex aufgeführt werden.

    Ebenso wenig ist es zielführend, sämtlichen URLs Ihrer Website hohe Priorität zuzuordnen. Da die Priorität relativ ist, wird sie nur zur Auswahl zwischen URLs innerhalb Ihrer eigenen Website verwendet. Die Priorität Ihrer Seiten wird nicht mit der Priorität von Seiten auf anderen Websites verglichen.


    Nun wissen wir also, wie so eine "sitemap.xml" auszusehen hat und müssen nur noch unsere eigene Seite so absuchen, dass wir eine "sitemap.xml" (die genaue Dateibezeichnung - im Beispiel "sitemap.xml" - ist dabei optional - das angebotene Script verwendet allerdings genau diese Bezeichnung) zusammenstellen können.

    Dabei kommen wir auch schon zu Header unseres Scripts:

    Kleiner Nachtrag:

    Das Eingabefeld "Your host" wurde ergänzt, nachdem die Prüfung unterschiedlicher hosts ergab, das die PHP-Variable $_SERVER['HTTP_HOST'] auf unterschiedlichen hosts auch die unterschiedlichsten (zum Teil absolut nicht verwendbaren) Ergebnisse zurückgab. Alle nachträglichen Änderungen sind fett und rot markiert.


    sitemap header


  • Exclude Path


  • Sicher wollen Sie vor der Suchmaschine nicht "die Hosen herunter lassen", d.h.: nicht alle Verzeichnisse Ihres Servers offenlegen. In den Feldern "Exclude Path" können Sie Verzeichnisse und Unterverzeichnisse eingeben, in denen die Suchmaschine "nichts zu suchen" hat. Dabei spielt Groß- und Kleinschreibung keine Rolle und die Begriffe müssen auch nicht vollständig sein, wenn ein Teilabschnitt genügt (Beispiel: Sie haben einen Ordner: "Privat_Mail" und keine weiteren Ordner mit "Privat...", welcher durchsucht werden soll, dann genügt die Eingabe "privat" zum Ausschluss dieses Ordners).

  • Include Filespec


  • Bedeutet nichts anderes wie "nimm die Dateien mit der Endung (Deitei-Spezifikation)" alle dazu - natürlich nur die, aus den genehmemigten Ordnren. Sie haben vielleicht PHP-Dateien laufen, die via Javascript Informationen aus einer Tabelle "ziehen". Diese würde ein Suchmaschinen-Robot nicht als Link erkennen. Sobald Sie diese jedoch in Ihrer Sitemap haben, wird auch nach diesen Dateien gesucht.

  • Priority


  • Priority (Deutsch: Priorität oder Wichtigkeit) besagt welches Gewicht den entsprechenden Dateien zukommt. Unser Script setzt die Gewichtung nach Ordnertiefe (Verschachtelungstiefe), wie folgt:

  • Ordner 1ster Ordnung zwischen 1.0 und 0.8 - Voreinstellung: 0.8

  • Ordner 2ter Ordnung zwischen 0.8 und 0.6 - Voreinstellung: 0.6

  • Ordner 3ter Ordnung und weitere Tiefen zwischen 0.6 und 0.4 - Voreinstellung: 0.4


  • Dabei gilt die Gewichtung immer nur intern (auf Ihrem Server) ud Sie sollten ohnehin die wichtigsten Deitein Ihrer Website nie zu tief in der Ordnerstruktur anlegen.

  • Frequency


  • Deutsch: Frequenz oder Wiederholungstakt gibt an, wie oft sich an Ihren Dateien etwas ändert und demzufolge gewünscht wird, dass die Suchmaschinen-Roboter Ihre Seite auf Neuigkeiten durchsuchen. Unsere Voreinstellung ist "monthly", also jeden Monat, wobei die Suchmaschine prinzipiell keine "Befehle" entgegennimmt. Wir machen mit dieser Anweisung einen Vorschlag - gewissermaßen tragen wir eine Bitte vor.

    Und nun zum eigentlichen Script:

    Weiter zur nächsten Seite >>>