GeoPromptTracker

Link preview not showing? How to fix Open Graph tags that won't render

Published July 18, 2026

If your link preview isn't showing, it's almost always one of five things: a stale cache, a relative image URL, JavaScript-injected tags, an oversized image, or missing tags entirely. Here's how to identify which one — in the order they're most likely — and fix it.

First: see what the scrapers actually see

Before guessing, look at your page the way a scraper does. Our free OG / Social Card Previewer fetches your URL's raw HTML and shows exactly which Open Graph tags are present and how the card renders — if a tag is missing or an image URL is broken, you'll see it immediately. That one check usually tells you which of the causes below you're dealing with.

Cause 1: The platform cached an old version (most common)

Social platforms scrape your page once and cache the result — sometimes for weeks. If you shared the link before adding OG tags, or you've since fixed them, the platform is still showing the stale (often empty) version.

Fix: force a re-scrape with the platform's debugger:

  • Facebook / Instagram: the Sharing Debugger — paste the URL, click "Scrape Again."
  • LinkedIn: the Post Inspector — paste the URL to refresh (LinkedIn caches especially long).
  • X: simply sharing the updated link usually re-fetches, but the Card Validator history has been folded into the posting flow.

After re-scraping, the next share shows the fresh preview. This alone fixes a large share of "preview not showing" reports.

Cause 2: Relative image URL

og:image must be an absolute URL:

<!-- ❌ Won't work -->
<meta property="og:image" content="/images/og.png" />

<!-- ✅ Correct -->
<meta property="og:image" content="https://yoursite.com/images/og.png" />

Scrapers don't resolve relative paths reliably. If your image tag starts with / instead of https://, that's your bug.

Cause 3: Tags injected by JavaScript

This is the sneaky one. If your OG tags are added client-side — by a tag manager, a client-rendered SPA, or a script — the scraper never sees them, because social scrapers read raw HTML and don't run JavaScript (the same reason most AI crawlers can't read JS-rendered content).

Fix: move the tags into your server-rendered <head>. On Next.js, Nuxt, and similar frameworks this is the default when you use their metadata APIs; the problem appears when tags are bolted on with client-side scripts. To confirm: curl -s https://yoursite.com/your-page | grep "og:image" — if it's not in the output, it's not in the HTML.

Cause 4: The image is too large or the wrong format

Platforms silently drop images that exceed their limits. Keep og:image under ~1MB (WhatsApp is the strictest), use PNG or JPG (not every scraper handles WebP), and serve it over HTTPS. Also make sure the dimensions are right — see Open Graph image size for the 1200×630 spec.

Cause 5: The tags are simply missing

If the previewer shows nothing, you may not have OG tags at all. At minimum every shareable page needs:

<meta property="og:title" content="Your page title" />
<meta property="og:description" content="A one-line summary." />
<meta property="og:image" content="https://yoursite.com/og-image.png" />
<meta property="og:url" content="https://yoursite.com/your-page" />
<meta name="twitter:card" content="summary_large_image" />

The OG previewer generates this full set for you if you're starting from scratch.

The diagnostic order, in one list

  1. Preview the URL with the social card previewer to see what's actually there.
  2. If tags exist but the old preview persists → re-scrape with the platform debugger.
  3. If og:image is relative → make it absolute.
  4. If tags are absent from curl output but present in the browser → they're JS-injected; move them server-side.
  5. If the image is huge → compress it under 1MB.
  6. If there are no tags → add them.

Nine times out of ten it's cause 1 (cache) or cause 3 (JavaScript). Start there, verify with the previewer, and your cards will render everywhere your links get shared.

Frequently asked questions

Why is my link preview not showing on social media?

The five usual causes: the platform cached an old/empty version (re-scrape it), your og:image uses a relative instead of absolute URL, the OG tags are injected by JavaScript so scrapers don't see them, the image file is too large, or the tags are missing entirely. Work through them in that order.

How do I force Facebook or LinkedIn to refresh a link preview?

Use the platform's debugger — Facebook's Sharing Debugger and LinkedIn's Post Inspector both re-scrape a URL on demand and clear the cache. Paste your URL, click to fetch fresh, and the updated preview appears the next time it's shared.

Why does my preview work on some platforms but not others?

Each platform caches independently and has different rules — LinkedIn caches for weeks, WhatsApp skips large images, X needs a summary_large_image card. A preview working on one but not another usually means a cache or a platform-specific size/tag issue, not a broken page.

Do Open Graph tags need to be in the HTML or can JavaScript add them?

They must be in the server-rendered HTML. Social scrapers and AI crawlers read the raw HTML response and don't execute JavaScript, so any og: tag added client-side is invisible to them.

Related