[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • Google Sitemaps
Seite 1 von 1

Google Sitemaps

Verfasst: 19. Jul 2005, 23:30
von demer
Hallo Redaxeure,

ich habe für google sitemaps ein Template erstellt.
Google Sitemaps ist ein Service bei dem man google explizit
ein XML File zur Verfügung stellt das die 'Sitemap' der Seite beschreibt.

Diese XML Datei muss man dann anmelden und google kommt es sich dann in regelmässigen Zeitabständen wieder neu ab. Es bietet sich in Redaxo natürlich an dies automatisch zu machen.

Wer es brauchen will, so gehts:
  • - Sitemap Account bei Google aufmachen: https://www.google.de/webmasters/sitemaps/login
    - Template (siehe unten) copy und pasten
    - Eine Seite in Redaxo mit diesem Template anlegen (keine module nichts, nur create. fertisch)
    - Die URL zu dieser Seite dann in Google SiteMaps registrieren

Code: Alles auswählen

<?  
  // Execution Code	
  $rsb = new RexSitemapBuilder();
  $rsb->setUrlPrefix("http://" . $_SERVER["HTTP_HOST"]);  
    
  // dump to requestor (the start category level as param)
  echo $rsb->buildXML( OOCategory::getRootCategories() ); 

// Object Definitions

   /**
    * Class RexSitemapBuilder is a Component that does faciliate
    * the URLSet and URL classes to build the SiteMap for Redaxo.    
    **/
   class RexSitemapBuilder  {
   	
      var $xml="";
      var $urlprefix="";
      var $document="";
      
      function RexSitemapBuilder() {
      	$this->xml = "";
      	$this->document = new URLSet();
      }
      
      function setUrlPrefix( $urlprefix ) {
      	$this->urlprefix=$urlprefix;
      }         
      
      function buildXML( $categories ) {
  	foreach ($categories as $category) {     
  	   
	   $articles = $category->getArticles();
	   foreach ($articles as $article) {
	     if( $article->isOnline() ) {
	       $this->document->addURL(new URL( $this->urlprefix . $article->getUrl(), "monthly", "2005-01-01", (1 / $article->getId() ), $article->getName() ));
	     }
	   }    
	   
  	   //recurse
  	   if( sizeof( $category->getChildren() ) > 0) {
  	   	$this->buildXML( $category->getChildren() );
  	   } 	
	}
	return $this->document->getAsXML();
      }    
      
   }

   /**
    * Class URLSet does implement the Parent object
    * that can host as many URL objects as required
    **/
   class URLSet {

      var $urls = "";
      var $opentag = "<urlset xmlns=\"http://www.google.com/schemas/sitemap/0.84\">";
      var $closetag = "</urlset>";
      var $xmlheader = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";

      /**
       * construct me please
       **/
      function URLSet () {
        $this->urls = array();
      }
      
      /**
       * allows to add URL Objects. And just those.
       * okay. I could explicitly type-safe it, but
       * i use it internally anyway.
       **/
      function addURL($url) {
        $this->urls[$url->loc] = $url;
      }
      
      /**
       * returns this Artifact of the XML document
       * which is in fact the entire one.
       **/
      function getAsXML() {
        $xml = "";
        $xml .= $this->xmlheader . "\n";
        $xml .= $this->opentag . "\n";
        foreach($this->urls as $url) {
            $xml .= $url->getAsXML();
        }
        $xml .= $this->closetag . "\n";
        return $xml;
      }
   }


   /**
    * The URL Class does represent a URL SubElement
    * that handles an entire url Element in itself
    **/
   /*public*/ class URL {
   
      var $loc = "";
      var $changefreq = "";
      var $lastmod = "";
      var $priority = "";
      var $name = "";
      
      /**
       * Constructor Method for a new URL Artifact
       **/
      /*public*/ function URL($u, $c, $l, $p, $n) {
        $this->loc = $u;
        $this->changefreq = $c;
        $this->lastmod = $l;
        $this->priority = $p;
        $this->name = $n;
      }
      
      /**
       * returns this object as XML Artifact
       **/
      /*protected*/ function getAsXML() {
        $xml = "";
        $xml .= " <!-- " . htmlentities( $this->name ) . " -->\n";
        $xml .= " <url>\n";
        $xml .= "  <loc>" . $this->loc . "</loc>\n";
        $xml .= "  <changefreq>" . $this->changefreq . "</changefreq>\n";
        $xml .= "  <lastmod>" . $this->lastmod . "</lastmod>\n";
        $xml .= "  <priority>" . $this->priority . "</priority>\n";
        $xml .= " </url>\n";
        return $xml;
      }
   }

?>
Hier gibt es eine Testseite auf der man das Template 'In Action' sehen kann:
http://www.bigdayz.com/85-sitemap.xml

Ich habe es gestern Nacht von Google einlesen lassen und es war fehlerfrei.


Soweit so gut. Aber ich habe noch einige kleine Änderungswünsche für den nächsten Release, damit man google sitemaps richtig bedienen kann.
-> OOArticle sollte auch eine Methode getPriority() haben
-> OOArticle sollte unbedingt eine lastModified() Methode bekommen, ich weiss aber nicht ob das in Redaxo als Wert überhaupt zur Verfügung steht.
--> Artikel sollten eine neue Meta Info für die ChangeFrequency erhalten, damit man monthly, daily, weekly angeben kann. Da Redaxo das Prinzip von Versionen nicht kennt kann man sie wahrscheinlich nicht automatisch aus der history generieren (nehme ich jetzt mal an).

so das wären meine Wünsche.

have fun
roman

Verfasst: 20. Jul 2005, 00:05
von bibi
Hoi Roman,

kannst du mir mal bitte beschreiben was genau der Vorteil einer Google Sitemap gegenüber der Php-Sitemap von Redaxo ist?

Das ist mir noch nicht ganz klar ... (ich würde gerne wissen ob ich das brauche ;) )

Gruß,
Carsten

Google Sitemaps

Verfasst: 20. Jul 2005, 00:40
von demer
Hay Carsten,

die REdaxo Sitemap ist wahrscheinlich eine Seite auf der ein Benutzer sich alle Seiten und unterseiten ansehen kann. Richtig?

