{"id":15641,"date":"2026-11-05T08:05:00","date_gmt":"2026-11-05T07:05:00","guid":{"rendered":"https:\/\/www.lukaswojcik.com\/blog\/?p=15641"},"modified":"2026-10-26T12:18:51","modified_gmt":"2026-10-26T11:18:51","slug":"link-previews-with-images-and-titles-checking-open-graph-metadata","status":"publish","type":"post","link":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/tutorials-en-digital-marketing\/link-previews-with-images-and-titles-checking-open-graph-metadata\/","title":{"rendered":"Link Previews with Images and Titles: Checking Open Graph Metadata"},"content":{"rendered":"<p>A shared link can become a preview with an image, title and description. The receiving platform chooses the layout and data sources. Open Graph tags are entries in the page\u2019s HTML source that specify information such as its title and image. These tags help describe a page; the tags do not guarantee a particular card on every service.<\/p>\n<p>A saved measurement from 5 September 2026 covers eighteen URLs. The findings below describe the responses received by that checker at that time, not current screenshots from eighteen social platforms.<\/p>\n<figure class=\"lw-diagram\"><img decoding=\"async\" src=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/diagrams\/dia-15641-ogcards-20261025.png\" width=\"1120\" height=\"580\" loading=\"lazy\" alt=\"Historical check, 5 September 2026: response metadata does not prove the final platform preview.\"><figcaption>Historical check, 5 September 2026: response metadata does not prove the final platform preview.<\/figcaption><\/figure>\n<h2>Metadata and platform rules are different layers<\/h2>\n<p>The Open Graph protocol requires <code>og:title<\/code>, <code>og:type<\/code>, <code>og:image<\/code> and <code>og:url<\/code>. The recommended <code>og:description<\/code> adds a short description. The URL identifies the object, while the type distinguishes, for example, a website from an article.<\/p>\n<p>Platforms may also use <code>twitter:<\/code> tags, oEmbed or other information. Slack explicitly documents several such sources. There is no universal rule that a missing Open Graph title always becomes the HTML title or that a missing Open Graph image always produces a text-only card. Explicit, consistent metadata reduces reliance on platform-specific choices.<\/p>\n<h2>What the historical responses contained<\/h2>\n<p>Five of the eighteen responses contained no detected Open Graph tags; thirteen included an image. The saved findings also record two non-success responses and a redirected response among those five. Missing tags in such a response do not establish what a permitted crawler or a normal browser would receive. The dataset does not contain complete response bodies, so assertions about unreadable page content cannot be verified from this record.<\/p>\n<p>Nine responses had no <code>twitter:card<\/code>. Two wide images were paired with <code>summary<\/code>; a third summary declaration accompanied a square image. These are observed declarations, not proof of the final card size or of an accidental design choice.<\/p>\n<h2>Eight image sizes, no universal crop<\/h2>\n<p>The thirteen downloaded images used eight dimension pairs:<\/p>\n<ul><li>1200 \u00d7 630: six images.<\/li><li>2400 \u00d7 1350, 1300 \u00d7 731, 1280 \u00d7 686 and 1024 \u00d7 576: one each.<\/li><li>585 \u00d7 368, 500 \u00d7 500 and 1024 \u00d7 1024: one each.<\/li><\/ul>\n<p>The ratio of 1200 \u00d7 630 is approximately 1.90:1. That is a useful wide format, not an Open Graph requirement. LinkedIn recommends 1.91:1 for customized Page-post previews, while its guidance also describes mobile display without cropping. The claim that every service crops every image to the same frame is therefore too broad. Neither 585 \u00d7 368 nor 500 \u00d7 500 proves that a service must switch to a small card.<\/p>\n<p>Important content benefits from room around the edges, with the result checked on the intended platform. A local schematic preview cannot certify that crop.<\/p>\n<h2>Dimensions and image descriptions<\/h2>\n<p>Eight of the thirteen image responses lacked declared width or height. One saved checker finding flags a mismatch between declared and downloaded dimensions on the Wikipedia HTTP page. The summary does not preserve the original declared numbers.<\/p>\n<p><code>og:image:width<\/code> and <code>og:image:height<\/code> should describe the actual file. These optional fields can help consumers interpret an image; omission alone does not prove a timeout or explain a missing picture. Image access, response time, file type and the receiving service also matter.<\/p>\n<p>Only two image entries contained <code>og:image:alt<\/code>, on MDN and BBC News. The protocol recommends an image description rather than a caption. Whether a service exposes that text to assistive technology depends on its implementation; titles and descriptions can also convey accessible information.<\/p>\n<h2>The historical finding on this blog<\/h2>\n<p>The recorded German blog index had a title, a 1200 \u00d7 630 image and <code>summary_large_image<\/code>, but no <code>og:description<\/code>. The checker recorded an available meta description. That supports a possible fallback in the checker, not proof that every platform displayed the correct wording. It is a dated finding, not a claim about the current index.<\/p>\n<h2>A reproducible first check<\/h2>\n<p>The following Bash example requires curl 8.4 or later and Python 3. It fetches one HTTPS page with limits, then lists Open Graph and Twitter metadata from an explicit HTML head. The parser handles multiline tags and several tags on one line. The example assumes UTF-8, does not run JavaScript and does not fetch images or reproduce a platform crawler.<\/p>\n<figure style=\"--cbb-digits:2\" class=\"cbb cbb--wrap cbb--numbers wp-block-code-beautifier-block-code\" data-lang=\"bash\"><figcaption class=\"cbb-head\"><span class=\"cbb-lang\">Shell<\/span><span class=\"cbb-actions\"><button type=\"button\" class=\"cbb-button cbb-button--wrap\" data-cbb-action=\"wrap\" aria-pressed=\"true\" title=\"Wrap long lines\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><path d=\"M2 4h12M2 8h9.5a2.5 2.5 0 0 1 0 5H8m0 0 1.5-1.5M8 13l1.5 1.5M2 12h3\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"\/><\/svg><span class=\"cbb-sr\">Wrap long lines<\/span><\/button><button type=\"button\" class=\"cbb-button cbb-button--copy\" data-cbb-action=\"copy\" data-cbb-done=\"Copied\" data-cbb-failed=\"Press Ctrl+C to copy\"><svg aria-hidden=\"true\" focusable=\"false\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"><rect x=\"5.5\" y=\"5.5\" width=\"8\" height=\"8.5\" rx=\"1.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><path d=\"M10.5 3.5V3A1.5 1.5 0 0 0 9 1.5H4A1.5 1.5 0 0 0 2.5 3v6.5A1.5 1.5 0 0 0 4 11h.5\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"\/><\/svg><span class=\"cbb-button-label\" aria-live=\"polite\">Copy<\/span><\/button><\/span><\/figcaption><pre class=\"cbb-pre\" tabindex=\"0\"><code class=\"cbb-code language-bash\" style=\"counter-reset:cbb-line 0;\"><span class=\"cbb-line\"><span class=\"cbb-keyword\">set<\/span> <span class=\"cbb-attr\">-eu<\/span>\n<\/span><span class=\"cbb-line\">sample=<span class=\"cbb-variable\">$(<\/span>mktemp)\n<\/span><span class=\"cbb-line\"><span class=\"cbb-keyword\">trap<\/span> <span class=\"cbb-string\">'rm -f \"$sample\"'<\/span> EXIT\n<\/span><span class=\"cbb-line\"><span class=\"cbb-function\">curl<\/span> <span class=\"cbb-attr\">--fail<\/span> <span class=\"cbb-attr\">--silent<\/span> <span class=\"cbb-attr\">--show-error<\/span> <span class=\"cbb-attr\">--location<\/span> <span class=\"cbb-attr\">--max-redirs<\/span> <span class=\"cbb-number\">5<\/span> \\\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-attr\">--connect-timeout<\/span> <span class=\"cbb-number\">5<\/span> <span class=\"cbb-attr\">--max-time<\/span> <span class=\"cbb-number\">20<\/span> <span class=\"cbb-attr\">--max-filesize<\/span> <span class=\"cbb-number\">2097152<\/span> \\\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-attr\">--proto<\/span> <span class=\"cbb-string\">'=https'<\/span> <span class=\"cbb-attr\">--proto-redir<\/span> <span class=\"cbb-string\">'=https'<\/span> \\\n<\/span><span class=\"cbb-line\">  <span class=\"cbb-attr\">--output<\/span> <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$sample<\/span><span class=\"cbb-string\">\"<\/span> <span class=\"cbb-string\">'https:\/\/example.com\/'<\/span>\n<\/span><span class=\"cbb-line\"><span class=\"cbb-function\">python3<\/span> - <span class=\"cbb-string\">\"<\/span><span class=\"cbb-variable\">$sample<\/span><span class=\"cbb-string\">\"<\/span> &lt;&lt;<span class=\"cbb-string\">'PY'<\/span>\n<\/span><span class=\"cbb-line\">from html.parser import HTMLParser\n<\/span><span class=\"cbb-line\">from pathlib import Path\n<\/span><span class=\"cbb-line\">import sys\n<\/span><span class=\"cbb-line\">\n<\/span><span class=\"cbb-line\">class HeadMeta(HTMLParser):\n<\/span><span class=\"cbb-line\">    def __init__(self):\n<\/span><span class=\"cbb-line\">        super().__init__()\n<\/span><span class=\"cbb-line\">        self.in_head = False\n<\/span><span class=\"cbb-line\">\n<\/span><span class=\"cbb-line\">    def handle_starttag(self, tag, attrs):\n<\/span><span class=\"cbb-line\">        <span class=\"cbb-keyword\">if<\/span> tag == <span class=\"cbb-string\">'head'<\/span>:\n<\/span><span class=\"cbb-line\">            self.in_head = True\n<\/span><span class=\"cbb-line\">        <span class=\"cbb-keyword\">if<\/span> tag == <span class=\"cbb-string\">'meta'<\/span> and self.in_head:\n<\/span><span class=\"cbb-line\">            fields = dict(attrs)\n<\/span><span class=\"cbb-line\">            name = (fields.get(<span class=\"cbb-string\">'property'<\/span>) or fields.get(<span class=\"cbb-string\">'name'<\/span>) or <span class=\"cbb-string\">''<\/span>).lower()\n<\/span><span class=\"cbb-line\">            <span class=\"cbb-keyword\">if<\/span> name.startswith((<span class=\"cbb-string\">'og:'<\/span>, <span class=\"cbb-string\">'twitter:'<\/span>)):\n<\/span><span class=\"cbb-line\">                print(name, <span class=\"cbb-string\">'='<\/span>, fields.get(<span class=\"cbb-string\">'content'<\/span>, <span class=\"cbb-string\">''<\/span>))\n<\/span><span class=\"cbb-line\">\n<\/span><span class=\"cbb-line\">    def handle_endtag(self, tag):\n<\/span><span class=\"cbb-line\">        <span class=\"cbb-keyword\">if<\/span> tag == <span class=\"cbb-string\">'head'<\/span>:\n<\/span><span class=\"cbb-line\">            self.in_head = False\n<\/span><span class=\"cbb-line\">\n<\/span><span class=\"cbb-line\">parser = HeadMeta()\n<\/span><span class=\"cbb-line\">parser.feed(Path(sys.argv&#91;<span class=\"cbb-number\">1<\/span>&#93;).read_text(encoding=<span class=\"cbb-string\">'utf-8'<\/span>, errors=<span class=\"cbb-string\">'replace'<\/span>))\n<\/span><span class=\"cbb-line\">parser.close()\n<\/span><span class=\"cbb-line\">PY<\/span><\/code><\/pre><\/figure>\n<p>The <a href=\"https:\/\/www.lukaswojcik.com\/blog\/en\/toolbox\/open-graph-social-card-checker-og-image-twitter-card\/\">Open Graph and Social Card Checker<\/a> also measures a downloaded image and supplies a local preview. Its fallback order and size warnings are checker rules, not a guarantee of a platform result. The embedded image preview avoids a direct image request from the visitor\u2019s browser; the checker\u2019s server still requests the page and image from the destination servers, which can observe those requests.<\/p>\n<div class=\"lw-faq\"><h2>Questions and answers<\/h2><h3>Do changes update existing shared cards?<\/h3><p>The platform determines caching and updates. Slack documents an approximately thirty-minute cache for link-expansion responses. LinkedIn\u2019s Post Inspector can refresh information for new posts, while existing posts retain their previews. A new image filename cannot help until the platform has fetched metadata pointing to that filename.<\/p><h3>Why can an image be missing despite an image tag?<\/h3><p>Possible causes include an inaccessible URL, a login or bot challenge, an unsupported image or a platform-specific limit. An absolute HTTPS image URL and a successful unauthenticated fetch are useful checks. A random user agent does not reproduce a real platform\u2019s IP address, access rules or cache. The intended service\u2019s inspection tool and server logs provide further evidence.<\/p><\/div>\n<div class=\"lw-quellen\"><h2>Sources<\/h2><ul><li><a href=\"https:\/\/ogp.me\/\" target=\"_blank\" rel=\"noopener noreferrer\">Open Graph protocol: Metadata and structured image properties<\/a><\/li><li><a href=\"https:\/\/api.slack.com\/robots\" target=\"_blank\" rel=\"noopener noreferrer\">Slack: Link-expansion robots and caching<\/a><\/li><li><a href=\"https:\/\/docs.slack.dev\/messaging\/unfurling-links-in-messages\/\" target=\"_blank\" rel=\"noopener noreferrer\">Slack: Classic and app link previews<\/a><\/li><li><a href=\"https:\/\/www.linkedin.com\/help\/linkedin\/answer\/a6233775\" target=\"_blank\" rel=\"noopener noreferrer\">LinkedIn Help: Use Post Inspector to refresh URL<\/a><\/li><li><a href=\"https:\/\/www.linkedin.com\/help\/linkedin\/answer\/a566445\" target=\"_blank\" rel=\"noopener noreferrer\">LinkedIn Help: Customize a Page-post preview<\/a><\/li><li><a href=\"https:\/\/curl.se\/docs\/manpage.html\" target=\"_blank\" rel=\"noopener noreferrer\">curl: Command-line reference<\/a><\/li><li><a href=\"https:\/\/docs.python.org\/3\/library\/html.parser.html\" target=\"_blank\" rel=\"noopener noreferrer\">Python: HTMLParser reference<\/a><\/li><\/ul><\/div>\n","protected":false},"excerpt":{"rendered":"<p>A historical check of eighteen URLs found thirteen images and five responses without Open Graph tags. Image sizes, metadata gaps and platform-specific previews require different checks.<\/p>\n","protected":false},"author":1,"featured_media":31065,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[127],"tags":[92735,91386,91094],"class_list":["post-15641","post","type-post","status-publish","format-standard","hentry","category-tutorials-en-digital-marketing","tag-content","tag-marketing-cyfrowy-pl","tag-seo"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Link Previews with Images and Titles: Checking Open Graph Metadata | Lukas Wojcik<\/title>\n<meta name=\"description\" content=\"Which og tags eighteen sites actually deliver, why half of them have no twitter:card, what wrong image dimensions cost, and the one tag almost nobody sets.\" \/>\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\/en\/digital-marketing\/tutorials-en-digital-marketing\/link-previews-with-images-and-titles-checking-open-graph-metadata\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Link Previews with Images and Titles: Checking Open Graph Metadata | Lukas Wojcik\" \/>\n<meta property=\"og:description\" content=\"Which og tags eighteen sites actually deliver, why half of them have no twitter:card, what wrong image dimensions cost, and the one tag almost nobody sets.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/tutorials-en-digital-marketing\/link-previews-with-images-and-titles-checking-open-graph-metadata\/\" \/>\n<meta property=\"og:site_name\" content=\"Lukas Wojcik - Blog\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-05T07:05:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-15641.png\" \/>\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\/png\" \/>\n<meta name=\"author\" content=\"Lukas Wojcik\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lukas Wojcik\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/tutorials-en-digital-marketing\\\/link-previews-with-images-and-titles-checking-open-graph-metadata\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/tutorials-en-digital-marketing\\\/link-previews-with-images-and-titles-checking-open-graph-metadata\\\/\"},\"author\":{\"name\":\"Lukas Wojcik\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"headline\":\"Link Previews with Images and Titles: Checking Open Graph Metadata\",\"datePublished\":\"2026-11-05T07:05:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/tutorials-en-digital-marketing\\\/link-previews-with-images-and-titles-checking-open-graph-metadata\\\/\"},\"wordCount\":879,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#\\\/schema\\\/person\\\/895f7604f9b6b71aad9bba33af28d0f9\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/tutorials-en-digital-marketing\\\/link-previews-with-images-and-titles-checking-open-graph-metadata\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/klarheit-20261111-15641.png\",\"keywords\":[\"Content\",\"Digital Marketing\",\"SEO\"],\"articleSection\":[\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/tutorials-en-digital-marketing\\\/link-previews-with-images-and-titles-checking-open-graph-metadata\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/tutorials-en-digital-marketing\\\/link-previews-with-images-and-titles-checking-open-graph-metadata\\\/\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/tutorials-en-digital-marketing\\\/link-previews-with-images-and-titles-checking-open-graph-metadata\\\/\",\"name\":\"Link Previews with Images and Titles: Checking Open Graph Metadata | Lukas Wojcik\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/tutorials-en-digital-marketing\\\/link-previews-with-images-and-titles-checking-open-graph-metadata\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/tutorials-en-digital-marketing\\\/link-previews-with-images-and-titles-checking-open-graph-metadata\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/klarheit-20261111-15641.png\",\"datePublished\":\"2026-11-05T07:05:00+00:00\",\"description\":\"Which og tags eighteen sites actually deliver, why half of them have no twitter:card, what wrong image dimensions cost, and the one tag almost nobody sets.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/tutorials-en-digital-marketing\\\/link-previews-with-images-and-titles-checking-open-graph-metadata\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/tutorials-en-digital-marketing\\\/link-previews-with-images-and-titles-checking-open-graph-metadata\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/tutorials-en-digital-marketing\\\/link-previews-with-images-and-titles-checking-open-graph-metadata\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/klarheit-20261111-15641.png\",\"contentUrl\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/klarheit-20261111-15641.png\",\"width\":1200,\"height\":630,\"caption\":\"Link Previews with Images and Titles: Checking Open Graph Metadata\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/en\\\/digital-marketing\\\/tutorials-en-digital-marketing\\\/link-previews-with-images-and-titles-checking-open-graph-metadata\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.lukaswojcik.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Link Previews with Images and Titles: Checking Open Graph Metadata\"}]},{\"@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\":\"Lukas Wojcik\",\"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\":\"Lukas Wojcik\"},\"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":"Link Previews with Images and Titles: Checking Open Graph Metadata | Lukas Wojcik","description":"Which og tags eighteen sites actually deliver, why half of them have no twitter:card, what wrong image dimensions cost, and the one tag almost nobody sets.","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\/en\/digital-marketing\/tutorials-en-digital-marketing\/link-previews-with-images-and-titles-checking-open-graph-metadata\/","og_locale":"en_US","og_type":"article","og_title":"Link Previews with Images and Titles: Checking Open Graph Metadata | Lukas Wojcik","og_description":"Which og tags eighteen sites actually deliver, why half of them have no twitter:card, what wrong image dimensions cost, and the one tag almost nobody sets.","og_url":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/tutorials-en-digital-marketing\/link-previews-with-images-and-titles-checking-open-graph-metadata\/","og_site_name":"Lukas Wojcik - Blog","article_published_time":"2026-11-05T07:05:00+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-15641.png","type":"image\/png"}],"author":"Lukas Wojcik","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Lukas Wojcik","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/tutorials-en-digital-marketing\/link-previews-with-images-and-titles-checking-open-graph-metadata\/#article","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/tutorials-en-digital-marketing\/link-previews-with-images-and-titles-checking-open-graph-metadata\/"},"author":{"name":"Lukas Wojcik","@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"headline":"Link Previews with Images and Titles: Checking Open Graph Metadata","datePublished":"2026-11-05T07:05:00+00:00","mainEntityOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/tutorials-en-digital-marketing\/link-previews-with-images-and-titles-checking-open-graph-metadata\/"},"wordCount":879,"commentCount":0,"publisher":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#\/schema\/person\/895f7604f9b6b71aad9bba33af28d0f9"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/tutorials-en-digital-marketing\/link-previews-with-images-and-titles-checking-open-graph-metadata\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-15641.png","keywords":["Content","Digital Marketing","SEO"],"articleSection":["Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/tutorials-en-digital-marketing\/link-previews-with-images-and-titles-checking-open-graph-metadata\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/tutorials-en-digital-marketing\/link-previews-with-images-and-titles-checking-open-graph-metadata\/","url":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/tutorials-en-digital-marketing\/link-previews-with-images-and-titles-checking-open-graph-metadata\/","name":"Link Previews with Images and Titles: Checking Open Graph Metadata | Lukas Wojcik","isPartOf":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/tutorials-en-digital-marketing\/link-previews-with-images-and-titles-checking-open-graph-metadata\/#primaryimage"},"image":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/tutorials-en-digital-marketing\/link-previews-with-images-and-titles-checking-open-graph-metadata\/#primaryimage"},"thumbnailUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-15641.png","datePublished":"2026-11-05T07:05:00+00:00","description":"Which og tags eighteen sites actually deliver, why half of them have no twitter:card, what wrong image dimensions cost, and the one tag almost nobody sets.","breadcrumb":{"@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/tutorials-en-digital-marketing\/link-previews-with-images-and-titles-checking-open-graph-metadata\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/tutorials-en-digital-marketing\/link-previews-with-images-and-titles-checking-open-graph-metadata\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/tutorials-en-digital-marketing\/link-previews-with-images-and-titles-checking-open-graph-metadata\/#primaryimage","url":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-15641.png","contentUrl":"https:\/\/www.lukaswojcik.com\/blog\/wp-content\/uploads\/2026\/11\/klarheit-20261111-15641.png","width":1200,"height":630,"caption":"Link Previews with Images and Titles: Checking Open Graph Metadata"},{"@type":"BreadcrumbList","@id":"https:\/\/www.lukaswojcik.com\/blog\/en\/digital-marketing\/tutorials-en-digital-marketing\/link-previews-with-images-and-titles-checking-open-graph-metadata\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.lukaswojcik.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Link Previews with Images and Titles: Checking Open Graph Metadata"}]},{"@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":"Lukas Wojcik","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":"Lukas Wojcik"},"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\/posts\/15641","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"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=15641"}],"version-history":[{"count":6,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/15641\/revisions"}],"predecessor-version":[{"id":26835,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/posts\/15641\/revisions\/26835"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media\/31065"}],"wp:attachment":[{"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/media?parent=15641"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/categories?post=15641"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lukaswojcik.com\/blog\/wp-json\/wp\/v2\/tags?post=15641"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}