TryUnfurl

Check How Your Links Unfurl for FREE!

See exactly how your webpage will appear when shared on social media, Slack, Discord, and messaging apps.

Try It Now →

Why Link Previews Break — 7 Common Causes + URL Unfurl Fixes

Link preview problems are frustrating because the cause isn't always obvious — the page looks fine in your browser, but the URL unfurl is wrong, missing, or outdated. Almost every broken preview traces back to one of seven predictable root causes, and each one has a specific fix.

This guide explains each of the seven, teaches you how to check URL metadata the way a platform crawler does so you can spot which cause applies, and links out to the deeper fix guide for each. At the bottom: a quick diagnosis table and an FAQ covering the common follow-up questions.

→ Diagnose your link preview now with TryUnfurl


How to Check URL Metadata Before Sharing

Every broken URL unfurl investigation starts the same way: find out what the platform crawler is actually reading. You have three ways to check URL metadata:

  1. TryUnfurl — paste the URL and see the Open Graph tags, Twitter Card tags, detected og:image, and a rendered URL unfurl card for every major platform. No login. No internal cache.
  2. View Page SourceCtrl+U / Cmd+Option+U. Search for og: in the HTML. Every tag your server actually sent appears here. If a tag shows in DevTools but not in View Source, it's JavaScript-injected and invisible to crawlers.
  3. cURLcurl -sL -A "facebookexternalhit/1.1" https://example.com/page | grep og: prints every Open Graph tag a crawler sees, simulating one of the platform user-agents.

Do this before you change anything — the output tells you which of the seven causes below applies.


Understanding the URL Unfurl Process

Every platform runs the same URL unfurl pipeline: fetch your page → parse the <head> → download the og:image → render a card → cache the result. A broken link preview is always a failure in one of those five steps. The seven causes below map almost one-to-one onto those steps.


1. Missing Open Graph Tags

What happens: The platform has nothing authoritative to work with, so it either shows no URL unfurl or scrapes random content from the page — wrong title, no image, or a description pulled from the first paragraph.

How to spot it: View your page source and search for og:title. If it's not there, that's the problem. TryUnfurl will also flag missing tags in one glance.

Fix: Add the core Open Graph tags to every page's <head>:

<meta property="og:title" content="Your Title" />
<meta property="og:description" content="Your description." />
<meta property="og:image" content="https://yourdomain.com/og-image.jpg" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:url" content="https://yourdomain.com/your-page" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Your Site Name" />

2. JavaScript-Rendered Metadata

What happens: The page uses a JavaScript framework (React, Vue, Angular, Next.js without SSR) that injects meta tags after the page loads. Platform crawlers — Slackbot, Discordbot, facebookexternalhit, LinkedInBot, Twitterbot — don't execute JavaScript. They see the empty initial HTML with no meta tags.

How to spot it: Paste your URL into TryUnfurl. If it shows missing or empty metadata that you can see in your browser's DevTools, JS rendering is the cause. A cURL against the URL will also confirm — the tags won't appear in the raw response.

Fix: Use server-side rendering (SSR) or static site generation (SSG) so meta tags are present in the initial HTML response. For Next.js, use the metadata export (App Router) or the Head component (Pages Router). For Nuxt.js, use useHead(). For SvelteKit, set <svelte:head>. For pure SPAs, use a prerendering service that serves static HTML to crawlers.


3. Stale Cached Preview

What happens: You updated your metadata, but the platform still shows the old URL unfurl. Platforms cache unfurl results and won't automatically re-fetch when your page changes.

How to spot it: TryUnfurl shows the correct new metadata, but sharing the link elsewhere still shows the old version.

Fix: Force a cache refresh on each platform:

Full per-platform workflow in how to refresh a link preview.


4. Broken or Inaccessible og:image

What happens: The preview shows no image, or the preview is suppressed entirely. Common causes: the image URL is relative (not absolute), the image returns a 404, the image is too small, it's blocked by authentication or robots.txt, or it's a signed URL that has expired.

How to spot it: Open the og:image URL directly in a private/incognito browser window with no cookies. If it doesn't load, crawlers can't get it either.