Nun wenn Google deine Seite abgrast um sie zu indizieren, dann muss google sich die links aus der sitemap selbst zusammen suchen und wenn die sitemap seite versteckt ist oder mit DHTML erstellt wird ist das für Google nicht einfacher.

Die Google SiteMap ist in XML definiert und für Google lesbarer. Eigentlich ist es für Google eine erleichterung, sie müssen sich nicht alle links und unterseiten selbst zusammenpfriemeln, sondern DU als webmaster stellst es ihnen so zur Verfügung, dass sie das direkt brauchen können.

Jetzt weiss ich allerdings nicht genau was Redaxo Sitemap ist um ehrlich zu sein.

gr
roman

Verfasst: 20. Jul 2005, 00:41
von blubb
bibi hat geschrieben:kannst du mir mal bitte beschreiben was genau der Vorteil einer Google Sitemap gegenüber der Php-Sitemap von Redaxo ist?
hast Du den obigen Link eigentlich mal angeklickt???
Da steht genau beschrieben, was Google Sitemaps sind:
Sorgen Sie dafür, dass die Nutzer auf einen größeren Teil Ihrer Webseiten aufmerksam werden.

Mit Google Sitemaps können Sie ganz einfach die Verbreitung Ihrer Webseiten im Google-Index verbessern. Über dieses kollaborative Crawlingsystem können Sie Google in direkter Kommunikation über all Ihre Webseiten sowie Änderungen daran auf dem Laufenden halten.
Google Sitemaps bietet für Sie Folgendes:

* Bessere Abdeckung durch Crawler, damit die Nutzer einen größeren Teil Ihrer Webseiten finden
* Aktuellere Suchergebnisse
* Intelligenteres Crawling, da Sie spezifische Informationen zu all Ihren Webseiten bereitstellen können, z. B. das Datum der letzten Aktualisierung oder wie häufig eine Seite geändert wird

Über Google Sitemaps - FAQ - Support-Seite auf Google Groups

Das Erstellen von Sitemaps ist ganz einfach
Erstellen Sie mit dem Sitemap-Generator eine XML-Sitemap , oder erstellen Sie eine einfache Textdatei mit all Ihren URLs.

Legen Sie noch heute los — es kostet keinen Cent
Senden Sie uns Ihre Sitemap noch heute, und verbessern Sie die Präsenz Ihrer Webseiten.

Hilfe zu Google Sitemaps (BETA)

Google Sitemaps Startseite

Über Google Sitemaps

Hilfe zu Google Sitemaps

Sitemapprotokoll

Bedienung des Sitemap-Generators


Was ist Google Sitemaps?

Google Sitemaps ist ein Experiment zum Crawlen von Webseiten. Mit Hilfe der Information und Steuerung unserer Crawler durch Sitemaps hoffen wir, unsere Abdeckung des Webs zu erweitern und die Zeitspanne bis zur Aufnahme in den Index zu verkürzen. Durch die Speicherung einer Sitemap-formatierten Datei auf Ihrem Webserver können unsere Crawler feststellen, welche Seiten vorhanden sind und welche kürzlich geändert wurden, und Ihre Website entsprechend indizieren.

Die Teilnahme an Google Sitemaps erfordert nur zwei Schritte:

1. Generieren einer Sitemap im richtigen Format mit Hilfe des Sitemap-Generators.
2. Aktualisieren der Sitemap nach Änderungen an Ihrer Website.

Wer kann Google Sitemaps nutzen?

Google Sitemaps ist für alle Eigner einer Website bestimmt, angefangen vom Inhaber einer einzelnen Seite bis hin zum Unternehmen mit Millionen sich ständig ändernder Seiten. Falls eine der folgenden Aussagen auf Sie zutrifft, dürfte Google Sitemaps besonders interessant für Sie sein:

* Sie möchten, dass Google mehr Seiten Ihrer Website durchsucht.
* Sie möchten Google darauf aufmerksam machen können, wenn Inhalte Ihrer Website sich ändern.

Wie viel kostet der Service?

Absolut nichts. Die Platzierung in den Suchergebnissen von Google war immer kostenfrei, und dies soll auch so bleiben.

Warum macht Google das?

Im Einklang mit der Mission von Google, den Informationsschatz der ganzen Welt zu strukturieren und universell zugänglich zu machen, soll dieses kollaborative Crawlingsystem dazu beitragen, den Nutzen des Google-Indexes für Benutzer durch verbesserte Abdeckung und Aktualität zu optimieren.


Es ist absolut sinnvoll, die Nutzer mit der Push-Strategie schnell auf neue Links aufmerksam zu machen. Wir wollen nicht warten, bis die Suchmaschine Ergebnisse liefert, sondern vielmehr die Suchmaschine schneller mit Content versorgen. Nach Möglichkeit verfolgen wir die Push-Strategie und warten nicht, bis die Nutzer den Content selbst abrufen. So kann Google interaktiver genutzt werden."

— Marshall Simmonds
Vice President Enterprise Search Marketing New York Times

©2005 Google - Datenschutzbestimmungen - Dienstleistungsbedingungen - Alles über Google


Hilfe zu Google Sitemaps (BETA)

Google Sitemaps Startseite

Über Google Sitemaps

Hilfe zu Google Sitemaps

Sitemapprotokoll

Bedienung des Sitemap-Generators


Häufig gestellte Fragen

Über Google Sitemaps

1. Was ist Google Sitemaps?
2. Wer kann Google Sitemaps nutzen?
3. Wie viel kostet der Service?
4. Warum macht Google das?
5. Was sind die ersten Schritte?
6. Muss ich mich für ein Google-Konto anmelden?
7. Wirkt sich die Teilnahme an diesem Programm auf das Ranking meiner Seite in den Google-Suchergebnissen aus?

Sitemaps

