Google Sitemap Xml - Einfach zu Erstellen

Hallo zusammen,

ich habe das Sitemap-Script vin DIATOM ein wenig angepasst auf meine Bedürfnisse. Erstmal vielen Dank für die gute Basis!

Da ich sehr (seeehr) viele Artikel im Shop habe, und Google die Sitemaps auf 50.000 Urls, bzw. 10Mb (unkomprimiert), beschränkt, muss ich über einen Sitemap-Index gehen.
Das sitemap-script erstellt mir nun alle Dateien, folgende Features habe ich dazu gebaut:

  • ein Produkte-Url-Limit pro Sitemap
  • gzip-Komprimierung für die Maps
  • gegen schwache maxmemory-Einstellungen auf dem Server ruft sich das Script nach jeder sitemap erneut auf (ähnlich wie der mysqldumper)
  • das ganze als Shellscript, damit man einen Cronjob aufsetzen kann und nicht ans webroot-Verzeichnis gebunden ist dabei (eine Kopier-Routine fehlt allerdings noch)

Natürlich ist das Script beliebig erweiterbar, jeder hat ja so seine Servereinstellungen. Das Script im Anhang des Postings.

bezgl. googlesitemap.sh.zip
sagt google zu mir:

Ungültiges Datum
Es wurde ein ungültiges Datum gefunden. Berichtigen Sie bitte das Datum bzw. dessen Formatierung, bevor Sie Ihre Daten erneut einreichen.

