fob marketing

SEO-Fix für Google XML WordPress Sitemap

Das Google (XML) Sitemap Generator Plugin von Arne Brachold ist eine lieb gewonnene und sehr empfehlenswerte SEO-Erweiterung für das Blog-System WordPress.

Das Plugin generiert eine suchmaschinenfreundliche XML-Sitemap (Artikelliste) und kann die führenden Suchmaschinen bei Neueinträgen und Änderungen automatisch und kurzfristig anpingen/benachrichtigen.

In der aktuellen Version (3.1.2) des Sitemap-Plugins entdeckte ich heute einen kleinen Bug, der mit WordPress 2,7 unter bestimmten Bedingungen eine unliebsame Double-Content-Produktion bzw. überflüssige Weiterleitungen zur Folge hat. Der Bug betrifft Artikel, die auf mehrere Seiten verteilt werden. Wer Artikel-Unterseiten in seiner Sitemap einblendet, wird einerseits feststellen, dass die jeweils letzte Unterseite eines auf mehrere Seiten verteilten WordPress-Artikels nicht gelistet wird (halb so wild), andererseits aber auch bemerken, dass Seite 1 solcher Artikel in der Sitemap doppelt erscheint, nämlich 1x mit dem normalen Seitennamen und 1x als …/seitenname/1/. Für solche Artikel wird also eine falsche und eine richtige Seite an die Suchmaschinen gemeldet.

Wer ebenfalls das Sitemap-Plugin nutzt, die Paging-Funktion für Artikel verwendet (Seite 1, 2, X) und die Anzeige von Unterseiten in der Sitemap aktiviert hat, kann sich der nachstehenden Lösung bedienen, um das Google-Sitemap-Problem bis zur entwicklerseitigen Plugin-Korrektur zu überbrücken:

SEO-Quick-Fix, um Seite-1-Artikel mit der Endung …/1/ abzufangen:

Datei sitemap-core.php in /wp-content/plugins/google-sitemap-generator aufrufen, nach der Funktion „function Render()“ suchen (Zeile 1023ff.) und hinter „if($this->_url == "/" || empty($this->_url)) return '';“ eine kleine Erweiterung wie diese einfügen:

// Bei Nutzung von Standard-Seitennamen (Endung „…/“)
// diese Zeile einfügen:
if (ereg('([a-zA-Z0-9-]+)(\/1\/)', $this->_url, $regs)) return '';

// Die Permalinks im fob marketing Blog enden auf .html
// und wurden kurzfristig so abgefangen:
if (ereg('([a-zA-Z0-9-]+)(.html)(\/1\/)', $this->_url, $regs)) return '';

Die mobile Version verlassen