1. Was ist das Sitemapprotokoll?
2. Wie erstelle ich eine Sitemap?
3. Durchsucht und indiziert Google alle URLs in meiner Sitemap?
4. Wie reiche ich meine Sitemap bei Google ein?
5. Wie lange dauert es nach dem Generieren und Einreichen einer Sitemap, bis meine URLs durchsucht werden?
6. Ich möchte vermeiden, dass meine Sitemap für alle Welt einsehbar ist. Kann ich sie nur für Google sichtbar machen?
7. Ich habe kein einfaches Verfahren, um URLs aus meiner Datenbank dynamischer URLs zu extrahieren. Wie kann ich eine Sitemap generieren?
8. Welche anderen Formate kann ich für meine Sitemaps verwenden?
9. Was ist die einfachste Form einer Sitemap, die ich einreichen kann?
10. Wie kann ich meine Sitemap vor dem Abschicken auf Korrektheit überprüfen?

Sitemap-Generator

1. Was ist der Sitemap-Generator?
2. Welche Voraussetzungen bestehen für den Sitemap-Generator?
3. Wie führe ich den Sitemap-Generator aus?
4. Wo kann ich den Sitemap-Generator herunterladen?
5. Was kann ich tun, wenn meine URLs mit keiner der vom Sitemap-Generator unterstützten Methoden extrahiert werden können?

Ihr Konto

1. Was ist ein Google Sitemaps-Konto?
2. Wie füge ich eine Sitemap hinzu?
3. Wie lösche ich eine Sitemap aus meinem Konto?
4. Wie reiche ich eine Sitemap nach einer Änderung erneut ein?
5. Ich habe mein Passwort vergessen.
6. Beim Datum der letzten Einreichung sind meine zuletzt eingereichten Informationen nicht berücksichtigt.

Kontaktaufnahme

1. An wen kann ich mich wenden, wenn ich Hilfe benötige?
2. Wohin kann ich Kommentare und Vorschläge schicken?

Über Google Sitemaps

1. Was ist Google Sitemaps?

Google Sitemaps ist ein Experiment zum Crawlen von Webseiten. Mit Hilfe der Information und Steuerung unserer Crawler durch Sitemaps hoffen wir, unsere Abdeckung des Webs zu erweitern und die Zeitspanne bis zur Aufnahme in den Index zu verkürzen. Durch die Speicherung einer Sitemap-formatierten Datei auf Ihrem Webserver können unsere Crawler feststellen, welche Seiten vorhanden sind und welche kürzlich geändert wurden, und Ihre Website entsprechend indizieren.

Die Teilnahme an Google Sitemaps erfordert nur zwei Schritte:

1. Generieren einer Sitemap im richtigen Format mit Hilfe des Sitemap-Generators.
2. Aktualisieren der Sitemap nach Änderungen an Ihrer Website.

2. Wer kann Google Sitemaps nutzen?

Google Sitemaps ist für alle Eigner einer Website bestimmt, vom Inhaber einer einzelnen Seite bis hin zum Unternehmen mit Millionen sich ständig ändernder Seiten. Falls eine der folgenden Aussagen auf Sie zutrifft, dürfte Google Sitemaps besonders interessant für Sie sein:

* Sie möchten, dass Google mehr Seiten Ihrer Website durchsucht.
* Sie möchten Google darauf aufmerksam machen können, wenn Inhalte Ihrer Website sich ändern.

3. Wie viel kostet der Service?

Absolut nichts. Die Platzierung in den Suchergebnissen von Google war immer kostenfrei, und dies soll auch so bleiben.

4. Warum macht Google das?

Im Einklang mit der Mission von Google, den Informationsschatz der ganzen Welt zu strukturieren und universell zugänglich zu machen, soll dieses kollaborative Crawlingsystem dazu beitragen, den Nutzen des Google-Indexes für Benutzer durch verbesserte Abdeckung und Aktualität zu optimieren.

5. Was sind die ersten Schritte?

Im späteren Abschnitt "Wie erstelle ich eine Sitemap" erhalten Sie Informationen zum erforderlichen Format für Google Sitemaps. Falls Sie gleich in die technischen Details einsteigen möchten, lesen Sie die ausführliche Dokumentation zum Sitemapprotokoll und zum Sitemap-Generator.

6. Muss ich mich für ein Google-Konto anmelden?

Zum Generieren und Einreichen einer Sitemap benötigen Sie kein Konto. Wenn Sie sich jedoch für ein Konto anmelden, erhalten Sie die Möglichkeit, den Status Ihrer Sitemaps zu verfolgen und Diagnoseinformationen für Ihre eingereichten Sitemaps anzuzeigen. Der Besitz eines Kontos hat keinerlei Auswirkungen auf das Ranking Ihrer Website in unseren Ergebnissen. Wenn Sie bereits Google Mail, Groups, Mein Suchprotokoll, Alerts oder die Froogle Einkaufsliste nutzen, besitzen Sie bereits ein Google-Konto und können sich mit dem bestehenden Konto zur Nutzung von Google Sitemaps anmelden.

7. Wirkt sich die Teilnahme an diesem Programm auf das Ranking meiner Seite in den Google-Suchergebnissen aus?

Nein. Die Verwendung von Google Sitemaps hat keinerlei Auswirkungen auf den PageRank Ihrer Seiten. Das Ranking wird davon völlig unabhängig berechnet.
Sitemaps

1. Was ist das Sitemapprotokoll?

Das Sitemapprotokoll ist ein XML-Dialekt zur Zusammenfassung von Sitemapinformationen, die für Webcrawler relevant sind. Für jede URL können "Crawlinghinweise" wie das Datum der letzten Änderung und die ungefähre Änderungshäufigkeit angegeben werden. Weitere Informationen zum Sitemapprotokoll erhalten Sie hier.

2. Wie erstelle ich eine Sitemap?

Es gibt mehrere Möglichkeiten zum Erstellen von Sitemaps. Sie können den Google Sitemap-Generator verwenden, der von der Website Google Code heruntergeladen werden kann – ein einfaches Skript zum Generieren von Sitemaps in unkomplizierten Anwendungsfällen. Weitere Informationen zum Sitemap-Generator finden Sie an späterer Stelle. Falls der Sitemap-Generator in Ihrer Websitestruktur nicht eingesetzt werden kann, empfehlen wir Ihnen, ein eigenes Skript zur Generierung von Sitemaps zu schreiben (und es anderen Nutzern zur Verfügung zu stellen).

