News Ticker

Google XML Sitemaps Plugin unter WordPress 3 Multisite nutzen

Ich denke der ein oder andere wird bestimmt schon das Update auf WordPress 3 gewagt haben, bei mir ist bei allen Blogs das Autoupdate gut gelaufen. Aber ich würde trotzdem jedem empfehlen das man vor dem Updaten ein Backup erstellt. Des wohl größte neue Feature von WordPress 3 ist die Multisite Funktion, jetzt kann man unter einer WordPress Installation mehre Blogs verwalten wie es früher nur mit WordPress MU möglich war. Nur bekommen jetzt alle Benutzter des Google XML Sitemaps Plugins folgende Fehlermeldung wenn sie ein Blognetzwerk erstellen möchten.
Google-XML-Sitemaps-Multiblog-error
Aber es wäre auf jeden Fall sehr schade wenn man in seinem Blognetzwerk auf dieses Plugin verzichten müsste. Denn ich finde dieses Plugin sehr praktisch und habe mich daher auf die Suche nach einer Lösung gemacht und bin auch fündig geworden.

Auf diesem Blog habe ich eine Anleitung gefunden wie man das Google XML Sitemaps Plugin anpassen muss das dieses auch unter WordPress 3 Multisite fähig ist. Da ich noch keine Deutsche Version von diesem Tutorial gefunden habe schreibe ich es hier einmal zusammen.

1. Änderungen an dem Google XML Sitemaps Plugins

Als erstes müsst ihr in den Ordner wp-content/plugins/google-sitemap-generator/ gehen und dort die Datei sitemap.php öffnen. Dort geht ihr in die Zeile 51 bis 58 und kommentiert den Code welcher dort steht aus. Dieser ist für die Anzeige der oben genannten Fehlermeldung zuständig. Der auskommentierte Code sollte dann folgendermaßen aussehen:

//Check for 3.0 multisite, NOT supported yet!
// if((defined(‚WP_ALLOW_MULTISITE‘) && WP_ALLOW_MULTISITE) || (function_exists(‚is_multisite‘) && is_multisite())) {
//      if(function_exists(‚is_super_admin‘) && is_super_admin()) {
//              add_action(‚admin_notices‘,  array(‚GoogleSitemapGeneratorLoader‘, ‚AddMultisiteWarning‘));
//      }
//
//      return;
// }

2. Htaccess Mod Rewrite Regeln ändern

Als nächstes wechselt ihr wieder in euer WordPress hauptverzeichnis und öffnet die .htaccess Datei und fügt folgenden Code über euren WordPress Regeln ein:

RewriteRule ^sitemap.xml sitemap-%{SERVER_NAME}.xml [L]
RewriteRule ^sitemap.xml.gz sitemap-%{SERVER_NAME}.xml.gz [L]

3. Plugin Einstellungen

xml-sitemap-multisite
Danach wechselt ihr im WP Admin Menu unter dem Menupunkt Einstellungen zu dem XML-Sitemap Plugin. Dort geht ihr zum Einstellungsbereich “Pfad der Sitemap Datei” und wählt eigener Pfad aus. Dort fügt ihr dann bei “Absoluter oder relativer Pfad zur Sitemap Datei inkl. Dateinamen.” folgendes ein:

/var/www/webusername/sitemap-www.domain.de.xml

Das muss der komplette Pfad auf eurem Server zu eurer WordPressinstallation sein und dann hinter dem sitemap- fügt ihr eure Webseitenadresse an, also hier in dem Beispiel www.domain.de.
Und bei dem “Absolute URL zur Sitemap Datei inkl. Dateinamen.” gebt ihr folgendes ein:

http://www.domain.de/sitemap-www.domain.de.xml

Hier muss also die Adresse sein unter welcher die Sitemap aufgerufen werden kann. hier gebt ihr wieder hinter dem sitemap- euren Domainnamen an welcher in dem Beispiel wieder www.domain.de ist.

xml-sitemap-neu-erstellen
Wenn auf eurem Server oder Webspace bereits eine sitemap.xml oder sitemap.xml.gz vorhanden ist löscht ihr diese. Anschließend klickt ihr oben bei der Einstellungsseite auf das im Screenshot markierte “neu erstellen” damit eure Sitemap neu erstellt wird.

4. Testen und robots.txt anpassen

