Open Graph nicht xHTML valide

Nachdem ich heute einige Plugins meiner Website aktualisiert hatte, ist mir aufgefallen, dass diese nicht mehr xHTML 1.0 validiert.

< !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Verursacht wird das durch die Open Graph Tags im Kopf der Seite, die vom Jetpack Plugin hinzugefügt werden.
Open Graph Protocol ist eine Facebook Schnittstelle. Diese ermöglicht es mithilfe des Like-Buttons externe Web-Inhalte in den Social Graph auf Facebook zu integrieren.
Diese Protokoll Metadaten sind jedoch noch nicht vom W3C-Konsortium in den Standard XHTML 1.0 Transitional aufgenommen.
Nun wer die Social Media Plugins aus Jetpack nicht benötigt kann sie in den Einstellungen deaktivieren und das war´s dann auch schon.
Braucht man jedoch diese Plugins wird es ein wenig komplizierter:
Variante 1: Den Doctype der Site ändern auf:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">

Da Open Graph in RDFa 1.0 bereits aufgenommen ist, validiert die Site dann wieder. Allerdings setzt der neue Doctype xHTML strict voraus. zum Wikipedia Artikel zu RDFa

Will man den Doctype auf xHTML Transitional lassen, muss man ein wenig tricksen.
Recht einfach ist folgende Variante mit style Tags:

<style type='text/css'>
// <![CDATA[\n
</style>
<meta property='og:image' content='http://domain.com/das/bild.jpg' />
<meta property='og:url' content='http://domain.com/die/url/' />
<meta property='og:title' content='Der Seitentitel - meine Domain' />
<meta property='og:locale' content='de_DE' />
<style type='text/css'>
// ]]>
</style

>
Details dazu findet ihr in diesem Blog
Ähnlich auch dieser Lösungsansatz

Auch ein Variante mittels PHP ist möglich. Gefunden auf folgender Website
Dazu wird folgender Code in die functions.php oder im Kopf der Site eingebunden:

<?php
function is_facebook(){
if(!(stristr($_SERVER["HTTP_USER_AGENT"],'facebook') === FALSE))
return true;
}
?>

Anschließend im Kopf der Site nachstehendes Snippet einbinden.

<?php if(is_facebook()){?>
 
   Hier die Open Graph Metatags einbinden
	 
<?php } ?>

Da mittlerweile auch Google+ die Open Graph Tags auswertet und die Tags und die fehlende Validierung nach xHTML Transitional das Ranking angeblich nicht nachteilig beeinflussen, stellt sich die Frage, ob es nicht gar das Ranking verbessert, da man in den Social Networks mittels Open Graph besser dargestellt ist.

Kommentar hinterlassen

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