3. Durchsucht und indiziert Google alle URLs in meiner Sitemap?

Wir können keine Garantie übernehmen, dass sämtliche URLs durchsucht und indiziert werden. Anhand der Daten in Ihrer Sitemap lernen wir jedoch die Struktur Ihrer Site kennen und können auf dieser Basis die Ausführung des Crawlers besser planen und Ihre Site in Zukunft genauer erfassen. In den meisten Fällen ist das Einreichen der Sitemap für den Webmaster nur vorteilhaft, negative Auswirkungen sind jedenfalls nicht zu befürchten.

4. Wie reiche ich meine Sitemap bei Google ein?

Es gibt verschiedene Möglichkeiten, Ihre Sitemap zur Aufnahme in Google Sitemaps einzureichen. Mit dem Sitemap-Generator-Skript können Sie Ihre Sitemap automatisch erstellen und einreichen. Falls Sie den Sitemap-Generator nicht verwenden, können Sie Ihre Sitemap auch über das Google Sitemaps-Konto einreichen oder per HTTP-Übermittlungsanforderung übertragen.

Wenn Sie Ihre Sitemap mit Hilfe einer HTTP-Anforderung übertragen möchten, senden Sie die Anforderung an folgende URL:

http://www.google.com/webmasters/sitema ... itemap_url

Beispiel: Befindet sich die Sitemap an der Adresse http://www.example.com/sitemap.gz, so lautet die URL:

http://www.google.com/webmasters/sitema ... sitemap.gz

URL-codieren Sie den gesamten Teil ab /ping?sitemap=:

http://www.google.com/webmasters/sitema ... sitemap.gz

Die HTTP-Anforderung können Sie mit wget, curl oder einer anderen Methode Ihrer Wahl absenden. Bei erfolgreicher Ausführung der Anforderung wird der HTTP-Antwortcode 200 zurückgegeben. Falls Sie eine andere Antwort erhalten, sollten Sie die Anforderung erneut senden.

Hinweis: Wenn Sie eine Sitemap-Indexdatei einreichen, müssen Sie lediglich eine HTTP-Anforderung mit Angabe des Speicherorts der Sitemap-Indexdatei absenden, d. h. es ist nicht notwendig, für jede im Index aufgeführte Sitemap eine eigene Anforderung zu senden.

5. Wie lange dauert es nach dem Generieren und Einreichen einer Sitemap, bis meine URLs durchsucht werden?

Während dieser Beta-Periode können wir keine Voraussagen treffen oder Garantien abgeben, ob oder wann Ihre URLs durchsucht und in unseren Index aufgenommen werden. Im Lauf der Zeit erwarten wir eine kontinuierliche Verbesserung sowohl der Abdeckung als auch der Zeitspanne bis zur Indizierung, da sich die Prozesse stetig verfeinern und wir die Anforderungen der Webmaster immer besser kennen lernen.

6. Ich möchte vermeiden, dass meine Sitemap für alle Welt einsehbar ist. Kann ich sie nur für Google sichtbar machen?

Ihre Sitemap sollte sich an einem Speicherort auf dem Webserver befinden, der für unsere Crawler zugänglich ist. Um zu verhindern, dass andere Robots auf Ihre Sitemapdatei zugreifen, können Sie eine "robots.txt"-Datei gemäß dem Robots Exclusion Standard verwenden.

Falls einige Ihrer Webseiten nicht in die Sitemap aufgenommen werden sollen, können Sie diese aus der endgültigen auf Ihrer Website geposteten Sitemapdatei löschen.

7. Ich besitze kein einfaches Verfahren, um URLs aus meiner Datenbank dynamischer URLs zu extrahieren. Wie kann ich eine Sitemap generieren?

Sie können Ihre URLs auch in Form eines Zugriffsprotokolls in ausreichender Länge (z. B. ein Apache-Protokoll) einreichen. Mit dem Sitemap-Generator können Sie eine Sitemap entweder aus einer Liste der URLs, aus Ihren Zugriffsprotokollen oder durch Verweisen auf den Verzeichnispfad zu den statischen Dateien der URLs generieren.

8. Welche anderen Formate kann ich für meine Sitemaps verwenden?

Google unterstützt das Open Archives Initiative (OAI) Protocol for Metadata Harvesting (PMH), ein verbreitetes Protokoll im digitalen Bibliothekswesen. Sofern Ihre Sitemaps bereits im Format OAI-PMH Version 2.0 vorliegen, können Sie diese sofort einreichen. Darüber hinaus können auch RSS 2.0- und Atom 0.3-Syndicationeingaben unter Verwendung der Felder link/lastMod verwendet werden.

Falls Sie uns einfach eine Liste Ihrer URLs übergeben möchten, lesen Sie den folgenden Abschnitt "Was ist die einfachste Form einer Sitemap, die ich einreichen kann?".

9. Was ist die einfachste Form einer Sitemap, die ich einreichen kann?

Wir empfehlen Ihnen nachdrücklich, Ihre Sitemaps in einem XML-Format wie Sitemap oder OAI zu erstellen, da bei diesen Formaten das Angeben zusätzlicher Informationen zu jeder URL möglich ist. Wir können jedoch auch Sitemaps in Form einer Textdatei mit einer einfachen Auflistung der URLs entgegennehmen. Dieses einfache Sitemapformat besteht aus einer Liste der URLs mit jeweils einer URL pro Zeile. Beispiel:

http://www.example.com/catalog?item=1
http://www.example.com/catalog?item=11
...

Hinweise zu diesem Format:

* Die URLs dürfen keine eingebetteten Zeilenwechsel enthalten.
* Es müssen vollständige URLs angegeben werden, da Google die URLs genau wie angegeben zu durchsuchen versucht.
* Die Sitemapdateien müssen die Codierung UTF-8 unterstützen.
* Jede Sitemap kann nicht mehr als 50,000 URLs beinhalten.

10. Wie kann ich meine Sitemap vor dem Abschicken auf Korrektheit überprüfen?

Google benutzt ein XML-Schema, um die Elemente und Attribute in Ihrer Sitemap zu definieren. Sie können dieses Schema von den folgenden Links herunterladen:

