Facebook hat Open Graph 2010 ver­öf­fent­licht, um damit externe Websites noch etwas besser auf der eigenen Plattform abbilden zu können. Zu diesem Zweck haben die Ent­wick­ler des sozialen Netzwerks eine in­ter­es­san­te Technik ent­wi­ckelt: Open Graph – ei­gent­lich Open Graph Protocol (OGP) – macht aus Websites Objekte. Das un­ter­stützt Nutzer der Plattform dabei, Inhalte von externen Quellen im Netzwerk zu teilen. Und das dürfte für viele Website-Betreiber äußerst in­ter­es­sant sein, schließ­lich möchten die meisten die Be­kannt­heit ihrer Web­prä­senz steigern.

Nach Facebook sind andere Netzwerke – wie Twitter, LinkedIn oder Xing – mit auf den Zug auf­ge­sprun­gen und haben Open Graph bei sich im­ple­men­tiert. In­zwi­schen ist das Protokoll daher ein wichtiges Werkzeug im Webdesign.

Profi-Website in Sekunden dank KI.
  • Profi-Website in Sekunden dank KI
  • Aus tausenden Vorlagen auswählen
  • 30 Tage kostenlos testen

Wie funk­tio­niert Facebooks Open Graph?

Teilt ein Nutzer eine Website in den sozialen Medien, muss diese auf der Plattform irgendwie dar­ge­stellt werden. Ein Vor­schau­bild und der be­glei­ten­de Text sollen die Website möglichst gut wi­der­spie­geln und andere User zum Besuch anregen. Damit aber nicht einfach irgendein Inhalt auf der Website in der Vorschau gezeigt wird, nutzen Web­de­si­gner Open Graph.

Web­de­si­gner können in den Quelltext der Website Open-Graph-Tags einfügen und dadurch be­ein­flus­sen, wie die Vorschau in den Netz­wer­ken aussieht. Aus diesem Grund ist Open Graph auch in­ter­es­sant für das On­line­mar­ke­ting. Das Protokoll gibt den Content-Inhabern mehr Kontrolle über die Dar­stel­lung ihrer geteilten Inhalte und bereitet die In­for­ma­tio­nen für Nutzer besser auf.

Die ent­spre­chen­den Tags werden im Kopf des HTML-Dokuments als Meta-Property un­ter­ge­bracht:

<meta property="og:title" content="Title der Website, wie er bei Facebook erscheinen soll.">

Man definiert also zunächst den Typ des Tags und ordnet diesem dann einen Wert bzw. Inhalt zu.

Fakt

Twitter hat seine eigenen Tags ein­ge­führt. Wenn der Twitter-Bot beim Durch­su­chen der Seite diese aber nicht findet, greift auch er auf Open Graph zurück.

Bevor man beginnt, die ver­schie­de­nen Meta-Pro­per­ties ein­zu­fü­gen, legt man in einem Präfix das Vokabular fest.

<html prefix="og: http://ogp.me/ns#">

Erst dann folgt der Head des Dokuments.

Die wich­tigs­ten Open-Graph-Tags

Es gibt zahl­rei­che Open-Graph-Tags, die man auf einer Website un­ter­brin­gen kann. Am wich­tigs­ten sind al­ler­dings die nach­fol­gend dar­ge­stell­ten Angaben. Sie sollten auf absolut jeder Website un­ter­ge­bracht werden, die zum Teilen in den sozialen Netz­wer­ken gedacht ist.

Title

Welcher Titel soll in den sozialen Netz­wer­ken angezeigt werden, wenn die ent­spre­chen­de Website dort geteilt wird? Durch das Title-Tag lässt sich ein Name festlegen. Bei Facebook sollte dieser eine Länge von 95 Zeichen nicht über­schrei­ten. Nach etwa 50 Zeichen folgt ein Zei­len­um­bruch. Auch das be­ein­flusst, wie Nutzer auf die Dar­stel­lung reagieren.

<meta property="og:title" content="Titel der Website">

Jedes Web-Dokument verfügt ohnehin über ein Title-Tag, das bei­spiels­wei­se für die Dar­stel­lung im Browser oder in Such­ma­schi­nen eine Rolle spielt. Prin­zi­pi­ell kann man es im Open-Graph-Tag wieder auf­grei­fen, doch das Facebook-Protokoll erlaubt Web­site­be­trei­bern auch, eine an die Social Media an­ge­pass­te Al­ter­na­ti­ve zu de­fi­nie­ren. So kann man zum Beispiel die Länge, die Facebook zur Verfügung stellt, durch eine darauf ab­ge­stimm­te Al­ter­na­ti­ve besser ausnutzen als über einen Standard-Tag, den man auch für Such­ma­schi­nen nutzt. Durch ein al­ter­na­ti­ves Title-Tag lässt sich der Titel zudem präziser an die Social-Media-Ziel­grup­pe anpassen.