und ich mußte:
$lastmod = $sql_row[‘oxtimestamp’];
if (“0000-00-00 00:00:00” == $lastmod)
{
$lastmod = date(“Y-m-d”) . ‘T’ . date(“h:i:s”) . ‘+00:00’;
}
$list[] = array(

gegen :

    $lastmod = $sql_row['oxtimestamp'];
    if ("0000-00-00 00:00:00" == $lastmod)
    {
        $lastmod = date("Y-m-d") . 'T' . date("h:i:s") . '+00:00';
    }
   $lastmod = date("Y-m-d") . 'T' . date("h:i:s") . '+00:00';
    $list[] = array(

ersetzen.
Keine aahnung, ob das die weiheit war, aber google schluckt nun die sitemaps. :slight_smile:

Gibt es bei dem Script eigentlich irgend eine Möglichkeit / Anpassung, dass nur die Links der Hauptkategorie ausgegeben werden? Im Moment scheint er immer nur den ersten Eintrag der oxseo Tabelle zu nehmen.

CYA

Wenn ich die Datei von nullzehn nehme, bekomme ich bei google folgenden Fehler:

Fehler 	1  	
Ungültige URL
Dies ist keine gültige URL. Korrigieren Sie die URL und reichen Sie die Daten erneut ein. 	
Details:
http://#!%20/usr/bin/php%20-q
Problem ermittelt am: 05.05.2010

Fehler 	2 	
Ungültige URL
Dies ist keine gültige URL. Korrigieren Sie die URL und reichen Sie die Daten erneut ein. 	
Details:
http://<?php
Problem ermittelt am: 05.05.2010

Fehler 	3 	
Ungültige URL
Dies ist keine gültige URL. Korrigieren Sie die URL und reichen Sie die Daten erneut ein. 	
Details:
http:///**
Problem ermittelt am: 05.05.2010

Die Datenbankdaten haben ich alle eingetragen.
Am Anfang des Dokument steht Folgendes:

#! /usr/bin/php -q <?php

Muss ich da noch irgendwas ändern?

Nullzehn hat eine Shell hochgeladen. Entferne

#! /usr/bin/php -q

am Anfang der Datei und du kannst sie als reguläre php-Datei nutzen. (Das Dateiformat solltest du natürlich von .sh in .php ändern)

Also wenn ich den Code am Anfang lösche und es als .php einreiche nimmt google es nicht. Wenn ich eine .xml Datei draus mache, bekomme ich folgende Fehlermeldungen:

Fehler 	282  	
Ungültige URL
Dies ist keine gültige URL. Korrigieren Sie die URL und reichen Sie die Daten erneut ein. 	
Details:
http://'. $val['loc'] .'
Übergeordnetes Tag: url
Tag: loc
Problem ermittelt am: 05.05.2010

Fehler 	299 	
Fehlerhafter Aufbau
Wir konnten Ihre XML-Sitemap nicht lesen. Sie dürfte einen Eintrag enthalten, den wir nicht verarbeiten konnten. Bitte validieren Sie Ihre XML-Sitemap, bevor Sie sie neu einreichen. 	
Problem ermittelt am: 05.05.2010

Naja, ganz so einfach ist es nicht:

[ul]
[li]Datei von nullzehn herunterladen und entpacken[/li][li]Datei “googlesitemap.[B]sh[/B]” in Editor öffnen[/li][li]Zeile “#! /usr/bin/php -q” am Beginn entfernen, entsprechende Änderungen an der Konfiguration vollziehen (Datenbank, Pfade) und als “googlesitemap.[B]php[/B]” speichern[/li][li]Datei auf den Server / Webspace laden[/li][li]Datei “sitemap1.xml” erstellen und im gleichen Verzeichnis ablegen[/li][li]Rechte (CHMOD) beider Dateien anpassen[/li][li]“googlesitemap.php” im Browser ausführen[/li][li]Wenn alles geklappt hat, wurde die “sitemap1.[B]xml[/B]” mit Inhalten gefüllt und kann jetzt bei Google eingereicht werden[/li][/ul]

Super!
Danke für die schnelle Hilfe.

Gern! Wenn es klappt, freue ich mich über einen Klick auf http://www.oxid-esales.com/forum/reputation.php?p=30549.

Jetzt hab ich doch nochmal ne Frage. Wenn ich die googlesitemap.php aufrufe bekomme ich folgenden Fehler:

Warning: system() has been disabled for security reasons in /var/www/web279/html/shop/googlesitemap.php  on line 313

Die Fehlermeldung bekam ich auch. Du musst ein paar Codezeilen löschen, damit das auf deinem Server / Webspace funktioniert. Im Anhang findest du die fertigen .php und .xml-Dateien. Einfach Datenbank- und Pfadinformationen eintragen und hochladen. Kurze Readme ist auch dabei. Danach sollte alles klappen.

Super Sache! Jetzt funktioniert alles bestens! Top!

Hallo,

lassen sich auf diese Weise bzw. mit diesem Skript auch die Tag-Seiten in die sitemap-Datei schreiben?

Wie müsste die Datei ggfs. erweitert werden?

Gruß

Moin moin,

ich bekomme immer folgende Meldung:

Warning: mysql_connect() [function.mysql-connect]: Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2) in /homepages/00/0000000/htdocs/xxxxxx/google_sitemap_xml.php on line 61
error connecting to database.

DatenbankDaten,fullpath etc sind eigetragen
Jemand eine Idee ?

Gruss
Agadon

Moin moin,

für alle die obigen Fehler auch haben und nicht sofort wissen woran es liegt:

google_sitemap_xml -->// configuration —>$mod_cnf[’[B]s[/B]bhost’] ändern in $mod_cnf[’[B]d[/B]bhost’]

Gruss
Agadon

PS: Finde es mal wieder komisch, dass einige hier das Ding benutzen …alle sicherlich auch den Fehler bekommen müssten…aber keiner was sagt und unsereiner auf sowas (quasi) einfaches erst garnicht kommt als Fehler

Hallo Agadon,

vielen Dank für deine Nachricht. In der google_sitemap_xml.php war tatsächlich der beschriebene Fehler vorhanden. Ich habe den Fehler korrigiert und das ZIP-File in Beitag 31 erneut hochgeladen.

Bei mir (und scheinbar bei einigen anderen auch) gab es auch mit dem Fehler keine Probleme. Entweder hängt das mit der Verwendung von “localhost” als DB-Host zusammen, oder mit den Einstellungen des Anbieters (bei mir all-inkl). Vielen Dank, dass du den Fehler / die Lösung gemeldet hast. Viele Grüße,

Ben

Hallo zusammen,

könnt ihr einem Newbie nochmal genau erklären, was zu tun ist um dieses Sitemap zu benutzen? Ich habe mir jetzt die Dateien von Piengie runter geladen. Was genau muss ich jetzt machen. Die Liesmich-Datei hat mir leider nicht geholfen.

Ich muss jetzt also in der Datenbank eine neue Tabelle anlegen? Kann ich das über php-myadmin machen? Wie muss ich diese bennen?

In welchen Ordner muss ich die “google_sitemap_xml” und “sitemap” kopieren?

Vielen Dank.

[[email protected];31905]Hallo zusammen,

könnt ihr einem Newbie nochmal genau erklären, was zu tun ist um dieses Sitemap zu benutzen? Ich habe mir jetzt die Dateien von Piengie runter geladen. Was genau muss ich jetzt machen. Die Liesmich-Datei hat mir leider nicht geholfen.

Ich muss jetzt also in der Datenbank eine neue Tabelle anlegen? Kann ich das über php-myadmin machen? Wie muss ich diese bennen?

In welchen Ordner muss ich die “google_sitemap_xml” und “sitemap” kopieren?

Vielen Dank.[/QUOTE]

Hallo Anita,

im ZIP-Ordner liegt eien liesmich.txt, in der eigentlich alles erklärt ist:


// Sitemap installieren

(1) Datenbank- und Pfadinformationen in google_sitemap_xml.php eintragen
(2) Datei auf den Server / Webspace hochladen
(3) Rechte (CHMOD) der beiden Dateien anpassen
(4) google_sitemap_xml.php in Browser ausführen
(5) sitemap1.xml öffnen und Inhalt prüfen

// Sitemap an Google übertragen

(1) www.google.com/webmasters/tools?hl=de öffnen
(2) Mit Zugangsdaten anmelden
(3) Registrierte website auswählen
(4) Rechte untere Ecke "XML-Sitemaps" -> "Sitemap hinzufügen"
(5) URL zur Sitemap eingeben

Moin moin,
@Piengie: Ich finde es gut,nett und einfach klasse wenn sich jemand die Arbeit hier macht und so ein (quasi) Modul frei-erhältlich bereitstellt…und dieses frei ist hier bei Oxid ja eher selten :wink: und von daher ging dieses PS von mir sicherlich nicht an dich.

Gruss
Agadon

[QUOTE=Piengie;31893]Hallo Agadon,

vielen Dank für deine Nachricht. In der google_sitemap_xml.php war tatsächlich der beschriebene Fehler vorhanden. Ich habe den Fehler korrigiert und das ZIP-File in Beitag 31 erneut hochgeladen.

Bei mir (und scheinbar bei einigen anderen auch) gab es auch mit dem Fehler keine Probleme. Entweder hängt das mit der Verwendung von “localhost” als DB-Host zusammen, oder mit den Einstellungen des Anbieters (bei mir all-inkl). Vielen Dank, dass du den Fehler / die Lösung gemeldet hast. Viele Grüße,

Ben[/QUOTE]

[B]@Agedon[/B] - Vielen Dank für das Bauchpinseln :wink: Die Sitemap ist nicht von mir, sondern von DIATOM. Ich hab nur die erweiterte Version von nullzehn zusammen mit einer liesmich.txt in ein ZIP-File gepackt. Als Reaktion auf deine PS-Zeile wollte ich nur darüber aufklären, warum sich niemand hinsichtlich deines Fehlers gemeldet haben könnte :wink:

[B]@Anita[/B] - Freut mich, dass du die Erweiterung nutzt. Du musst in der Datenbank [U]keine[/U] neue Tabelle anlegen. Die Zugangsdaten zur Datenbank, in der du OXID installiert hast, musst du bitte in die google_sitemap_xml.php eintragen (mit Editor öffnen). Nachdem du die Daten ergänzt hast, kannst du die Datei in jedes beliebige Verzeichnis hochladen (den entsprechenden Pfad musst du aber in google_sitemap_xml.php hinterlegen). Viel Erfolg bei der Installation und Nutzung!

Viele Grüße,

Ben