Für Sitemaps: http://www.google.com/schemas/sitemap/0.84/sitemap.xsd
Für Sitemap-Indexdateien: http://www.google.com/schemas/sitemap/0 ... eindex.xsd

Es gibt einige Werkzeuge, die Ihnen helfen, die Struktur Ihrer Sitemap hinsichtlich dieser Schemata zu validieren. Sie können eine Liste solcher XML-Werkzeuge an den folgenden Stellen finden:

http://www.w3.org/XML/Schema#Tools
http://www.xml.com/pub/a/2000/12/13/schematools.html

Um Ihre Sitemap oder Ihre Sitemap-Indexdatei hinsichtlich eines Schemas zu überprüfen, benötigt die XML-Datei einige zusätzliche Header. Wenn Sie den Sitemap-Generator benutzen, sind diese Header schon vorhanden. Wenn Sie ein anderes Werkzeug zum Erstellen Ihrer Sitemap verwenden, sollten Sie Header wie im folgenden Beispiel verwenden:

Sitemap:

<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84
http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">

<url>
...
</url>
</urlset>

Sitemap-Indexdatei:

<?xml version='1.0' encoding='UTF-8'?>
<sitemapindex xmlns="http://www.google.com/schemas/sitemap/0.84"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84
http://www.google.com/schemas/sitemap/0 ... eindex.xsd">

<sitemap>
...
</sitemap>
</sitemapindex>

Sitemap-Generator

1. Was ist der Sitemap-Generator?

Der Sitemap-Generator ist ein einfaches Skript, das zum automatischen Erstellen von Sitemaps und Einreichen bei Google konfiguriert werden kann. Der Sitemap-Generator generiert Sitemaps aus einer Liste der URLs, aus Zugriffsprotokollen oder durch Verweisen auf den Verzeichnispfad zu den statischen Dateien der URLs. Weitere Informationen zum Sitemap-Generator erhalten Sie hier.

2. Welche Voraussetzungen bestehen für den Sitemap-Generator?

Der Sitemap-Generator erfordert Python 2.2 oder höher. Für die Verwendung des Sitemap-Generators sollte der Webmaster mit dem Übertragen von Dateien zum Webserver und dem Ausführen von Skripts vertraut sein.

3. Wie führe ich den Sitemap-Generator aus?

Eine Anleitung zum Konfigurieren und Ausführen des Sitemap-Generators finden Sie hier.

4. Wo kann ich den Sitemap-Generator herunterladen?

Der Sitemap-Generator ist unter den Open Source-Projekten auf der Website Google Code aufgeführt.

5. Was kann ich tun, wenn meine URLs mit keiner der vom Sitemap-Generator unterstützten Methoden extrahiert werden können?

Wir hoffen, dass von anderen Nutzern Tools entwickelt und zur Verfügung gestellt werden, mit denen Sitemaps in den unterschiedlichsten Anwendungsszenarien generiert werden können. Entwickler werden gebeten, ihre Projekte in der Google-Gruppe für Google Sitemaps zu diskutieren und zur Nutzung bereitzustellen.
Ihr Konto

1. Was ist ein Google Sitemaps-Konto?

In Ihrem Google Sitemaps-Konto finden Sie Informationen über Ihre eingereichten Sitemaps sowie deren letzte Aktualisierung und können neue Sitemaps einreichen, die von Google durchsucht werden sollen. Zum Login ist ein Google-Konto erforderlich – melden Sie sich zum Erstellen eines Kontos auf der Google Accounts Startseite an. Wenn Sie bereits Google Mail, Groups, Mein Suchprotokoll, Alerts oder die Froogle Einkaufsliste nutzen, besitzen Sie bereits ein Google-Konto und können sich mit dem bestehenden Konto zur Nutzung von Google Sitemaps anmelden.

Zum Einreichen von Sitemaps benötigen Sie nicht unbedingt ein Konto. Wenn Sie jedoch Ihre Sitemaps über Ihr Konto einreichen, können Sie den Status aller von Ihnen eingereichten Informationen verfolgen.

2. Wie füge ich eine Sitemap hinzu?

Nachdem Sie Ihre Sitemap erstellt und an einem öffentlich zugänglichen Speicherort auf Ihrem Webserver platziert haben, müssen Sie sie zur Liste Ihrer Sitemaps hinzufügen, damit Diagnoseinformationen angezeigt werden können. So fügen Sie eine Sitemap zur Liste der Sitemaps hinzu:

1. Melden Sie sich unter folgender Adresse bei Ihrem Google Sitemap-Konto an: www.google.com/webmasters/sitemaps.
2. Klicken Sie auf "Sitemap hinzufügen".
3. Geben Sie die URL Ihrer Sitemap ein, und klicken Sie auf "URL einreichen".
4. Ihre neue Sitemap wird in Ihre Hauptseite aufgenommen. Falls beim Abrufen der Sitemap Fehler auftreten, werden Sie aufgefordert, diese zu beheben und die Sitemap erneut hinzuzufügen.

3. Wie lösche ich eine Sitemap aus meinem Konto?

Sie können eine Sitemap aus der Liste löschen, indem Sie auf den Entfernen-Link rechts neben der Sitemap klicken.

4. Wie reiche ich eine Sitemap nach einer Änderung erneut ein?

Wenn sich URLs in Ihrer Sitemap geändert haben oder bereits aufgelistete Seiten aktualisiert wurden, können Sie die Sitemap zur neuerlichen Durchsuchung erneut einreichen. Klicken Sie dazu einfach auf den Link zum erneuten Einreichen rechts neben der betreffenden Sitemap. Das Datum der letzten Einreichung wird entsprechend aktualisiert.

Falls Sie einen automatisierten Auftrag zum regelmäßigen Generieren und Einreichen von Sitemaps eingerichtet haben (empfohlen), müssen Sie den Link zum erneuten Einreichen in Ihrem Google Sitemaps-Konto nicht mehr betätigen. In der Spalte "Eingereicht" wird weiterhin der Zeitpunkt angezeigt, an dem Sie zuletzt manuell auf den Link geklickt haben. Die Spalte "Heruntergeladen" wird dagegen auf den Zeitpunkt aktualisiert, an dem die Sitemap zuletzt vom System abgerufen wurde.