De­scrip­ti­on

Auch die De­scrip­ti­on ist bereits in­te­gra­ler Be­stand­teil jedes HTML-Dokuments. Mit einem ent­spre­chen­den Open-Graph-Tag passen Web­de­si­gner die Be­schrei­bung des Inhalts an die sozialen Netzwerke an. Facebook sieht hierfür eine Länge von ungefähr 300 Zeichen vor. Abhängig von Title oder URL kann der Platz auch kürzer ausfallen, weshalb man sich si­cher­heits­hal­ber auf maximal 200 Zeichen be­schrän­ken sollte.

<meta property="og:description" content="Beschreibung der Website">
Tipp

Im Gegensatz zur HTML-De­scrip­ti­on ist die Variante von Open Graph nicht SEO-relevant. Keywords spielen dort also keine Rolle.

Image

Neben dem Titel und dem Be­schrei­bungs­text ist auch ein Bild Be­stand­teil der Website-Vorschau. Mit dem Open-Graph-Tag ver­hin­dern Website-Betreiber, dass Facebook und andere Social-Media-Platt­for­men einfach irgendein mehr oder weniger zufällig gewähltes Bild der Seite verwenden. Denn das kann unter Umständen voll­kom­men schief gehen, wenn bei­spiels­wei­se das Bild einer Ban­ner­wer­bung statt des ei­gent­li­chen Ar­ti­kel­bilds verwendet wird.

<meta property="og:image" content="http://www.example.org/images/vorschau.jpeg">

Es empfiehlt sich, das Bild extra für die Vorschau zu gestalten, damit diese möglichst häufig an­ge­klickt wird. Dabei sollten Sie zum einen auf den Bild­in­halt, aber auch auf das Format achten. Bewährt haben sich Bild-Text-Kom­bi­na­tio­nen – bei diesen sollte man den Text möglichst mittig plat­zie­ren, denn Facebook be­schnei­det unter Umständen den Bildrand. Als optimales Format hat sich 1200 x 627 Pixel etabliert. Wählt man diese Grö­ßen­ein­stel­lun­gen, zeigt Facebook das Bild oberhalb von Title und De­scrip­ti­on. Bei einem kleineren Format rutscht das Bild mitunter als Thumbnail neben den Text.

Man kann dem Image-Tag noch weitere In­for­ma­tio­nen geben, damit die Dar­stel­lung möglichst ein­wand­frei funk­tio­niert:

<meta property="og:image" content=" http://www.example.org/images/vorschau.jpeg">
<meta property="og:image:secure_url" content="https://www.example.org/images/vorschau.jpeg">
<meta property="og:image:type" content="image/jpeg">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="627">
<meta property="og:image:alt" content="Ein tropischer Wasserfall">
  • secure_url: Falls die Website HTTPS verlangt, stellt man hiermit eine geeignete Al­ter­na­ti­ve zur Verfügung.
  • type: Der Medientyp ist bei einem Bild immer „image“, in dieser Zeile wird aber auch das ver­wen­de­te Format angegeben. (Die IANA hat eine Liste mit allen nutzbaren Me­di­en­ty­pen erstellt.)
  • width: Dieser Eintrag über­mit­telt der anderen Website, wie breit das Bild in Pixeln ist.
  • hight: Dieser Eintrag über­mit­telt der anderen Website, wie hoch das Bild in Pixeln ist.
  • alt: Der Alt-Text wird, wie man es auch von HTML kennt, als Be­schrei­bung des Bild­in­halts angezeigt, wenn das Vor­schau­bild nicht dar­ge­stellt werden kann.

URL

Mit dem URL-Tag definiert man die Web-Adresse der geteilten Website. Das mag etwas redundant wirken, denn die URL ist schließ­lich ohnehin bekannt. Manche Website-Betreiber haben aber mehrere URLs für den gleichen Inhalt. Das kann zum Beispiel für ein besseres Tracking ein­ge­setzt werden. Das Open-Graph-Tag stellt sicher, dass immer auf die richtige Website verlinkt wird.

<meta property="og:url" content="http://www.example.org/articles/id3498/">
Hinweis

