{"id":15577,"date":"2026-09-05T15:06:43","date_gmt":"2026-09-05T13:06:43","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/werkzeuge\/open-graph-social-card-checker-og-image-twitter-card\/"},"modified":"2026-09-05T15:06:43","modified_gmt":"2026-09-05T13:06:43","slug":"open-graph-social-card-checker-og-image-twitter-card","status":"publish","type":"page","link":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/open-graph-social-card-checker-og-image-twitter-card\/","title":{"rendered":"Open-Graph- und Social-Card-Pr\u00fcfer: og:image, Twitter Card, Linkvorschau"},"content":{"rendered":"<div class=\"gtm-analyser-container\" style=\"background: var(--bg-panel, #1e1e24); padding: 25px; border-radius: 8px; border: 1px solid var(--border, #2a2a35);\">\n<p style=\"color: var(--text-secondary, #a0a0b0); margin-bottom: 20px;\">Wird ein Link in einen Chat oder ein soziales Netzwerk eingef\u00fcgt, holt die empfangende App die Seite einmal und baut aus einer Handvoll Meta-Tags eine Karte: og:title, og:description, og:image und f\u00fcr X den twitter:card-Typ. Jeder Fehler zeigt sich als kaputte Vorschau: ein fehlendes Bild, ein winziges Logo \u00fcber die ganze Karte gezogen, ein Titel, der der Seitenname ist, eine Beschreibung, die der Cookie-Hinweis ist. Diese Pr\u00fcfung holt die Seite von diesem Server aus, liest die Tags, l\u00e4dt das Bild und vermisst es, und zeichnet die Karte so, wie ein erstes Teilen sie s\u00e4he, ohne dass hier ein Skript der Zielseite l\u00e4uft.<\/p>\n<div style=\"margin-bottom: 14px;\">\n        <label for=\"og-url\" style=\"color: var(--text-secondary, #a0a0b0); display: block; font-size: 0.85rem; margin-bottom: 5px;\">Seitenadresse<\/label><br \/>\n        <input id=\"og-url\" type=\"text\" value=\"https:\/\/www.lukaswojcik.com\/blog\/en\/toolbox\/\" class=\"form-control\" style=\"width: 100%; padding: 10px; background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); color: var(--text-primary, #e8e8ee); border-radius: 6px; box-sizing: border-box; font-family: monospace;\">\n    <\/div>\n<p style=\"color: var(--text-secondary, #a0a0b0); font-size: 0.82rem; margin-bottom: 16px;\">Von diesem Server aus: eine Anfrage f\u00fcr die Seite (h\u00f6chstens 1 MB) und eine f\u00fcr das og:image (h\u00f6chstens 6 MB). Die Vorschau zeigt eine verkleinerte Kopie dieses Bildes, in die Antwort eingebettet, damit der Browser des Besuchers nichts von der Zielseite l\u00e4dt. Hosts in privaten, Loopback- und Link-local-Netzen werden abgelehnt. Die Abfrage ist durch reCAPTCHA v3 gesch\u00fctzt; die aufrufende IP-Adresse und das Ziel werden eine Stunde lang gespeichert, um die Rate zu begrenzen.<\/p>\n<p>    <button id=\"og-btn\" class=\"button\" style=\"background: var(--accent, #7ee787); color: var(--on-accent, #0b1114); border: none; padding: 12px 24px; border-radius: 6px; font-weight: 700; cursor: pointer;\">Teilen-Vorschau pr\u00fcfen<\/button><\/p>\n<div id=\"og-ausgabe\" style=\"margin-top: 22px;\"><\/div>\n<p style=\"color: var(--text-secondary, #a0a0b0); font-size: 0.8rem; margin: 24px 0 0;\">Grenzen, die dazugeh\u00f6ren: Nur Tags im ausgelieferten HTML z\u00e4hlen, per JavaScript eingef\u00fcgte Tags sind f\u00fcr jeden Crawler und f\u00fcr diese Pr\u00fcfung gleicherma\u00dfen unsichtbar; die hier gezeichnete Karte folgt dem \u00fcblichen Aufbau, jedes Netzwerk schneidet und k\u00fcrzt auf eigene Art; Caches bei Facebook, LinkedIn und Messengern halten eine \u00e4ltere Fassung einer Seite tagelang, ein korrigierter Tag erscheint dort erst nach erneutem Abruf; und nur das erste og:image wird vermessen.<\/p>\n<\/div>\n<p><script>\n(function () {\n    'use strict';<\/p>\n<p>    const T = {\"einleitung\":\"Wird ein Link in einen Chat oder ein soziales Netzwerk eingef\u00fcgt, holt die empfangende App die Seite einmal und baut aus einer Handvoll Meta-Tags eine Karte: og:title, og:description, og:image und f\u00fcr X den twitter:card-Typ. Jeder Fehler zeigt sich als kaputte Vorschau: ein fehlendes Bild, ein winziges Logo \u00fcber die ganze Karte gezogen, ein Titel, der der Seitenname ist, eine Beschreibung, die der Cookie-Hinweis ist. Diese Pr\u00fcfung holt die Seite von diesem Server aus, liest die Tags, l\u00e4dt das Bild und vermisst es, und zeichnet die Karte so, wie ein erstes Teilen sie s\u00e4he, ohne dass hier ein Skript der Zielseite l\u00e4uft.\",\"label_url\":\"Seitenadresse\",\"datenschutz\":\"Von diesem Server aus: eine Anfrage f\u00fcr die Seite (h\u00f6chstens 1 MB) und eine f\u00fcr das og:image (h\u00f6chstens 6 MB). Die Vorschau zeigt eine verkleinerte Kopie dieses Bildes, in die Antwort eingebettet, damit der Browser des Besuchers nichts von der Zielseite l\u00e4dt. Hosts in privaten, Loopback- und Link-local-Netzen werden abgelehnt. Die Abfrage ist durch reCAPTCHA v3 gesch\u00fctzt; die aufrufende IP-Adresse und das Ziel werden eine Stunde lang gespeichert, um die Rate zu begrenzen.\",\"knopf\":\"Teilen-Vorschau pr\u00fcfen\",\"laeuft\":\"Seite und Bild werden geholt...\",\"grenze\":\"Grenzen, die dazugeh\u00f6ren: Nur Tags im ausgelieferten HTML z\u00e4hlen, per JavaScript eingef\u00fcgte Tags sind f\u00fcr jeden Crawler und f\u00fcr diese Pr\u00fcfung gleicherma\u00dfen unsichtbar; die hier gezeichnete Karte folgt dem \u00fcblichen Aufbau, jedes Netzwerk schneidet und k\u00fcrzt auf eigene Art; Caches bei Facebook, LinkedIn und Messengern halten eine \u00e4ltere Fassung einer Seite tagelang, ein korrigierter Tag erscheint dort erst nach erneutem Abruf; und nur das erste og:image wird vermessen.\",\"h_vorschau\":\"Vorschau\",\"vorschau_hinweis\":\"Gezeichnet aus den gefundenen Tags, das Bild auf diesem Server verkleinert. Die echte Karte weicht je Netzwerk in Zuschnitt und K\u00fcrzung ab.\",\"karte_ohne_bild\":\"kein Bild\",\"karte_ohne_titel\":\"(kein Titel)\",\"karte_ohne_beschreibung\":\"(keine Beschreibung)\",\"h_bild\":\"Bild\",\"zeile_bild_url\":\"og:image aufgel\u00f6st zu\",\"zeile_bild_masse\":\"Ma\u00dfe\",\"zeile_bild_typ\":\"Typ und Gr\u00f6\u00dfe\",\"zeile_bild_status\":\"Abrufstatus\",\"zeile_dauer\":\"Dauer\",\"zeile_limit\":\"Pr\u00fcfungen in dieser Stunde noch\",\"wert_keines\":\"keines\",\"wert_fehlt\":\"fehlt\",\"wert_leer\":\"(leer)\",\"h_tags\":\"Tags, wie ausgeliefert\",\"h_befunde\":\"Befunde\",\"stufe_hoch\":\"Hoch\",\"stufe_mittel\":\"Mittel\",\"stufe_niedrig\":\"Niedrig\",\"stufe_info\":\"Hinweis\",\"stufe_gut\":\"In Ordnung\",\"keine_befunde\":\"Nichts zu berichten.\",\"urteil_gut\":\"Die Seite teilt sich mit einer vollst\u00e4ndigen Karte.\",\"urteil_warnung\":\"Die Karte erscheint, aber ein Teil fehlt oder wird irgendwo falsch aussehen.\",\"urteil_kritisch\":\"Das Bild l\u00e4sst sich nicht zeigen, oder die Seite ist kein HTML.\",\"fehler_kein_token\":\"Die Pr\u00fcfung konnte nicht starten, weil reCAPTCHA nicht geladen wurde.\",\"fehler_captcha\":\"reCAPTCHA hat die Anfrage als automatisiert eingestuft. Ein Neuladen der Seite hilft in der Regel.\",\"fehler_zu_viele\":\"Die Grenze von {limit} Pr\u00fcfungen je Stunde f\u00fcr diese Adresse ist erreicht.\",\"fehler_adresse\":\"Diese Adresse l\u00e4sst sich nicht verwenden.\",\"fehler_abruf\":\"Die Seite lie\u00df sich nicht abrufen.\",\"fehler_zaehler\":\"Der Z\u00e4hler ist nicht erreichbar, deshalb wurde nichts gepr\u00fcft.\",\"fehler_pruefdienst\":\"Der reCAPTCHA-Dienst war nicht erreichbar.\",\"fehler_aufbau\":\"Der Dienst ist nicht richtig eingerichtet. Der Fehler liegt auf dieser Seite.\",\"fehler_eingabe\":\"Die Anfrage war nicht lesbar.\",\"fehler_methode\":\"Falsche Anfragemethode.\",\"fehler_netz\":\"Der Dienst war nicht erreichbar.\",\"fehler_antwort\":\"Die Antwort war nicht lesbar.\",\"fehler_unbekannt\":\"Etwas ging schief, wof\u00fcr es keine eigene Meldung gibt.\",\"grund_leer\":\"Es wurde nichts eingegeben.\",\"grund_zu_lang\":\"Die Eingabe ist zu lang.\",\"grund_unlesbar\":\"Das ist keine lesbare Adresse.\",\"grund_schema\":\"Gepr\u00fcft werden nur http- und https-Adressen.\",\"grund_benutzerinfo\":\"Eingaben mit Zugangsdaten werden abgelehnt.\",\"grund_kein_punkt\":\"Der Hostname braucht mindestens einen Punkt.\",\"grund_hostform\":\"Es wird ein Hostname gebraucht, keine IP-Adresse.\",\"grund_port\":\"Gepr\u00fcft werden nur die Ports 80, 443, 8080 und 8443.\",\"grund_gesperrter_bereich\":\"Dieser Host l\u00f6st in ein privates oder reserviertes Netz auf. Solche werden nie kontaktiert.\",\"grund_kein_dns\":\"Der Hostname l\u00e4sst sich nicht aufl\u00f6sen.\",\"grund_abruf\":\"Die Adresse hat nicht geantwortet.\",\"grund_zu_viele_spruenge\":\"Die Adresse leitet zu oft weiter.\",\"befund_status\":\"Der Server hat mit Status {status} geantwortet || Crawler, die eine Vorschau bauen, sehen dieselbe Fehlerseite; die meisten zeigen dann gar keine Karte.\",\"befund_weiterleitung\":\"{n}-mal weitergeleitet auf {ziel} || Crawler folgen Weiterleitungen, aber manche cachen die Karte unter der urspr\u00fcnglichen Adresse. Es z\u00e4hlen die Tags der Endseite.\",\"befund_kein_html\":\"Die Adresse liefert {typ}, kein HTML || Keine Tags zu lesen; ein PDF oder ein Bild wird ohne Karte geteilt.\",\"befund_og_title_fehlt\":\"Kein og:title, R\u00fcckfall auf das title-Element ({title}) || Die meisten Netzwerke nehmen das title-Element, wenn og:title fehlt. Seitennamen-Anh\u00e4nge landen dann auf der Karte.\",\"befund_og_title_fehlt_ganz\":\"Kein og:title und kein title-Element || Die Karte hat nichts als \u00dcberschrift; manche Netzwerke zeigen stattdessen die Adresse.\",\"befund_og_title_lang\":\"og:title mit {n} Zeichen || Karten k\u00fcrzen Titel bei etwa 60 bis 70 Zeichen, oft nach einer Zeile. Die Bedeutung sollte am Anfang stehen.\",\"befund_og_title_ok\":\"og:title mit {n} Zeichen || Eine L\u00e4nge, die auf die Karte passt.\",\"befund_og_title_gleich_title\":\"og:title ist gleich dem title-Element und lang || Der Kartentitel tr\u00e4gt wom\u00f6glich den Seitennamen-Anhang, der in Suchergebnisse geh\u00f6rt, aber nicht auf eine Karte.\",\"befund_og_description_fehlt\":\"Kein og:description, R\u00fcckfall auf die Meta-Beschreibung || Funktioniert bei den meisten Netzwerken. Ein eigenes og:description l\u00e4sst sich f\u00fcr die Karte schreiben statt f\u00fcr Suchergebnisse.\",\"befund_og_description_fehlt_ganz\":\"Kein og:description und keine Meta-Beschreibung || Die Karte zeigt nur einen Titel, oder das Netzwerk greift einen beliebigen Satz der Seite.\",\"befund_og_description_lang\":\"og:description mit {n} Zeichen || Karten zeigen h\u00f6chstens zwei Zeilen, etwa 120 bis 200 Zeichen. Der Rest wird abgeschnitten.\",\"befund_og_description_kurz\":\"og:description mit nur {n} Zeichen || Zu kurz, um zu sagen, was die Seite bietet.\",\"befund_og_description_ok\":\"og:description mit {n} Zeichen || Passt in die zwei Zeilen einer Karte.\",\"befund_og_image_fehlt\":\"Kein og:image || Die Karte erscheint ohne Bild, oder das Netzwerk greift das erste gro\u00dfe Bild der Seite, was selten das richtige ist. Ein Tag mit absoluter https-Adresse behebt es.\",\"befund_og_image_http\":\"og:image \u00fcber http: {url} || Mehrere Netzwerke lehnen gemischte Inhalte ab und zeigen kein Bild. Die https-Adresse nehmen oder og:image:secure_url erg\u00e4nzen.\",\"befund_og_image_relativ\":\"og:image ist ein relativer Pfad: {wert} || Die Spezifikation verlangt eine absolute URL. Manche Crawler l\u00f6sen sie auf, andere zeigen kein Bild. Diese Pr\u00fcfung hat sie gegen die Seitenadresse aufgel\u00f6st.\",\"befund_og_image_unerreichbar\":\"og:image l\u00e4sst sich nicht holen ({status} {fehler}): {url} || Der Tag zeigt auf eine Adresse, die nicht antwortet. Die Karte zeigt kein Bild, und Netzwerke cachen diesen Fehlschlag.\",\"befund_og_image_unlesbar\":\"og:image ist kein lesbares Bild ({typ}, {kb} KB) || Die Adresse antwortet, aber nicht mit Bilddaten. Oft eine HTML-Seite, eine Weiterleitung zum Login oder ein SVG, das die meisten Netzwerke nicht rendern.\",\"befund_og_image\":\"Bild {breite} \u00d7 {hoehe} px, {typ}, {kb} KB, Seitenverh\u00e4ltnis {verhaeltnis}:1 || Nach dem Herunterladen der Datei vermessen.\",\"befund_og_image_zu_klein\":\"Bild zu klein: {breite} \u00d7 {hoehe} px || Facebook und LinkedIn verlangen mindestens 200 \u00d7 200 px und zeigen darunter nichts.\",\"befund_og_image_klein\":\"Bild schmaler als 600 px: {breite} \u00d7 {hoehe} px || Unter 600 px Breite zeigt Facebook ein kleines quadratisches Vorschaubild statt der gro\u00dfen Karte. 1200 \u00d7 630 px ist die sichere Gr\u00f6\u00dfe f\u00fcr jedes Netzwerk.\",\"befund_og_image_mittel\":\"Bild unter den empfohlenen 1200 \u00d7 630 px: {breite} \u00d7 {hoehe} px || Die gro\u00dfe Karte erscheint, aber hochskaliert und weich auf hochaufl\u00f6senden Bildschirmen.\",\"befund_og_image_gross_genug\":\"Bild {breite} \u00d7 {hoehe} px, gro\u00df genug f\u00fcr jedes Netzwerk || Erf\u00fcllt die Empfehlung von 1200 \u00d7 630 px.\",\"befund_og_image_verhaeltnis\":\"Seitenverh\u00e4ltnis {verhaeltnis}:1 || Karten werden auf etwa 1,91:1 zugeschnitten. Ein quadratisches oder hochkantes Bild verliert oben und unten; ein sehr breites an den Seiten. F\u00fcr 1,91:1 zu komponieren vermeidet den Zuschnitt.\",\"befund_og_image_zu_gross\":\"Bild wiegt {mb} MB || Facebook lehnt Bilder \u00fcber 8 MB ab und zeigt kein Kartenbild. Auf deutlich unter 1 MB neu zu komprimieren kostet auf einer Karte nichts.\",\"befund_og_image_gross\":\"Bild wiegt {mb} MB || X begrenzt Kartenbilder auf 5 MB; andere nehmen es, holen aber langsam. Neu komprimieren hilft \u00fcberall.\",\"befund_og_image_schwer\":\"Bild wiegt {kb} KB || In Ordnung f\u00fcr jedes Netzwerk, aber eine Karte braucht nicht mehr als ein paar hundert KB.\",\"befund_og_image_format\":\"Bildformat {typ} || Netzwerke rendern JPEG, PNG, GIF und meist WebP. SVG und AVIF ignorieren mehrere von ihnen.\",\"befund_og_image_webp\":\"Bild ist WebP || Facebook, X und LinkedIn rendern WebP; manche Messenger und \u00e4ltere Integrationen nicht. Ein JPEG ist die sichere Wahl f\u00fcr das Teilen-Bild.\",\"befund_og_image_weiterleitung\":\"og:image leitet weiter ({n} Sprung\\\/Spr\u00fcnge) || Crawler folgen, aber eine Weiterleitung vor dem Bild verlangsamt jede Vorschau, und manche cachen das Weiterleitungsziel. Den Tag auf die Endadresse zeigen lassen.\",\"befund_og_image_masse_fehlen\":\"Kein og:image:width und og:image:height (gemessen: {breite} \u00d7 {hoehe}) || Ohne diese zeigt Facebook das allererste Teilen ohne Bild, weil es die Datei noch nicht geholt hat. Die beiden Tags lassen die Karte schon beim ersten Teilen richtig erscheinen.\",\"befund_og_image_masse_falsch\":\"og:image:width\\\/height ({angegeben}) passen nicht zur Datei ({gemessen}) || Falsche Ma\u00dfe verzerren die erste Darstellung. Die Tags sollten die tats\u00e4chliche Pixelgr\u00f6\u00dfe tragen.\",\"befund_og_image_alt_fehlt\":\"Kein og:image:alt || Screenreader in sozialen Netzwerken lesen den Alt-Text des Kartenbilds. Optional, aber billig.\",\"befund_og_image_mehrere\":\"{n} og:image-Tags || Netzwerke nehmen das erste, manche lassen w\u00e4hlen. Nur das erste wurde vermessen.\",\"befund_og_url_fehlt\":\"Kein og:url || og:url nennt die kanonische Adresse, unter der ein Teilen gez\u00e4hlt werden soll. Ohne es zersplittern Teilungen derselben Seite unter verschiedenen Adressen.\",\"befund_og_url_abweichend\":\"og:url ({og}) weicht von der kanonischen Adresse ({canonical}) ab || Teilungen, Likes und gecachte Karten h\u00e4ngen an og:url. Eine Abweichung verteilt sie auf zwei Adressen oder lenkt die Karte auf die falsche Seite.\",\"befund_og_url_ok\":\"og:url passt zur kanonischen Adresse || Teilungen h\u00e4ngen an der richtigen Adresse.\",\"befund_og_type_fehlt\":\"Kein og:type || Vorgabe ist website. Artikel sollten article sagen, damit Netzwerke Ver\u00f6ffentlichungsdaten zeigen.\",\"befund_og_type\":\"og:type {typ} || Der Objekttyp, nach dem Netzwerke das Kartenlayout w\u00e4hlen.\",\"befund_og_site_name_fehlt\":\"Kein og:site_name || Karten zeigen die Domain statt des Seitennamens. Kosmetik.\",\"befund_og_locale_form\":\"og:locale {wert} hat nicht die Form sprache_GEBIET || Der Wert sollte wie de_DE oder en_US aussehen.\",\"befund_article_ohne_datum\":\"og:type ist article ohne article:published_time || Netzwerke zeigen auf Artikelkarten das Ver\u00f6ffentlichungsdatum, wenn der Tag da ist.\",\"befund_twitter_card_fehlt\":\"Kein twitter:card || X f\u00e4llt auf eine kleine summary-Karte zur\u00fcck oder auf keine. summary_large_image zeigt das og:image in voller Breite; die \u00fcbrigen Tags kommen aus Open Graph.\",\"befund_twitter_card_ungueltig\":\"twitter:card hat einen unbekannten Wert: {wert} || G\u00fcltig sind summary, summary_large_image, app und player.\",\"befund_twitter_card\":\"twitter:card {karte} || X nutzt dieses Layout und liest Titel, Beschreibung und Bild aus den Open-Graph-Tags, wenn die twitter:-Varianten fehlen.\",\"befund_twitter_summary_mit_grossem_bild\":\"twitter:card ist summary, obwohl das Bild 1200 px breit ist || Das gro\u00dfe Bild wird auf ein Vorschaubild geschrumpft. summary_large_image zeigt es in voller Breite.\",\"befund_twitter_site_fehlt\":\"Kein twitter:site oder twitter:creator || Optional; X schreibt die Karte einem Konto zu, wenn eines genannt ist.\"};<\/p>\n<p>    var ENDPUNKT = '\/lw-ogcheck.php';\n    var SITEKEY = '6LcrPkEtAAAAAPo1QCOf-IIM2fCL0UfdJz4y2iSY';\n    var STUFEN = ['hoch', 'mittel', 'niedrig', 'info', 'gut'];\n    var OG_REIHE = ['title', 'description', 'image', 'image:secure_url', 'image:width', 'image:height', 'image:alt', 'image:type', 'url', 'type', 'site_name', 'locale'];\n    var TW_REIHE = ['card', 'title', 'description', 'image', 'image:alt', 'site', 'creator'];<\/p>\n<p>    function liste(w) { return Array.isArray(w) ? w : []; }\n    function zahl(w) { return (typeof w === 'number' && isFinite(w)) ? w : null; }\n    function text(schluessel, daten) {\n        var t = T[schluessel];\n        if (typeof t !== 'string') { return null; }\n        return t.replace(\/\\{([a-z_0-9]+)\\}\/g, function (m, k) {\n            return (daten && daten[k] !== undefined && daten[k] !== null) ? String(daten[k]) : m;\n        });\n    }\n    function strMap(o) { var r = {}; if (o && typeof o === 'object') { Object.keys(o).forEach(function (k) { if (typeof o[k] === 'string') { r[k] = o[k]; } }); } return r; }<\/p>\n<p>    function bewerten(antwort) {\n        var a = antwort || {};\n        if (a.fehler) { return { fehler: String(a.fehler), grund: a.grund || null, limit: zahl(a.limit) }; }\n        var befunde = liste(a.befunde).map(function (f) {\n            return { key: String(f.key || ''), stufe: STUFEN.indexOf(f.stufe) === -1 ? 'info' : f.stufe, daten: (f.daten && typeof f.daten === 'object') ? f.daten : {} };\n        });\n        var gruppen = {};\n        STUFEN.forEach(function (s) { gruppen[s] = befunde.filter(function (f) { return f.stufe === s; }); });\n        var k = (a.karte && typeof a.karte === 'object') ? a.karte : {};\n        var bi = (a.bild && typeof a.bild === 'object') ? a.bild : null;\n        var vorschau = bi && typeof bi.vorschau === 'string' && \/^data:image\\\/(jpeg|png|webp);base64,[A-Za-z0-9+\/=]+$\/.test(bi.vorschau) ? bi.vorschau : null;\n        return {\n            fehler: null, url: a.url ? String(a.url) : '', endurl: a.endurl ? String(a.endurl) : '',\n            urteil: (a.urteil === 'gut' || a.urteil === 'warnung' || a.urteil === 'kritisch') ? a.urteil : 'kritisch',\n            karte: { titel: k.titel ? String(k.titel) : null, beschreibung: k.beschreibung ? String(k.beschreibung) : null, site: k.site ? String(k.site) : null, host: k.host ? String(k.host) : '' },\n            og: strMap(a.og), twitter: strMap(a.twitter), title: a.title ? String(a.title) : null, description: a.description ? String(a.description) : null, canonical: a.canonical ? String(a.canonical) : null,\n            bild: bi ? { url: bi.url ? String(bi.url) : null, status: zahl(bi.status), breite: zahl(bi.breite), hoehe: zahl(bi.hoehe), typ: bi.typ ? String(bi.typ) : null, kb: zahl(bi.kb), vorschau: vorschau, fehler: bi.fehler ? String(bi.fehler) : null } : null,\n            befunde: befunde, gruppen: gruppen, dauer: zahl(a.dauer_ms), limitRest: zahl(a.limit_rest)\n        };\n    }<\/p>\n<p>    function skriptLaden() {\n        return new Promise(function (auf) {\n            if (window.grecaptcha) { auf(true); return; }\n            var s = document.createElement('script');\n            s.src = 'https:\/\/www.google.com\/recaptcha\/api.js?render=' + SITEKEY;\n            s.onload = function () { auf(true); }; s.onerror = function () { auf(false); };\n            document.head.appendChild(s);\n            setTimeout(function () { auf(!!window.grecaptcha); }, 8000);\n        });\n    }\n    function tokenHolen() {\n        return skriptLaden().then(function (da) {\n            if (!da || !window.grecaptcha || !window.grecaptcha.ready) { return null; }\n            return new Promise(function (auf) {\n                var fertig = false;\n                function einmal(w) { if (!fertig) { fertig = true; auf(w); } }\n                setTimeout(function () { einmal(null); }, 12000);\n                try {\n                    window.grecaptcha.ready(function () {\n                        if (fertig) { return; }\n                        if (!window.grecaptcha.execute) { einmal(null); return; }\n                        window.grecaptcha.execute(SITEKEY, { action: 'ogcheck' }).then(function (t) { einmal(t || null); }, function () { einmal(null); });\n                    });\n                } catch (e) { einmal(null); }\n            });\n        }, function () { return null; });\n    }\n    function abfragen(url) {\n        return tokenHolen().then(function (token) {\n            return fetch(ENDPUNKT, { method: 'POST', headers: { 'Content-Type': 'application\/json' }, body: JSON.stringify({ url: url, token: token || '' }) })\n                .then(function (r) { return r.json().then(function (j) { return j; }, function () { return { fehler: 'antwort' }; }); }, function () { return { fehler: 'netz' }; });\n        });\n    }<\/p>\n<p>    window.LW_TEST = window.LW_TEST || {};\n    window.LW_TEST.OG = { bewerten: bewerten, darstellen: null, text: text, ENDPUNKT: ENDPUNKT, STUFEN: STUFEN, T: T };<\/p>\n<p>    var btn = document.getElementById('og-btn');\n    var out = document.getElementById('og-ausgabe');\n    if (!btn || !out) { return; }<\/p>\n<p>    function el(tag, stil, txt) { var e = document.createElement(tag); if (stil) { e.setAttribute('style', stil); } if (txt !== undefined && txt !== null) { e.textContent = txt; } return e; }\n    function wert(id) { var e = document.getElementById(id); return e ? e.value : ''; }\n    var UEBERSCHRIFT = 'font-family: \"Nunito Sans\", sans-serif; font-weight: 700; color: var(--text-primary, #e8e8ee); font-size: 0.95rem; margin: 22px 0 8px;';\n    var ZELLE = 'padding: 5px 12px 5px 0; color: var(--text-secondary, #a0a0b0); font-size: 0.87rem;';\n    var ZELLE_WERT = 'padding: 5px 12px 5px 0; color: var(--text-primary, #e8e8ee); font-size: 0.87rem; font-family: monospace; word-break: break-all;';\n    var KASTEN = 'background: var(--bg-body, #14141a); border: 1px solid var(--border, #2a2a35); border-radius: 8px; padding: 14px 16px; margin: 0 0 10px;';\n    var GUT = ' color: #7ee787;', WARN = ' color: #ffa94d;', ROT = ' color: #ff7b72;', GRAU = ' color: #8a8a99;';\n    var FARBEN = { hoch: '#ff7b72', mittel: '#ffa94d', niedrig: '#e3b341', info: '#8a8a99', gut: '#7ee787' };\n    var URTEIL = { gut: GUT, warnung: WARN, kritisch: ROT };\n    function gitter(sp) { return el('div', 'display: grid; grid-template-columns: ' + sp + '; gap: 0 18px; align-items: baseline;'); }\n    function paar(g, n, w, stil) { g.appendChild(el('div', ZELLE, n)); g.appendChild(el('div', ZELLE_WERT + (stil || ''), w)); }<\/p>\n<p>    function karte(b) {\n        var k = el('div', 'max-width: 520px; border: 1px solid var(--border, #2a2a35); border-radius: 12px; overflow: hidden; background: var(--bg-body, #14141a); margin: 0 0 8px;');\n        if (b.bild && b.bild.vorschau) {\n            var img = document.createElement('img'); img.src = b.bild.vorschau; img.alt = ''; img.setAttribute('style', 'display: block; width: 100%; aspect-ratio: 1.91 \/ 1; object-fit: cover; background: #000;');\n            k.appendChild(img);\n        } else {\n            k.appendChild(el('div', 'width: 100%; aspect-ratio: 1.91 \/ 1; display: flex; align-items: center; justify-content: center; color: #8a8a99; font-size: 0.85rem; background: #0b0b10;', T.karte_ohne_bild));\n        }\n        var unten = el('div', 'padding: 10px 14px;');\n        unten.appendChild(el('div', 'font-size: 0.75rem; text-transform: uppercase; color: #8a8a99; letter-spacing: 0.4px;', b.karte.host || ''));\n        unten.appendChild(el('div', 'font-weight: 700; color: var(--text-primary, #e8e8ee); font-size: 0.95rem; margin: 3px 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;', b.karte.titel || T.karte_ohne_titel));\n        unten.appendChild(el('div', 'color: var(--text-secondary, #a0a0b0); font-size: 0.82rem; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;', b.karte.beschreibung || T.karte_ohne_beschreibung));\n        k.appendChild(unten);\n        return k;\n    }<\/p>\n<p>    function darstellen(b, ziel) {\n        ziel.innerHTML = '';\n        if (b.fehler) {\n            var txt = T['fehler_' + b.fehler] || T.fehler_unbekannt;\n            if (b.grund && T['grund_' + b.grund]) { txt = txt + ' ' + T['grund_' + b.grund]; }\n            if (b.limit !== null) { txt = txt.replace('{limit}', String(b.limit)); }\n            ziel.appendChild(el('p', ZELLE + WARN + ' margin: 0;', txt));\n            return;\n        }\n        ziel.appendChild(el('div', 'font-size: 1.05rem; font-weight: 700; margin: 0 0 12px;' + URTEIL[b.urteil], T['urteil_' + b.urteil]));<\/p>\n<p>        ziel.appendChild(el('div', UEBERSCHRIFT, T.h_vorschau));\n        ziel.appendChild(karte(b));\n        ziel.appendChild(el('p', ZELLE + ' margin: 0 0 6px; font-size: 0.8rem;', T.vorschau_hinweis));<\/p>\n<p>        ziel.appendChild(el('div', UEBERSCHRIFT, T.h_bild));\n        var gb = gitter('auto auto');\n        if (b.bild) {\n            paar(gb, T.zeile_bild_url, b.bild.url || '-');\n            if (b.bild.breite !== null) { paar(gb, T.zeile_bild_masse, b.bild.breite + ' \u00d7 ' + b.bild.hoehe + ' px' + (b.bild.hoehe ? ' (' + (Math.round(b.bild.breite \/ b.bild.hoehe * 100) \/ 100) + ':1)' : ''), b.bild.breite >= 1200 ? GUT : WARN); }\n            paar(gb, T.zeile_bild_typ, (b.bild.typ || '-') + (b.bild.kb !== null ? ', ' + b.bild.kb + ' KB' : ''), GRAU);\n            paar(gb, T.zeile_bild_status, b.bild.status !== null ? String(b.bild.status) : (b.bild.fehler || '-'), b.bild.status === 200 ? GUT : ROT);\n        } else { paar(gb, T.zeile_bild_url, T.wert_keines, ROT); }\n        if (b.dauer !== null) { paar(gb, T.zeile_dauer, b.dauer + ' ms', GRAU); }\n        if (b.limitRest !== null) { paar(gb, T.zeile_limit, String(b.limitRest), GRAU); }\n        ziel.appendChild(gb);<\/p>\n<p>        ziel.appendChild(el('div', UEBERSCHRIFT, T.h_tags));\n        var gt = gitter('auto auto');\n        paar(gt, 'title', b.title || T.wert_fehlt, b.title ? GRAU : WARN);\n        paar(gt, 'description', b.description || T.wert_fehlt, b.description ? GRAU : WARN);\n        paar(gt, 'canonical', b.canonical || T.wert_fehlt, GRAU);\n        OG_REIHE.forEach(function (k) { if (b.og[k] !== undefined) { paar(gt, 'og:' + k, b.og[k] === '' ? T.wert_leer : b.og[k], k === 'title' || k === 'image' ? '' : GRAU); } });\n        Object.keys(b.og).forEach(function (k) { if (OG_REIHE.indexOf(k) === -1) { paar(gt, 'og:' + k, b.og[k] === '' ? T.wert_leer : b.og[k], GRAU); } });\n        TW_REIHE.forEach(function (k) { if (b.twitter[k] !== undefined) { paar(gt, 'twitter:' + k, b.twitter[k] === '' ? T.wert_leer : b.twitter[k], GRAU); } });\n        ziel.appendChild(gt);<\/p>\n<p>        ziel.appendChild(el('div', UEBERSCHRIFT, T.h_befunde));\n        var irgendwas = false;\n        STUFEN.forEach(function (s) {\n            var gr = b.gruppen[s];\n            if (!gr.length) { return; }\n            irgendwas = true;\n            ziel.appendChild(el('div', 'font-weight: 700; font-size: 0.82rem; text-transform: uppercase; letter-spacing: 0.5px; margin: 14px 0 6px; color: ' + FARBEN[s] + ';', T['stufe_' + s] + ' (' + gr.length + ')'));\n            gr.forEach(function (f) {\n                var k = el('div', KASTEN + ' border-left: 3px solid ' + FARBEN[s] + ';');\n                var t = text('befund_' + f.key, f.daten) || f.key;\n                var teile = t.split(' || ');\n                k.appendChild(el('div', 'color: var(--text-primary, #e8e8ee); font-size: 0.9rem; font-weight: 700;', teile[0]));\n                if (teile[1]) { k.appendChild(el('div', ZELLE + ' padding: 6px 0 0; line-height: 1.55;', teile[1])); }\n                ziel.appendChild(k);\n            });\n        });\n        if (!irgendwas) { ziel.appendChild(el('p', ZELLE + ' margin: 0;', T.keine_befunde)); }\n    }\n    window.LW_TEST.OG.darstellen = darstellen;<\/p>\n<p>    var laeuft = false;\n    btn.addEventListener('click', function () {\n        if (laeuft) { return; }\n        laeuft = true; btn.disabled = true;\n        out.innerHTML = '';\n        out.appendChild(el('p', ZELLE + GRAU + ' margin: 0;', T.laeuft));\n        abfragen(wert('og-url')).then(function (a) { darstellen(bewerten(a), out); laeuft = false; btn.disabled = false; },\n            function () { darstellen(bewerten({ fehler: 'netz' }), out); laeuft = false; btn.disabled = false; });\n    });\n})();\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Holt eine Seite, liest ihre Open-Graph- und Twitter-Card-Tags, l\u00e4dt das og:image und vermisst es, und zeichnet dann die Linkvorschau so, wie Messenger und soziale Netzwerke sie zeigen w\u00fcrden: Titel, Beschreibung, Bild und Host, mit Befunden zu Gr\u00f6\u00dfe, Seitenverh\u00e4ltnis, Gewicht, absoluten Adressen und fehlenden Tags.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":9283,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"template-tool-base.php","meta":{"footnotes":""},"tags":[92737,92289,92292],"class_list":["post-15577","page","type-page","status-publish","hentry","tag-content-de","tag-seo-de","tag-web-performance-de"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Open-Graph- und Social-Card-Pr\u00fcfer: og:image, Twitter Card, Linkvorschau - Lukas Wojcik - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/open-graph-social-card-checker-og-image-twitter-card\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Open-Graph- und Social-Card-Pr\u00fcfer: og:image, Twitter Card, Linkvorschau - Lukas Wojcik - Blog\" \/>\n<meta property=\"og:description\" content=\"Holt eine Seite, liest ihre Open-Graph- und Twitter-Card-Tags, l\u00e4dt das og:image und vermisst es, und zeichnet dann die Linkvorschau so, wie Messenger und soziale Netzwerke sie zeigen w\u00fcrden: Titel, Beschreibung, Bild und Host, mit Befunden zu Gr\u00f6\u00dfe, Seitenverh\u00e4ltnis, Gewicht, absoluten Adressen und fehlenden Tags.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/open-graph-social-card-checker-og-image-twitter-card\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/og-default.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/open-graph-social-card-checker-og-image-twitter-card\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/open-graph-social-card-checker-og-image-twitter-card\\\/\",\"name\":\"Open-Graph- und Social-Card-Pr\u00fcfer: og:image, Twitter Card, Linkvorschau - Lukas Wojcik - Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-09-05T13:06:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/open-graph-social-card-checker-og-image-twitter-card\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/open-graph-social-card-checker-og-image-twitter-card\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/de\\\/werkzeuge\\\/open-graph-social-card-checker-og-image-twitter-card\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Toolbox\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/toolbox-2\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Open-Graph- und Social-Card-Pr\u00fcfer: og:image, Twitter Card, Linkvorschau\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\",\"name\":\"Lukas Wojcik - Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\",\"name\":\"luky\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\",\"width\":424,\"height\":636,\"caption\":\"luky\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/07\\\/lw-x2.jpg\"},\"sameAs\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Open-Graph- und Social-Card-Pr\u00fcfer: og:image, Twitter Card, Linkvorschau - Lukas Wojcik - Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/open-graph-social-card-checker-og-image-twitter-card\/","og_locale":"en_US","og_type":"article","og_title":"Open-Graph- und Social-Card-Pr\u00fcfer: og:image, Twitter Card, Linkvorschau - Lukas Wojcik - Blog","og_description":"Holt eine Seite, liest ihre Open-Graph- und Twitter-Card-Tags, l\u00e4dt das og:image und vermisst es, und zeichnet dann die Linkvorschau so, wie Messenger und soziale Netzwerke sie zeigen w\u00fcrden: Titel, Beschreibung, Bild und Host, mit Befunden zu Gr\u00f6\u00dfe, Seitenverh\u00e4ltnis, Gewicht, absoluten Adressen und fehlenden Tags.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/open-graph-social-card-checker-og-image-twitter-card\/","og_site_name":"Lukas Wojcik - Blog","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/08\/og-default.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/open-graph-social-card-checker-og-image-twitter-card\/","url":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/open-graph-social-card-checker-og-image-twitter-card\/","name":"Open-Graph- und Social-Card-Pr\u00fcfer: og:image, Twitter Card, Linkvorschau - Lukas Wojcik - Blog","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"datePublished":"2026-09-05T13:06:43+00:00","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/open-graph-social-card-checker-og-image-twitter-card\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/open-graph-social-card-checker-og-image-twitter-card\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/de\/werkzeuge\/open-graph-social-card-checker-og-image-twitter-card\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Toolbox","item":"https:\/\/www.lukaswojcik.com\/blog\/toolbox-2\/"},{"@type":"ListItem","position":3,"name":"Open-Graph- und Social-Card-Pr\u00fcfer: og:image, Twitter Card, Linkvorschau"}]},{"@type":"WebSite","@id":"https:\/\/www.lukaswojcik.com\/blog\/#website","url":"https:\/\/www.lukaswojcik.com\/blog\/","name":"Lukas Wojcik - Blog","description":"","publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.lukaswojcik.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9","name":"luky","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg","width":424,"height":636,"caption":"luky"},"logo":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/07\/lw-x2.jpg"},"sameAs":["https:\/\/www.lukaswojcik.com\/blog"]}]}},"_links":{"self":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/15577","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/comments?post=15577"}],"version-history":[{"count":0,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/15577\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/pages\/9283"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=15577"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=15577"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}