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.