Why Link Previews Break — 7 Most Common Causes
Link preview problems are frustrating because the cause isn't always obvious — the page looks fine in your browser, but the preview is wrong, missing, or outdated.
Here are the seven most common root causes, how to recognise each one, and how to fix it.
-> Diagnose your link preview now with TryUnfurl
1. Missing Open Graph Tags
What happens: The platform has nothing authoritative to work with, so it either shows no preview 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.
Fix: Add the four 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:url" content="https://yourdomain.com/your-page">
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 — don't execute JavaScript. They see the empty initial HTML with no meta tags.
How to spot it: Paste your URL into TryUnfurl.com. If it shows missing or empty metadata that you can see in your browser's DevTools, JS rendering is the cause.
Fix: Use server-side rendering (SSR) or static site generation (SSG) so meta tags are present in the initial HTML response. For frameworks like Next.js, use the <Head> component with SSR. For Nuxt.js, use useHead(). For SPAs, consider a prerendering service.
3. Stale Cached Preview
What happens: You updated your metadata, but the platform still shows the old preview. Platforms cache unfurl results and won't automatically re-fetch when your page changes.
How to spot it: TryUnfurl.com shows the correct new metadata, but sharing the link elsewhere still shows the old version.
Fix: Force a cache refresh on each platform:
- Facebook — Sharing Debugger → Scrape Again
- Twitter/X — Card Validator
- LinkedIn — Post Inspector → Regenerate
- Slack — delete and re-share the link
- Discord — add
?v=2to the URL when resharing
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, or it's blocked by authentication or robots.txt.
How to spot it: Open the og:image URL directly in a private/incognito browser window. 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.
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: Previews 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:
SlackbotDiscordbotfacebookexternalhitLinkedInBotTwitterbot
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 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.com — if it still shows old metadata after you've deployed changes, suspect CDN caching. Verify by checking your CDN dashboard for HTML cache settings.
Fix: Purge the CDN cache for the affected URL(s) after every deployment that changes metadata. Most CDNs (Cloudflare, Fastly, CloudFront) allow targeted URL purges.
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 |
Diagnose Your Link Preview
Paste any URL into TryUnfurl.com to see exactly what crawlers are reading from your page — across all platforms at once.