Microformat Fehlermeldungen in der Google Search Console vermeiden

microformats-hentry-fehlermeldung

Das Problem …

… kennen wahrscheinlich viele:

Die Google Search Console (ehemals Google Webmaster Tools) meldet Fehler unter „Darstellung der Suche >> Strukturierte Daten“. So wie z.B. hier:

microformats-hentry-fehlermeldung-2 hatom Fehlermeldung in der Google Search Console

Wo kommt das her?

Eigentlich alle modernen WordPress-Themes umschließen den eigentlichen Artikel/Blog-Post mit einem HTML-Tag (meist <article aber auch einfach mit <div und geben diesem via post_class(); standard CSS-Klassen mit. Eine davon ist hentry – hentry ist aber eine Mircoformat-Klasse die so definiert ist, dass sie auch bestimmte weitere Microformat-Attribute erwartet. Diese werden jedoch leider oft von den Themeerstellern nicht mit erstellt. Daher kommt es dann in der Search Console zu den erwähnten Fehlermeldungen.

Wie kann ich das beheben?

Nun, man könnte dies in den entsprechenden Theme-Dateien selbst einfügen – Schlechte Idee!! Denn sobald ein Theme-Update kommt sind ja meine Änderungen wieder weg 🙁

Dafür könnte man ein Child-Theme erstellen, die verwendeten php-Dateien des Themes dort hinein kopieren und daran die Änderungen vornehmen – leider IMHO auch nur die zweitbeste Lösung, denn sollte das Original-Theme Änderungen an diesen Dateien vornehmen, so werden sich diese nicht auf das Child-Theme (und somit meine Website) auswirken.

Was also tun?

Nun, WordPress hat hierfür einen passenden Filter bereit gestellt, mit dem wir recht einfach unabhängig vom Theme noch etwas an den Inhalt eines Posts (‚the_content‘ – hier gibt’s eine Liste aller möglichen Filter-Hooks) anhängen können. In unserem Falle eben die fehlenden Mircoformat Informationen:

//add hatom data
function add_mher_hatom_data($content) {
  if (is_home() || is_singular() || is_archive() ) {
    $content .= '<div class="hatom-extra" style="display:none;visibility:hidden;"><span class="entry-title">'.get_the_title().'</span> letzte Änderung: <span class="updated"> '.get_the_modified_time('F jS, Y').'</span> von <span class="author vcard"><span class="fn">'.get_the_author().'</span></span></div>';
  }
  return $content;
}
add_filter('the_content', 'add_mher_hatom_data');

Dieser Code muss nur ganz einfach in die functions.php des Themes (bzw. besser des Child-Themes) eingetragen werden, und schon sind die Fehlermeldungen der Search Console Vergangenheit.