5. Ich habe mein Passwort vergessen.

Wenn der Zugriff auf Ihr Konto nicht funktioniert, oder wenn Sie Ihr Passwort vergessen haben, besuchen Sie die Seite https://www.google.com/accounts/ForgotPasswd.

6. Beim Datum der letzten Einreichung sind meine zuletzt eingereichten Informationen nicht berücksichtigt.

In der Spalte "Eingereicht" wird das Datum aufgeführt, an dem Ihre Sitemap zuletzt manuell über Ihr Konto eingereicht wurde. Falls Sie auf Ihrem Webserver mit Hilfe von Sitemap-Generator oder einer ähnlichen Anwendung ein sich wiederholendes Skript eingerichtet haben, werden die einzelnen Übertragungen nicht in Ihrem Konto aufgeführt.

In der Spalte "Heruntergeladen" Ihres Kontos wird jedoch angezeigt, wann die Sitemap von Google infolge dieser automatisierten Übertragungen heruntergeladen wurde.
Kontaktaufnahme

1. An wen kann ich mich wenden, wenn ich Hilfe benötige?

Falls Sie Hilfe bei technischen Fragen benötigen oder allgemein mit anderen Webmastern über das Programm diskutieren möchten, besuchen Sie bitte die Seite der Google Sitemaps Groups. Dort erhalten Sie Antworten auf fast alle Ihrer Fragen, und die Informationsvielfalt wird um so größer, je mehr Nutzer sich daran beteiligen. Wir lesen die Diskussionen mit und werden erforderlichenfalls Unterstützung anbieten.

2. Wohin kann ich Kommentare und Vorschläge schicken?

Wir lesen die Diskussionen auf der Seite Google Sitemaps Groups und werden alle Kommentare und Vorschläge zum Programm mitverfolgen. Dies ist auch der beste Ort, um Hilfe in technischen Fragen von versierten Webmastern auf der ganzen Welt zu erhalten. Falls Ihre Frage nicht beantwortet worden ist und Sie weiterhin Schwierigkeiten mit Google Sitemaps haben, können Sie gerne hier mit uns Kontakt aufnehmen. Wir sind leider nicht in der Lage technische Unterstützung für individuelle Seiten anzubieten und jede E-Mail persönlich zu beantworten. Seien Sie jedoch versichert, dass wir jedes eingehende Feedback lesen und auf der Grundlage Ihrer Rückmeldungen und Vorschläge Google Sitemaps optimieren.

©2005 Google - Datenschutzbestimmungen - Dienstleistungsbedingungen - Alles über Google
  • - Sitemap in Redaxo ist das Inhaltsverzeichnis der Seite für den User
    - Google Sitemaps sind für die Suchroboter
Jetzt alles klar, Carsten?

Gruß
Thorsten

Verfasst: 20. Jul 2005, 01:34
von bibi
Hallo Thorsten, hallo Roman,
- Sitemap in Redaxo ist das Inhaltsverzeichnis der Seite für den User
- Google Sitemaps sind für die Suchroboter
genau diese Aussage war mir noch nicht klar ...

Ich habe die FAQ Seite mir angeschaut und da stand auch viel über Sitemaps drin aber ob das jetzt in Redaxo für den Benutzer (zum anschauen) ist oder ob da nur Suchmaschinen drüberrubbeln sollen stand dort nirgends und hatte Roman auch nicht explizit gesagt.

Ich dachte zuerst, dass Google eine Sitemap erstellt und diese wird dann ganz normal wie die Redaxo-Sitemap für den Benutzer und halt auch für Google als besonders gut lesbare Quelle eingebunden.

Thorsten, ich kenne das Problem des Satzes:"Wer lesen kann ist klar im Vorteil!" ;) deswegen überlegen ich mir (meistens) vorher was ich frage. ;) Auch wenn es nicht unbedingt so aussieht. ;)

Grüße und Dank,
Carsten

Verfasst: 20. Jul 2005, 16:37
von Markus.Staab
Hi,

das ganze als Addon verpackt, wäre eine schöne sache ;)

Gruß,
Markus

Addon

Verfasst: 20. Jul 2005, 19:01
von demer
Hay Markus,

habe ich mir auch überlegt. Aber es gibt an dem Ding eigentlich nichts zu Adden. Keine Config, nichts. Nur ein Template dass halt XML schreibt anstatt HTML. Macht das Sinn ein AddOn dafür zu schreiben?

btw. Wo finde ich denn AddOn's at all? sind die alle im Forum versteckt? Oder gibts dafür ein Archive?

gr
roman

Update

Verfasst: 20. Jul 2005, 20:08
von demer
Hier noch ein Patch für 'echte' Prioritäten der Seiten:

file: redaxo\include\classes\class.ooarticle.inc.php
die folgende Methode einfügen:

Code: Alles auswählen

	/**
	 * Accessor Method:
	 * returns the priority of this article
	 **/
	function getPriority() {
		return $this->_prior;	
	}
Dann kann die Methode guildXML in der Klasse RexSitemapBuilder meinem Template (s.o.) wie folgt ändern:

Code: Alles auswählen

      function buildXML( $categories ) {
  	foreach ($categories as $category) {     
  	   
	   $articles = $category->getArticles();
	   foreach ($articles as $article) {
	     if( $article->isOnline() ) {
	       $this->document->addURL(new URL( $this->urlprefix . $article->getUrl(), "monthly", "2005-01-01", (1 / $article->getPriority() ), $article->getName() ));
	     }
	   }    
	   
  	   //recurse
  	   if( sizeof( $category->getChildren() ) > 0) {
  	   	$this->buildXML( $category->getChildren() );
  	   } 	
	}
	return $this->document->getAsXML();
      }  
... getPriority() anstatt getId(), das war gefaked ;)





WICHTIGE FRAGE: Wo kann man solche Patches einreichen? gibts ein CVS wo man soetwas committen könnte oder so? Ich würde gerade solche vergessenen kleinigkeiten fixen und gerne zurückspenden..

Verfasst: 21. Jul 2005, 00:00
von Goldfisch
klasse sache! solche beiträge werden erstmal gesammelt.

