XML Sitemap (ohne Plugin)

XML-Sitemap-ohne-Plugin.png

XML Sitemap generieren

Zur sauberen und korrekten Suchmaschinenoptimierung gehört meist auch eine XML Sitemap. Sicherlich ist diese für viele kleine Blogs nicht unbedingt notwendig, doch meist sorgt eine XML Sitemap in WordPress dann eben doch dafür, dass Google Beiträge deutlich schneller als ohne indexiert.

Mit Sitemap dauert es oft nur einen Moment, ohne kann es schon einmal deutlich länger dauern bis ein Artikel in den Suchergebnissen auftaucht. Das ist interessant und gut zu wissen, doch leider sind Sitemaps in WordPress eben so eine Sache für sich. SEO Plugins die automatisch eine Sitemap erstellen, sind meist aufgeblähte Schwergewichte, die einen Blog zu sehr ausbremsen. Auch WordPress Sitemap Plugins sind zwar gut, aber nicht minimalistisch genug, um wirklich Effizient zu arbeiten.

Also braucht es eine Lösung ohne Plugin, ein kleines Snippet welches beim veröffentlichen oder bearbeiten eines Artikels automatisch eine XML Sitemap generiert, oder die vorhandene aktualisiert. Kein Problem!

Folgendes in die Functions.php eures Theme einfügen:

add_action("publish_post", "create_sitemap"); add_action("publish_page", "create_sitemap"); function create_sitemap() { $postsForSitemap = get_posts( array( 'numberposts' => -1, 'orderby' => 'modified', 'post_type' => array( 'post', 'page' ), 'order' => 'DESC' ) ); $sitemap = '<?xml version="1.0" encoding="UTF-8"?>'; $sitemap .= "\n" . '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n"; foreach( $postsForSitemap as $post ) { setup_postdata( $post ); $postdate = explode( " ", $post->post_modified ); $sitemap .= "\t" . '<url>' . "\n" . "\t\t" . '<loc>' . get_permalink( $post->ID ) . '</loc>' . "\n\t\t" . '<lastmod>' . $postdate[0] . '</lastmod>' . "\n\t\t" . '<changefreq>monthly</changefreq>' . "\n\t" . '</url>' . "\n"; } $sitemap .= '</urlset>'; $fp = fopen( ABSPATH . "sitemap.xml", 'w' ); fwrite( $fp, $sitemap ); fclose( $fp ); }

XML Sitemap in WordPress

Die durch den Code oben automatisch generierte XML Sitemap von WordPress, ist valide und Google nimmt sie problemlos an. Mit dem minimalen Code ist die XML Sitemap innerhalb von WordPress außerdem gnadenlos performant umgesetzt, denn noch minimaler und schneller ist eine vernünftige Sitemap wohl kaum realisierbar.

Sobald ihr eine Seite oder einen Beitrag veröffentlicht, oder mit einem Update erneuert, aktualisiert sich auch automatisch die XML Sitemap, was natürlich nicht beim einfachen Abspeichern eines Artikels passiert. Das wäre zwar auch umsetzbar, aber wenig sinnvoll, da die Sitemap ja nur bei neuen Inhalten aktualisiert werden soll und nicht ständig, denn das würde den Server dann doch etwas zu stark belasten.

Bei mir lief diese Lösung auf Blogs mit mehreren tausend Artikeln völlig problemlos und einwandfrei. Google stufte die Sitemap als valide ein und sie entspricht außerdem den Google Webmaster Guidelines und wird dementsprechend von der Suchmaschine honoriert. Eine einfache, effektive und extrem minimalistische Lösung, um innerhalb von WordPress eine XML Sitemap zu erstellen und zwar komplett ohne Plugin.

5 Kommentare zu „XML Sitemap (ohne Plugin)“

  1. Avatar

    Gut zu wissen! Allerdings scheint die Sitemap über Dein Snippet nur neue Artikel und Seiten zu erfassen. Wie lassen sich denn bereits existierende Posts einbinden? Und was ist mit Custom Post Types?

    1. Christian

      Hi Sascha, das Snippet erstellt ausschließlich für neue Artikel eine Sitemap, also ist somit eine Option für neue Seiten. Bezüglich deiner anderen beiden Punkte, dafür müsste man einen stark erweiterten Code schreiben was über den Kommentarbereich hier im Blog hinaus geht – also was wir für Leser hier „liefern“ und was nicht 🙂

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

154 SEO Tools - die ultimative Liste!

Abonniere jetzt unseren Newsletter und lade dir die Liste kostenlos herunter!

Alles klar! Prüfe jetzt deinen Posteingang um die Anmeldung abzuschließen.