How to Fix Link Preview Problems — Complete URL Unfurl Guide
Link preview broken? This is the practical playbook for fixing every common URL unfurl problem — wrong title, missing image, no preview card, stale cache, platform-specific glitches — ordered from fastest check to deepest fix. Each section tells you how to check URL metadata for the issue, what the root cause is, and exactly which lever to pull.
→ Check what your page is actually showing with TryUnfurl
Understanding URL Unfurl Issues
Every broken link preview comes from one of three places:
- The tags on your page are wrong or missing. The URL unfurl is doing exactly what it should — it's just using bad data.
- The tags are correct but the platform has cached an old version. Fixing the page doesn't retroactively update the cached card.
- The platform crawler can't reach your page at all. Bot blocked by a WAF, page behind auth, JavaScript-only rendering, redirect chain too long.
Knowing which of the three you're in is the difference between a two-minute fix and a two-hour investigation. That's why Step 1 below is always "check URL metadata first." Don't skip it.
Step 1: How to Check URL Metadata
Before changing anything, paste your URL into TryUnfurl. This tells you exactly what metadata platform crawlers are reading from your page — the same way Slack, Discord, Facebook, LinkedIn, X, iMessage, WhatsApp, Telegram, and Teams see it.
This single step tells you which of the three buckets you're in:
- Your metadata is wrong — TryUnfurl shows missing or wrong values → fix your tags.
- Platform cache is stale — TryUnfurl shows correct values but the platform shows wrong → clear the cache.
- Page is inaccessible — TryUnfurl returns an error → fix the URL, server, auth, or WAF.
Other ways to check URL metadata quickly:
# See exactly what a platform crawler would see:
curl -sL -A "facebookexternalhit/1.1" https://example.com/page \
| grep -iE '<meta (property|name)="(og|twitter)'
If tags appear in browser DevTools but not in this cURL output, they're being injected client-side by JavaScript — and every platform crawler will miss them.
Common Link Preview Problems and Solutions
Fix: Wrong or missing title / description
Add or correct the Open Graph tags in your HTML <head>:
<meta property="og:title" content="Your Correct Title" />
<meta property="og:description" content="Your accurate description under 155 characters." />
Also set the Twitter Card fallbacks if you want X to show specifically crafted copy:
<meta name="twitter:title" content="Your Correct Title" />
<meta name="twitter:description" content="Your accurate description." />
If the tags are present but showing old content, your CDN may be caching old HTML. Purge the CDN cache for that URL, redeploy, then re-test on TryUnfurl.
Fix: No preview image (or wrong image)
Check these in order:
- Is
og:imagepresent? — search your page source forog:image. If missing, add it. - Is the URL absolute HTTPS? —
/images/og.jpgwon't work. Usehttps://yourdomain.com/images/og.jpg. - Does the image load publicly? — paste the image URL into a private/incognito window. If it doesn't load, crawlers can't fetch it.
- Is the image large enough? — minimum 600 × 315 px; recommended 1200 × 630 px.
- Are dimensions declared? — add
og:image:widthandog:image:height. - Is the image behind hotlink protection? — some image hosts block requests without a matching
Referer. Allowlist platform crawlers or remove hotlink rules for OG image paths.
<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:image:alt" content="Description of the image" />
Fix: No preview card at all
If no URL unfurl appears on any platform:
- Check for Open Graph tags — view your page source (
Ctrl+U) and search forog:title. If missing, add the four core tags. - Check for JavaScript rendering — if your site is a React/Vue/Angular SPA without SSR, crawlers see an empty page. Switch to server-side rendering, static site generation, or pre-rendering.
- Check robots.txt — make sure your page and
og:imagearen't disallowed for crawlers. - Check for bot blocking — if you use Cloudflare or a WAF, ensure
Slackbot,Discordbot,facebookexternalhit,LinkedInBot,Twitterbot, andTelegramBotaren't being blocked. - Check the HTTP response — the URL must return 200. Redirects to auth pages, 403s, and 5xx errors all produce empty URL unfurls.
Fix: Preview outdated after metadata update
Each platform caches URL unfurl results independently. Fixing your page metadata is only step one — you also need to force each platform to re-fetch:
| Platform | How to clear the cache |
|---|---|
| Sharing Debugger → Scrape Again (click twice) | |
| Twitter / X | Card Validator — each validation clears the cache |
| Post Inspector → Regenerate | |
| Slack | Delete the message, re-share the link (or ?v=2) |
| Discord | Add ?v=2 to the URL when re-sharing |
Delete and resend, or ?v=2 cache-buster |
|
| iMessage | Delete message and resend |
| Telegram | Append ?v=2 query param |
| Microsoft Teams | Re-paste the link (or ?v=2) |
Also check your CDN — if your CDN is caching old HTML, platform debugger tools will still see old metadata even after you deploy changes. Purge the CDN cache for the affected URL first. See how to refresh a link preview for the full per-platform workflow.
Fix: Preview works on some platforms, not others
Platform-specific issues usually come down to image size differences or metadata format preferences:
- LinkedIn requires a minimum 1200 × 627 px image for the large card format — smaller images show as a tiny thumbnail.
- LinkedIn ignores Twitter Card tags — only reads Open Graph.
- Twitter/X requires
twitter:cardto be explicitly set, even if OG tags are present. - Slack/Discord need server-rendered HTML — they don't execute JavaScript.
- iMessage and WhatsApp crop images more aggressively on mobile; keep the key subject centred.
- Microsoft Teams can't reach URLs behind tenant auth — only public URLs unfurl.
Platform-Specific Troubleshooting
Run the URL through the Sharing Debugger. Click Scrape Again twice: first scrape re-fetches your page, second reads the fresh cache. Also check CDN cache and verify OG tags are server-rendered.
Use the Post Inspector → Regenerate preview. If the card is downgraded to a small thumbnail, your og:image is under 1200 × 627 px. LinkedIn only reads Open Graph — Twitter Card tags are ignored.
Twitter / X
Run through Card Validator to re-scrape. Make sure twitter:card is set to summary_large_image for the big hero layout. Each validator run effectively clears X's cache.
Slack
No debugger. Delete the message and re-share, or append ?v=2. Confirm Slackbot can reach your page — check WAF for blocked user-agents.
Discord
Append ?v=2 to the URL. If you're using <URL> angle brackets, remove them — they suppress the embed entirely.
iMessage / Discord together
See Fix preview URL unfurl on Discord and iMessage for the shared troubleshooting playbook.
Advanced URL Unfurl Debugging
Once the basics check out but previews still misbehave:
- Signed-URL expiry on
og:image. If your image is a signed CDN link, the cached copy may break hours later. Use permanent URLs in OG tags. - CDN user-agent variants. Some CDNs serve different HTML to bots. Test with the specific user-agent a platform uses.
- Redirect chain too long. Keep redirects to 1–2 hops; crawlers give up beyond that.
- Duplicate OG tags. A theme + plugin sometimes inject two different
og:imagevalues. Check the rendered HTML, not the template. - Different response on mobile vs desktop. User-agent-based server responses can produce divergent Open Graph tags.
- AMP and canonical mismatches. Platforms unfurl the canonical URL, not the AMP version — make sure Open Graph tags are consistent on both.
- Image exceeds file-size limit. Each platform has its own cap (Facebook 8 MB, X and LinkedIn 5 MB). Keep OG images under 1 MB.
Full Diagnostic Guide
For a comprehensive symptom-based troubleshooting walkthrough, see the Link Preview Troubleshooting Guide. For root-cause analysis of why previews break, see Why Link Previews Break.
Frequently Asked Questions
How do I check URL metadata without a debugger tool?
Paste the URL into TryUnfurl for a full multi-platform view, or run curl -sL https://example.com/page | grep -i og: from a terminal to see the raw Open Graph tags your server returns.
Why did my URL unfurl work before and suddenly break?
Most common causes: a deploy that stripped OG tags, a CMS or theme update that injected duplicate tags, an og:image URL that now 404s, or a new WAF rule that blocks platform crawlers.
How long until a fixed URL unfurl shows up on Facebook or LinkedIn?
Immediately after running the Sharing Debugger (Facebook) or Post Inspector (LinkedIn) → Regenerate. Without the debugger, caches can last days.
Can I automate URL unfurl checks in CI/CD?
Yes — use the TryUnfurl API to assert og:title, og:description, and og:image are present on every deploy. Pipelines fail if required metadata is missing.
What do I do if no platform shows my preview?
Check that (1) OG tags exist in the server-rendered HTML, (2) the og:image is a public absolute HTTPS URL, and (3) your WAF isn't blocking platform crawlers. TryUnfurl narrows it down in one step.
→ Test your link preview now with TryUnfurl · → Bulk-check up to 100 URLs