Facebook zeigt in der Vorschau nicht die komplette URL an, sondern nur die Domain.

Type

Der Typ gibt bekannt, worum es sich bei dem Inhalt ei­gent­lich handelt. Bei den meisten Websites dürften die Typen „website“, „blog“ oder „article“ passen. Darüber hinaus gibt es aber noch weitere Mög­lich­kei­ten:

  • website
  • article
  • blog
  • profile
  • book
  • video
    • video.movie
    • video.episode
    • video.tv_show
    • video.other
  • music
    • music.song
    • music.album
    • music.playlist
    • music.radio_station
Hinweis

Um den Music-Type richtig nutzen zu können, muss Facebook den ent­spre­chen­den Website-Betreiber erst frei­schal­ten. Auf der Whitelist befinden sich aber in erster Linie große Un­ter­neh­men wie Spotify.

In der Praxis stößt man auch auf weitere Typen, wobei man sich damit auf eine Liste von schema.org bezieht. Die in diesem Artikel vor­ge­stell­ten Typen sind alle auf der of­fi­zi­el­len Website von Open Graph spe­zi­fi­ziert.

Fakt

Viele Typen er­mög­li­chen noch weitere Spe­zi­fi­ka­tio­nen, die als ge­son­der­te Meta-Pro­per­ties angeführt werden, nachdem man den Typ fest­ge­legt hat. An dieser Stelle sei ex­em­pla­risch ein Artikel näher spe­zi­fi­ziert. Für die anderen Typen findet man auf der Homepage von Open Graph weitere Spe­zi­fi­ka­tio­nen.

<meta property="og:type" content="article">
<meta property="article:published_time" content="2019-04-25">
<meta property="article:section" content="Multimedia">

Der Code in diesem Beispiel teilt den sozialen Netz­wer­ken also nicht nur mit, dass das Objekt ein Artikel ist, sondern auch, wann dieser ver­öf­fent­licht wurde und in welcher Kategorie er auftaucht.

Die Open-Graph-Tags im Überblick

Neben den oben vor­ge­stell­ten wich­tigs­ten Open-Graph-Tags gibt es noch weitere, die man im Quelltext der eigenen Website un­ter­brin­gen kann. Damit kann man den Inhalt noch stärker auf die sozialen Netzwerke zu­schnei­den.

Jedes Open-Graph-Tag verfügt über einen Inhalt, der an der richtigen Stelle im sozialen Netzwerk prä­sen­tiert werden soll – und dieser muss im richtigen Format vorliegen. Das Tag og:title bei­spiels­wei­se erfordert ein oder mehrere Wörter, also einen String. Darüber hinaus sind aber auch folgende Werte möglich:

  • Boolean: Wahr­heits­an­ga­ben (true, false, 1, 0)
  • DateTime: Zeit­an­ga­be im Format yyyy-mm-ddThh:mm:ss
  • Enum: Set an fest­ge­leg­ten Angaben (wie z. B. male, female)
  • Float: 64-Bit-Gleit­kom­ma­zahl
  • Integer: 32-Bit-Ganzzahl
  • String: Abfolge von Unicode-Zeichen
  • URL: Funk­ti­ons­tüch­ti­ge URL, welche die Pro­to­kol­le HTTP oder HTTPS verwendet
  • Array: Sammlung von Werten
Tag Be­schrei­bung Inhalt
og:title Titel der Website String
og:de­ter­mi­ner Gram­ma­ti­ka­li­scher Artikel vor dem Titel Enum
og:de­scrip­ti­on Be­schrei­bung der Website String
og:site_name Name des Online-Auftritts String
og:url Ka­no­ni­sche URL URL
og:locale Land und Sprach­an­ga­be String (language_TERRITORY)
og:locale:alternate Al­ter­na­ti­ve Län­der­an­ga­be Array
og:type Art des Inhalts String
og:image Quelle für ein Bild URL
og:image:secure_url Al­ter­na­ti­ve, ge­si­cher­te URL (HTTPS) URL
og:image:type Medientyp des Bildes String
og:image:width Breite in Pixeln Integer
og:image:height Höhe in Pixeln Integer
og:image:alt Al­ter­na­ti­ver Text zum Bild String
og:audio Quelle für eine Au­dio­da­tei URL
og:audio:secure_url Al­ter­na­ti­ve, ge­si­cher­te URL (HTTPS) URL
og:audio:type Medientyp der Au­dio­da­tei String
og:audio:alt Al­ter­na­ti­ver Text zur Au­dio­da­tei String
og:video Quelle für ein Video URL
og:video:secure_url Al­ter­na­ti­ve, ge­si­cher­te URL (HTTPS) URL
og:video:type Medientyp des Videos String
og:video:width Breite des Videos in Pixeln Integer
og:video:height Höhe des Videos in Pixeln Integer