dieser beitrag erscheint, dann mit den neuen seiten zu redaxo, in der dokumentation unter erweiterungen.

bin dabei das gerade mal bei einer seite einzubauen. danke!
peter

Verfasst: 21. Jul 2005, 14:12
von Goldfisch
hatte fehler bei der validierung des xml codes, wenn artikel mit dem namen
"--" vorhanden sind. kommt halt vor. wenn man den startartikel nicht braucht :)

wenn die kommentierung mit den artikelnamen entfernt ist, dann wird die xml als gültig eingestuft.

Validierungsfehler

Verfasst: 21. Jul 2005, 18:14
von demer
Hay Goldfisch,

ja hast recht. da hab ich nicht dran gedacht.

Es gibt 2 Möglichkeiten. Entweder die Zeile für die Kommentare rauswerfen. Das ginge dann so:

replace:

Code: Alles auswählen

$xml .= " <!-- " . htmlentities( $this->name ) . " -->\n"; 
with

Code: Alles auswählen

// $xml .= " <!-- " . htmlentities( $this->name ) . " -->\n"; 
:) So hast du es jetzt gefixed oder?

Meine Variente wäre man ersetzt -- mit - - .
Dieser Fix würde so aussehen:

replace:

Code: Alles auswählen

$xml .= " <!-- " . htmlentities( $this->name ) . " -->\n"; 
with

Code: Alles auswählen

$xml .= " <!-- " . str_replace("--","- - ", htmlentities( $this->name )) . " -->\n";
Die Kommentare sind ja eh nur Kür. Ich habe sie nur im XML drin, dass man beim Kontrollieren der XML Seite selbst etwas besser zurecht kommt.

vielen dank für den Hinweis.

gr
roman

Verfasst: 28. Jul 2005, 02:20
von wgmx
Hallo Roman,

danke fuer Dein google-sitemap-template. Ich habe es gerade ausprobiert.
Es fehlt, wenn ich den code so kopiere, wie Du ihn gepostet hast, in den generierten URLs ein / nach dem Domainnamen.

zum Beispiel:

Code: Alles auswählen

<loc>http://silicona.com.mxindex.php?article_id=1</loc>
Ich habe es gelöst, in dem ich Zeile vier ergänzte:
Original:

Code: Alles auswählen

 $rsb->setUrlPrefix("http://" . $_SERVER["HTTP_HOST"]);
Modifiziert:

Code: Alles auswählen

$rsb->setUrlPrefix("http://" . $_SERVER["HTTP_HOST"] . "/");  
Ist das hier eine serverspezifische Sache bei mir oder hattes Du es vergessen?

Und: in redaxo 3.0 funktioniert es leider nicht. Hast Du Lust, es dafür anzupassen?

Gruß aus Mx
Wieland

Re: Addon

Verfasst: 28. Jul 2005, 08:37
von Markus.Staab
Hi Roman,
demer hat geschrieben: habe ich mir auch überlegt. Aber es gibt an dem Ding eigentlich nichts zu Adden. Keine Config, nichts. Nur ein Template dass halt XML schreibt anstatt HTML. Macht das Sinn ein AddOn dafür zu schreiben?
Also ich fände es schöner, wenn es ein Addon wäre, da man dann die Klasse ganz einfach extern in diesem Addon liegen hat und somit diese nicht ins Modul selbst reinkopieren muss.

Bei Updates müssten man dann auch im Falle, dass an der Klasse was nicht passt, einfach die entsprechende Datei ersetzen, anstatt das Modul im Redaxo herauszusuchen, dort die entsprechende Text-Passage zu löschen und anschließend mit dem neuen code zu ersetzen.
demer hat geschrieben: btw. Wo finde ich denn AddOn's at all? sind die alle im Forum versteckt? Oder gibts dafür ein Archive?
Es gibt sog. "Offizielle Addons", die eben von einem Entwickler von Redaxo im Redaxo CVS abgelegt sind (Diese sind nicht zwingend schon für den Produktiveinsatz bereit!!).

Addons vom Forum werden aktuell noch in keine CVS o.ä. abgelegt. Diese sind vorerst erstmal nur in der neuen Doku drinne.

Ich hab gestern schonmal mit jan gesprochen, ob man vielleicht ein "2. Opensource Projekt" bei Berlios anlegen soll (z.b. Redaxo Addons) für das man dann jedem der möchte Zugriff gibt. Wir sind noch am ausdiskutieren...

Gruß,
Markus

Verfasst: 29. Jul 2005, 05:42
von hoppel
ich habe das jetzt mal mit der sitemap ausprobiert. ich glaube für google gibt es da ein problem. in der sitemap werden alle alle artikelnamen aufgelistet. es ist aber oft so das kategoriename z.b. 22-anreise.html heisst und der startartikel zu der kategorie bekommt meinetwegen den namen 22-so-kommen-sie-zu-uns.html. den findet google aber nicht. google verfolgt wahrscheinlich erst einmal die kategorien. bloss die kategorien werden in der sitemap nicht aufgelistet sondern nur alle startartikel (und natürlich alle anderen artikel einer kategorie). und kategoriename und startartikelname müssen nicht zwangsläufig den gleichen namen haben. ansonsten eine klasse idee.

gruss

Google Sitemaps Bug

Verfasst: 30. Jul 2005, 01:51
von demer
Hay Wieland.

ich schau mir den Fehler an und poste eine aktualisierte Version.
Ich habe modrewrite drin, da kommen die <loc> schon mit einem / am Begin daher. Das märze ich noch aus.

Wg. Redaxo 3, das soltle ich mir aus dem CVS mal langsam besorgen.
Ich werde es auf jedenfall für 3.0 portieren, da ich mit Redaxo weiterarbeite und auch meine Projekte migrieren muss. No Problem. Aber gib mir noch ein wenig Zeit.

gr
roman

Startartikel und Kategorien

Verfasst: 30. Jul 2005, 01:54
von demer
Hay hoppel,