Fix: Use an absolute HTTPS URL pointing to a publicly accessible JPG or PNG image, sized 1200 × 630 px. Avoid short-lived signed URLs; prefer permanent paths. For the complete fix checklist, see preview image not showing.


5. Bot Crawler Blocked

What happens: Your site uses aggressive bot protection (Cloudflare, a WAF, custom middleware) that blocks platform crawlers, treating them as suspicious traffic. The platform receives a 403 Forbidden or a CAPTCHA page instead of your HTML.

How to spot it: URL unfurls work for most URLs on your site but not for specific pages, or they broke suddenly after adding security tooling. Server logs will show 4xx responses to bot user-agents.

Fix: Add exceptions for known platform crawlers in your bot protection rules:


6. Too Many Redirects

What happens: The URL redirects through multiple hops (e.g. HTTP → HTTPS → www → non-www → tracking URL → final destination). Platform crawlers give up after 3–5 redirects and can't reach the final page.

How to spot it: Use a redirect checker (curl -I -L or a browser DevTools Network tab) to count the hops from the shared URL to the final page. More than 3 is risky.

Fix: Minimise redirect chains. Ideally, the shared URL should redirect in a single hop to the canonical URL. Avoid chaining through marketing tracking URLs before the final destination — use UTM parameters on the final URL instead.


7. CDN or Server Caching the Wrong HTML

What happens: You've updated your page metadata and deployed, but your CDN or hosting provider is still serving a cached copy of the old HTML. Every crawler sees the old meta tags regardless of how many times you clear the platform cache.

How to spot it: Paste your URL into TryUnfurl — if it still shows old metadata after you've deployed changes, suspect CDN caching. Verify by checking your CDN dashboard for HTML cache settings or issuing a cURL with -H 'Cache-Control: no-cache'.

Fix: Purge the CDN cache for the affected URL(s) after every deployment that changes metadata. Most CDNs (Cloudflare, Fastly, CloudFront, Vercel, Netlify) allow targeted URL purges via dashboard or API.


Advanced Unfurl Optimization

Beyond fixing breakage, a handful of moves prevent most URL unfurl issues from recurring:


Quick Diagnosis Guide

What you're seeing Most likely cause
No preview at all Missing OG tags, or crawler blocked
Preview shows but no image Missing/broken og:image
Outdated preview Cached result — force a refresh
Wrong title or description JS rendering, or cached old data
Preview works on some platforms, not others Platform-specific image size mismatch
Preview worked, then suddenly broke Bot protection change, or og:image URL changed
Preview works in tester, not in app Platform cache — force refresh
Preview works on desktop, not mobile User-agent-specific server response, or CDN variant

Frequently Asked Questions

How do I check URL metadata before sharing?

Paste the URL into TryUnfurl to see every Open Graph tag and a rendered preview for every major platform in one view. Or run curl -sL https://example.com/page | grep og: from the terminal to see the raw tags your server returns.

Why did my URL unfurl work last week and break now?

Most common causes: (1) a deploy stripped OG tags, (2) a CMS or theme update injected duplicate tags, (3) the og:image URL moved or now returns 404, (4) a new WAF rule blocks platform crawlers, (5) a signed-URL og:image expired.

Does a broken URL unfurl hurt SEO?

Not directly — Google doesn't use Open Graph for ranking. But broken link previews reduce social shares and CTR, which indirectly reduces traffic and backlinks.

How can I prevent link previews from breaking in the first place?

Ship Open Graph tags server-rendered, set a site-wide default og:image, automate validation in CI/CD with the TryUnfurl API, and audit evergreen pages monthly with the bulk URL unfurl checker.

Why does the preview look right in the tester but wrong in the app?

The platform has an older URL unfurl cached. Force a re-scrape in the platform debugger, or use a query-string cache-buster on platforms without a debugger.


Diagnose Your Link Preview

Paste any URL into TryUnfurl to see exactly what crawlers are reading from your page — across all platforms at once.

→ Find out why your preview is broken now · → Bulk-check up to 100 URLs


Related Guides