Open-Graph-Tags zu un­ter­schied­li­chen Ob­jekt­ty­pen:

Tag Be­schrei­bung Inhalt
music:duration Dauer des Songs in Sekunden Integer (>=1)
music:album Album, auf dem der Song ist Array (music.album)
music:album:disc Disc (CD, LP-Seite), auf welcher der Song ist Integer (>=1)
music:album:track Nummer des Songs auf dem Album Integer (>=1)
music:musician Name der Musiker Array (profile)
music:song Song auf dem Album String (music.song)
music:song:disc Disc (CD, LP-Seite), auf welcher der Song ist Integer (>=1)
music:song:track Nummer des Songs auf dem Album Integer (>=1)
music:release_date Ver­öf­fent­li­chungs­da­tum des Albums DateTime
music:creator Ersteller der Playlist oder des Ra­dio­sen­ders Array (profile)
video:actor Dar­stel­ler im Film Array (profile)
video:actor:role Rolle eines Dar­stel­lers String
video:director Re­gis­seu­re des Films Array (profile)
video:writer Dreh­buch­schrei­ber des Films Array (profile)
video:duration Dauer des Films in Sekunden Integer (>=1)
video:release_date Ver­öf­fent­li­chungs­da­tum des Films DateTime
video:tag Schlüs­sel­be­grif­fe rund um das Video Array (String)
video:series Serie, zu der die Episode gehört String (video.tv_show)
article:published_time Ver­öf­fent­li­chungs­da­tum des Artikels DateTime
article:modified_time Letzte Änderung des Artikels DateTime
article:ex­pi­ra­ti­on_time Ab­lauf­da­tum des Artikels DateTime
article:author Autoren des Artikels Array (profile)
article:section Kategorie des Artikels String
article:tag Schlüs­sel­be­grif­fe rund um den Artikel Array (String)
book:author Autoren des Buches Array (profile)
book:isbn ISBN des Buches String
book:release_date Ver­öf­fent­li­chungs­da­tum des Buches DateTime
book:tag Schlüs­sel­be­grif­fe rund um das Buch Array (String)
profile:first_name Vorname der Person String
profile:last_name Nachname der Person String
profile:username Pseudonym der Person String
profile:gender Ge­schlecht der Person Enum

So setzt man Open Graph ein: Beispiel-Code

Das folgende Beispiel zeigt ein sehr einfaches HTML-Dokument, das durch Open-Graph-Tags für soziale Netzwerke auf­be­rei­tet wurde:

<!DOCTYPE html>
<html>
<html prefix="og: http://ogp.me/ns#">
<head>
<title>First Article</title>
<meta property="og:type" content="article">
<meta property="og:title" content="My first article">
<meta property="og:description" content="This is a very cool article.">
<meta property="og:site_name" content="Our Website">
<meta property="og:url" content="http://www.example.org/ogp_test.html">
<meta property="og:image" content="http://www.example.org/teddy.png">
<meta property="og:image:type" content="image/jpg" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="627" />
<meta property="og:image:alt" content="A teddy bear" />
<meta property="article:published_time" content="2019-04-25">
<meta property="article:author" content="Carl">
</head>
<body>
<h1>My First Article</h1>
<p>This is a test.</p>
</body>
</html>

In den Open-Graph-Tags spe­zi­fi­ziert man das Dokument als Artikel, legt Title, De­scrip­ti­on und URL fest, und bietet ein passendes Bild an. Darüber hinaus liefert man sowohl zum Artikel selbst, als auch zum Bild weitere In­for­ma­tio­nen.

Um zu über­prü­fen, ob der Code auch von Facebook korrekt ver­stan­den wird, muss man nicht warten, bis jemand den Inhalt teilt: Facebook bietet mit dem Sharing Debugger ein Tool, das den Quelltext auf Probleme überprüft und alle ge­sam­mel­ten In­for­ma­tio­nen auf­be­rei­tet darstellt. Außerdem zeigt das Tool an, wie die Vorschau schließ­lich auf Facebook er­schei­nen wird.

Um den Debugger zu verwenden benötigt man nur einen Facebook-Account. Die zu prüfende Website muss aber bereits online verfügbar sein.

Zum Hauptmenü