vielleicht verstehe ich dein Problem nicht ganz richtig,
kannst du mir dies in einer PM genauer beschreiben?
Ich würde auf jedenfall einen Fix oder eine Config-Option dafür bauen
wenn die Categories (wie heissen die auf deutsch?) auch in die
SiteMap müssten.

gr
roman

Addon

Verfasst: 30. Jul 2005, 01:57
von demer
Hay kills,

vielleicht hast du recht. Ich werde mir nochmal gedanken machen ob das ein AddOn sein könnte. Ich glaube das würde es vielleicht einfacher machen für die Leute.

Nun jetzt sind ja schon ein paar Anregungen da. (Danke übrigens allen für das Feedback). Dann könnte ich an einem scheisswettersonntag wie dem kommenden ja eigentlich daraus ein Plugin machen. .....

Gruss
roman

Verfasst: 21. Aug 2005, 15:37
von Markus.Staab
Wäre schön, wenn dieses Modul auch auf der REDAXO Seite verfügbar wäre.

Dazu sollte der Ersteller es einfach unter myREDAXO -> meine Module einstellen.

Gruß,
Markus

Slash fehlt

Verfasst: 8. Okt 2005, 17:34
von Hooksieler
Bei mir sieht das so aus:
Es fehlt ein / hiner der Domain das scheint mir nicht richtig.
Muss ich noch etwas beim Template einstellen?

http://www.domain.deindex.php?article_id=2&clang=0 monthly 2005-01-01 0.5

Verfasst: 1. Dez 2005, 16:50
von Thomas.Blum
Hej,

ich habe mal die Google-Sitemap validieren lassen. Leider kommt da ein Fehler der da lautet:
Das Dokument ist nicht valide.
Benutzte Zeichensatzkodierung: utf-8

Quelle: Zeichensatzkodierung aus XML-Deklaration
utf-8 wird aber im template verwendet.

Was läuft hier verkehrt?

Danke und vg Thomas

Verfasst: 30. Jul 2009, 21:22
von Weissenborn
Ich hab's heute auch bei mir eingebaut. Dabei musste ich ein paar Code-Anpassungen/Aktualisierungen vornehmen. Ich hoffe es hilft Euch weiter. Danke an den Urheber! - Klasse Script! Viel Spaß auch weiterhin daran! So sieht das jetzt bei mir aus:

Code: Alles auswählen

<?  
  // Execution Code    
  $rsb = new RexSitemapBuilder(); 
  $rsb->setUrlPrefix("http://" . $_SERVER["HTTP_HOST"]."/");  
    
  // dump to requestor (the start category level as param) 
  echo $rsb->buildXML( OOCategory::getRootCategories() ); 

// Object Definitions 

   /** 
    * Class RexSitemapBuilder is a Component that does faciliate 
    * the URLSet and URL classes to build the SiteMap for Redaxo.    
    **/ 
   class RexSitemapBuilder  { 
       
      var $xml=""; 
      var $urlprefix=""; 
      var $document=""; 
      
      function RexSitemapBuilder() { 
         $this->xml = ""; 
         $this->document = new URLSet(); 
      } 
      
      function setUrlPrefix( $urlprefix ) { 
         $this->urlprefix=$urlprefix; 
      }          
      
      function buildXML( $categories ) { 
     foreach ($categories as $category) {      
         
      $articles = $category->getArticles(); 
      foreach ($articles as $article) { 
        if( $article->isOnline() ) { 
setlocale(LC_NUMERIC, 'en_GB.ISO8859-1');
          $this->document->addURL(new URL( $this->urlprefix . $article->getUrl(), "daily", date('Y-m-d'), (1 / $article->getId() ), $article->getName() )); 
        } 
      }    
       
        //recurse 
        if( sizeof( $category->getChildren() ) > 0) { 
           $this->buildXML( $category->getChildren() ); 
        }     
   } 
   return $this->document->getAsXML(); 
      }    
      
   } 

   /** 
    * Class URLSet does implement the Parent object 
    * that can host as many URL objects as required 
    **/ 
   class URLSet { 

      var $urls = ""; 
      var $opentag = "<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">"; 
      var $closetag = "</urlset>"; 
      var $xmlheader = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"; 

      /** 
       * construct me please 
       **/ 
      function URLSet () { 
        $this->urls = array(); 
      } 
      
      /** 
       * allows to add URL Objects. And just those. 
       * okay. I could explicitly type-safe it, but 
       * i use it internally anyway. 
       **/ 
      function addURL($url) { 
        $this->urls[$url->loc] = $url; 
      } 
      
      /** 
       * returns this Artifact of the XML document 
       * which is in fact the entire one. 
       **/ 
      function getAsXML() { 
        $xml = ""; 
        $xml .= $this->xmlheader . "\n"; 
        $xml .= $this->opentag . "\n"; 
        foreach($this->urls as $url) { 
            $xml .= $url->getAsXML(); 
        } 
        $xml .= $this->closetag . "\n"; 
        return $xml; 
      } 
   } 


   /** 
    * The URL Class does represent a URL SubElement 
    * that handles an entire url Element in itself 
    **/ 
   /*public*/ class URL { 
    
      var $loc = ""; 
      var $changefreq = ""; 
      var $lastmod = ""; 
      var $priority = ""; 
      var $name = ""; 
      
      /** 
       * Constructor Method for a new URL Artifact 
       **/ 
      /*public*/ function URL($u, $c, $l, $p, $n) { 
        $this->loc = $u; 
        $this->changefreq = $c; 
        $this->lastmod = $l; 
        $this->priority = $p; 
        $this->name = $n; 
      } 
      
      /** 
       * returns this object as XML Artifact 
       **/ 
      /*protected*/ function getAsXML() { 
        $xml = ""; 
        $xml .= " <!-- " . htmlentities( $this->name ) . " -->\n"; 
        $xml .= " <url>\n"; 
        $xml .= "  <loc>" . $this->loc . "</loc>\n"; 
        $xml .= "  <changefreq>" . $this->changefreq . "</changefreq>\n"; 
        $xml .= "  <lastmod>" . $this->lastmod . "</lastmod>\n"; 
        $xml .= "  <priority>" . $this->priority . "</priority>\n";
        $xml .= " </url>\n"; 
        return $xml; 
      } 
   } 

?>