Nun könnt ihr testen ob ihr alles richtig eingestellt habt und zwar ruft ihr die Sitemap auf, diese sollte unter dieser URL www.domain.de/sitemap.xml und www.domain.de/sitemap-www.domain.de.xml erreichbar sein.

Anschließend geht ihr wieder in das Hauptverzeichnis eures Webspaces und editiert die robots.txt Datei und fügt dort folgendes ein:

Sitemap: http://www.domain.de/sitemap-www.domain.de.xml

Damit gebt ihr den Ort eurer Sitemap an damit die Suchmaschinen Bots diese besser finden.

5. Anpassung aller Blogs des Netzwerkes

Jetzt habt ihr alle Einstellungen an eurem Blog vorgenommen welche nötig sind damit das XML Sitemap Plugin auch in einem Multisite Netzwerk genutzt werden kann.
Nun führt ihr die Schritte 3 und 4 bei jedem eurer Blogs in dem Netzwerk durch.

Ich hoffe euch hat diese Anleitung geholfen um euer Blognetzwerk auch mit einer XML Sitemap zu versehen. Ein großes Dankeschön geht natürlich an Jan Dembowski welcher das Englische Tutorial geschrieben hat an welchem ich mich hier wie gesagt orientiert habe.

10 Kommentare zu Google XML Sitemaps Plugin unter WordPress 3 Multisite nutzen

  1. Vielen Dank für dieses Tutorial.

    Noch geschickter ist es vor allem bei vielen Blogs die Sitemaps in einen Unterordner zu verlegen.
    Die Rewrite-Rules sähen dann so aus:
    RewriteRule ^sitemap.xml.gz sitemaps/%{SERVER_NAME}/sitemap.xml.gz [L]
    RewriteRule ^sitemap.xml sitemaps/%{SERVER_NAME}/sitemap.xml [L]
    Übrigens auch im Original genau in der Reihenfolge, erst die gz, dann die ohne. Sonst werden Aufrufe der gz schon von der ersten Rule abgefangen.

    Den Punkt 3 kann sich sparen in jedem Blog per Hand einzugeben, wer in der sitemap-core.php in der Funktion GetXmlPath, in Zeile 1386 dieses:
    return $this->GetHomePath() . $this->GetOption(„b_filename“);

    durch das hier ersetzt:
    $dir = $this->GetHomePath() . ’sitemaps/‘.trailingslashit($_SERVER[‚HTTP_HOST‘]);
    if(!file_exists($dir)) {
    mkdir($dir);
    clearstatcache();
    sleep(1);
    }
    return $dir . $this->GetOption(„b_filename“);

    Dann wird automatisch für jedes Blog ein entsprechender Unterordner angelegt, der dann die Sitemaps dazu enthält.

    Und auch der Punkt 4 ist obsolet, wenn keine physische robots.txt benutzt wird, sondern die virtuelle von WordPress. Dann nur noch in den Sitemap-Optionen bei „Die Sitemap zur virtuellen robots hinzufügen.“ nen Haken rein und aus is mit Handarbeit.

  2. Michael // 1. Okt 2010 um 21:30 //

    Funktioniert soweit ganz gut, aber dennoch werden die Links in falscher Form in die Sitemap.xml eingetragen.

  3. @Michael was genau meinst du mit der falschen Form?

  4. Michael // 2. Okt 2010 um 06:52 //

    Also mein Blog netzwerk hat die die adresse:

    sub.domain.de
    Die Blogs haben die Adressen:

    sub.domain.de/blog1
    sub. domain.de/blog2

    gemappt habe ich die Blogs jeweils auf

    http://www.blog1.de
    http://www.blog2.de

    Die Links werden in die Sitemap aber jeweils mit der ungemappten adresse geschrieben, also

    sub.domain.de/blog1/beitrag-ueber-sitemap-xml
    sub.domain.de/blog1/ein-ganzer-tag-für-die-installation-fuer-worpress-mu

    Ich persönlich halte diese Form gerade aus SEO-technischen Gründen für schlecht. In meinen 2 einzel installationen schauen die Links in der Sitemap wie folgt aus:

    http://www.domain.de/beitrag-ueber-sitemap-xml
    http://www.domain.de/ein-ganzer-tag-für-die-installation-fuer-worpress-mu

    So möchte ich das auch unter meiner neues WordPress MU Version, in der in beide Blog integrieren möchte, haben.

  5. Das Mapping sonst ansich funktioniert bei dir aber oder? Also du kannst die Blogs unter der gemaptern Domaun aufrufen und das wird richtig angezeigt?

    Ich mache das Mapping immer über Subdomains wie du es in der Anleitung sehen kannst
    https://www.servervoice.de/wordpress-mu-domain-mapping-plugin-anleitung/
    Und gehe nicht über die Unterordner, aber es sollte auch mit den Unterordnern richtig gehen. Denn es werden in der Sitemap ja einfach nur die Artikelurls raus gezogen.
    Hast du bei dir auch die neueste Version vom Google XML Sitemap Plugin im Einsatz?

    Oder du kannst auch mal die Betaversion von dem XML Sitemap Plugin anschauen http://wordpress.org/support/topic/plugin-google-xml-sitemaps-early-testers-wanted vielleicht funktioniert diese bei dir. Denn da ist gleich ein WordPress MU Support integriert.

  6. Michael // 2. Okt 2010 um 11:17 //

    Ja das mapping funktioniert auch einwandfrei, d.h. die Blogs kann ich mit

    http://www.domain.de/
    http://www.domain.de/

    aufrufen.

    Abgesehen davon habe ich festgestellt, dass alle Artikel als Permalink folgendes bekommen:

    sub.domain.de/blog1/beitrag-ueber-sitemap-xml
    sub.domain.de/blog2/ein-ganzer-tag-für-die-installation-fuer-worpress-mu

    und nur die Namen des Artikels sind im Permalink bearbeitbar und genau diese stehen hinterher in Sitemap.xml

    Diese Betaversion ist bei mir im Einsatz. Ich habe keine Ahnung, wie ich die gemappten URLs in die Sitemap bekomme.

    Auf einem meiner zwei einzeln betriebenen Blogs schauen die Links in der Sitemap wie folgt aus:

    http://www.biastoch.net/eigene-projekte

    und so möchte ich das auch bei der MU-version haben dort schaut es dann nämlich so

    http://sub.domain.de/biastochnet/eigene-projekte aus.

    Hab gestern den ganzen Tag recherchiert, sämtliche Artikel gelesen und keiner hat eine lösung 🙁

  7. Hm also stimmt schon etwas bei der Permalinkstrukur nicht. Wie gesagt ich bin sonst mit der Subdomain MU Methode recht gut gefahren. Wenn du magst kannst du das ja sonst auch mal probieren ob es damit bei dir klappt.
    Nur musst du dann glaube ich den deinen Blog neu aufsetzten. Denn man kann glaube ich nicht einfach von der Unterordner Version auf die Subdomains wechseln.

  8. Hmmm habe wordpress 3.0.1 MU neu installiert, Habe diesmal subdomains ausgewählt und was passiert?? Er sagt die Domain wird blog1.domain.de lauten.

    Das ist doch schon wieder voll für den poppes 😀 😀

    Die Frage die sich mir stellt: Wenn ich jetzt blog1 unter http://www.blog1.de installiere……und dann einen zweiten blog erstelle, wird dieser ja zwangsweise blog2.blog1.de heißen und meinen gestrigen erfahrung nach zufolge wird dies dann auch so in der Sitemap.xml drin stehen?!??!

    Wie schaut die linkstrukur denn bei dir aus?

  9. Ja deine Domain heißt natürlich erst einmal subdomain1.domain.tld dann musst du das Domainmapping Plugin so einsetzten wie ich es hier beschreiben habe:
    https://www.servervoice.de/wordpress-mu-domain-mapping-plugin-anleitung/
    Dann hast du wieder die Seiten blog1.de blog2.de etc. und dann musst du das Sitemap Plugin so umbauen und einstellen wie ich es in dem Artikel beschrieben habe.

    Hier auf dem Blog habe ich die Multi Blog Funktion gar nicht aktiv. Aber ich habe einige andere Blogs bei denen ich die Multi Blog Funktion nutze. Dort setzte ich es so um wie es hier im Blog beschrieben wurde, ich nehme das Subdomain System von WordPress. Mappe dann die jeweiligen Domains mit dem Domainmapping Plugin darauf und erstellen dann die Sitemap wie ich es hier beschrieben habe.

  10. Simon Franke // 14. Jan 2011 um 02:14 //

    Funktioniert spitze, vielen Dank
    Wenn man die Blogs in Unterverzeichnissen hat muss nur aufpassen und immer das Verzeichnis des Hauptblogs nehmen und die Sitemap-Namen müssen natürlich unterschiedlich sein.

Kommentare sind deaktiviert.