← All guides

Facebook Link Preview Not Showing? 7 Causes & Fixes

By OG Checker Team··9 min read

You paste a link into a Facebook post and the preview area stays grey. Or worse — it shows the image you replaced three weeks ago, while everyone else’s links render crisp 1200×630 cards. You re-post, you edit the caption, you try a different browser. Nothing.

Facebook is the platform with the best official debugging tool and the most aggressive cache — a combination that produces a specific kind of frustration: the fix works, but Facebook keeps showing you the old preview anyway. After running more than 550 URLs through our OG Image Checker and re-scraping the failures in Facebook’s own debugger, the failures fall into seven repeatable causes. This guide walks all seven, the exact image rules from Meta’s own docs, and the two-click official refresh.

Jump to: How Facebook builds your card · The og image rules · The 7 causes · Refresh the cache · Debugger vs. checker · Can you edit it? · The 30-second routine

When a URL lands in a post draft, Facebook fetches the page and reads its Open Graph tags — og:title, og:description, og:image, og:url. Twitter Card tags are ignored — X reads those instead, and our Twitter Cards guide covers that side of the fence. If the tags resolve to a fetchable, correctly-sized image, you get the big link card; if anything in that chain fails, Facebook degrades silently: a grey box, a text-only link, or the small domain favicon where your hero image should be.

One structural fact explains half the mysteries: Facebook caches the preview per URL after the first share — sometimes for weeks. The cache keys on the URL Facebook finally lands on, following redirects. So a post sharing http://yoursite.com and a post sharing https://www.yoursite.com/ can hold two different cached previews. Keep that in mind for cause 7.

The Facebook og image rules, from Meta’s documentation

Every Facebook og image has to clear five bars, straight from Meta’s own image documentation:

  • Minimum: 200×200 pixels. Smaller images are rejected outright. This is the only hard minimum among the big platforms, and it’s the one that kills logo buttons and cropped thumbnails.
  • Recommended: 1200×630 at 1.91:1. The universal OG size — the same image serves Facebook, Discord, Slack and most others. Images under 600×315 still render but look bad in the feed.
  • Max file size: 8 MB. The most generous limit of any platform — so if your image fails here, it’s enormous.
  • Formats: JPEG, PNG, GIF, WebP. No SVG, ever.
  • Absolute https:// URL. /og.png is not a URL Facebook can fetch.

For the full per-platform breakdown, see our og image size guide.

Ordered by how often we see them. The first three account for most cases; number 4 is the sneaky one nobody else warns you about.

1. og:image is missing — or relative

The classic. Your CMS emits og:title and og:description but skips the image on certain page types (archives, paginated posts, product variants). The fix:

<meta property="og:image" content="https://yoursite.com/og.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />

Those og:image:width and og:image:height tags aren’t decoration — Meta’s docs recommend them so the crawler can render your card on the very first scrape, without asynchronously downloading the image first. That’s frequently the difference between the first share of a page showing a card and showing a grey box.

Audit the whole head — canonical, robots, charset and all four OG tags — in one pass with our meta tag checker.

2. The image is under 200×200 pixels

The documented floor for a Facebook og image. A 180px logo, a cropped square thumbnail, a favicon-adjacent image — all rejected, all silently. Re-export at 1200×630. If you don’t have a design pipeline, our OG image generator renders a compliant PNG in your browser, with the correct size preset built in.

3. The file is over 8 MB

Rare but absolute. Uncompressed PNGs from design tools are the usual offenders. Facebook won’t downscale for you — it just drops the preview. Compress to a few hundred KB; above ~200 KB you gain nothing visible anyway.

4. Your JPEG is CMYK, not sRGB (the sneaky one)

This is the cause that survives every checklist. Print-exported JPEGs and some Photoshop defaults encode color in CMYK, and Facebook’s crawler frequently fails on them — a behavior Meta never documents, but one we’ve hit repeatedly on images whose dimensions and file size were perfect. The image looks fine everywhere except the link preview. Convert to sRGB before exporting (in Photoshop: Edit → Convert to Profile → sRGB). This single checkbox has fixed “my og:image works on X but not Facebook” cases for us more times than any other item on this list.

5. Facebook’s crawler can’t reach the image

Facebook fetches images with its own bot (facebookexternalhit). Hotlink protection, an aggressive firewall rule, or a robots.txt that disallows the image directory will block it — the tag is perfect, the fetch fails, the preview dies. Test by opening the og:image URL in an incognito window; if it 403s or redirects to a login, you’ve found it.

One officially documented trap hides here too: Facebook’s crawler only accepts gzip and deflate content encodings. A server that forces brotli — or hands the crawler an encoding it never asked for — fails the fetch with every tag perfect. Meta’s docs say it plainly: make sure your server uses the right encoding.

6. Facebook is showing a stale cached preview

You fixed the tag; the draft still shows the old card. That’s the cache — and unlike WhatsApp, Facebook gives you an official way out. Head to the next section.

7. A redirect or og:url mismatch is splitting the cache

You share https://yoursite.com, it 301s to https://www.yoursite.com/ — Facebook scrapes the final URL and caches there. If your og:url tag points somewhere else again, the cache splits further. Share the exact final URL in your posts, and make og:url match it. After a site migration, run the full URL list through our sitemap validator — a redirect chain that grew mid-migration is a classic silent preview killer.

Refresh the cache: the Sharing Debugger

Facebook’s official tool is the Sharing Debugger — the model that LinkedIn’s Post Inspector and every similar tool copied. Two clicks:

  1. Go to developers.facebook.com/tools/debug and paste your URL.
  2. Click Debug — you’ll see exactly what Facebook sees: every OG tag parsed, the image it fetched, and any warnings.
  3. Click Scrape Again. Facebook re-fetches the page and replaces the cached preview.
  4. If the preview still shows old data, Scrape Again a second time — the cache occasionally needs two passes to let go.

Managing dozens of URLs? The debugger has a scriptable twin: a POST to graph.facebook.com/?id={your-url}&scrape=true with any Meta app access token forces the same re-scrape from a terminal or a CI step. Pair it with our free check API — score every URL first, re-scrape only the ones that actually changed.

Make this the last step of every tag change, before you re-share. It takes fifteen seconds and it’s the difference between “fixed” and “fixed but nobody can see it.”

Sharing Debugger vs. a multi-platform checker

We built an 8-platform checker, so here’s the honest split:

Sharing Debugger OG Image Checker
Refreshes Facebook’s cache Yes — the only official way No
Shows Facebook’s exact card + tag warnings Yes Yes
Other platforms Facebook only X, LinkedIn, WhatsApp, Discord, Slack, Telegram, Reddit — side by side
Login required Yes (Meta account) No
Extra checks OG basics Full audit: image dimensions vs. each platform’s minimum, file weight vs. WhatsApp’s ~300 KB practical limit

Our workflow: audit everything here first — all eight cards, the 200×200 Facebook check, the WhatsApp weight warning — then one Sharing Debugger pass on URLs Facebook has already cached. The debugger fixes the cache; it won’t tell you the same image breaks on WhatsApp. Comparing dedicated OG tools before settling on one? We keep an honest alternatives round-up.

No — and this one is official policy, not a bug. In July 2017 Facebook removed the ability to customize a link preview’s image, title or description for most Pages and apps, as an anti-misleading-link measure. The preview is whatever your og: tags say, full stop.

So the only lever is the tag itself: change og:image on the page, re-scrape, done. If you need a fresh compliant image fast, pick a template in the generator — or browse 26 real examples from Stripe, The Verge and others in the inspiration gallery first.

Working through WhatsApp previews too? The failure modes overlap but the limits differ — Meta documents a 600 KB ceiling for WhatsApp link images, but in practice cards drop around 300 KB, and that gap is exactly what bites people who fixed everything for Facebook. We documented it in the WhatsApp link preview guide.

Before you post: the 30-second routine

Every broken Facebook preview we’ve diagnosed traces back to skipping one of these four steps. In order:

  1. Audit the head — all four OG tags present, absolute https:// image URL: meta tag checker.
  2. Preview the card — paste the URL into the OG Image Checker and confirm the Facebook card renders with the image loaded, no warnings, alongside the other seven platforms.
  3. Mind the three numbers — at least 200×200 (really: 1200×630), under 8 MB, sRGB not CMYK.
  4. If Facebook has cached an old version — one Sharing Debugger pass, Scrape Again, re-paste the link in your draft.

Testing the live URL matters — Facebook fetches the deployed page, not your local draft, so a tag that “works on localhost” proves nothing until it’s live. The whole routine is faster than re-posting a grey link three times and wondering.

FAQ

The seven causes that cover nearly every case: og:image is missing or uses a relative URL, the image is smaller than Facebook’s 200×200 pixel minimum, the file is over 8 MB, the JPEG is CMYK instead of sRGB, Facebook’s crawler is blocked from fetching the image, Facebook is serving a stale cached preview, or a redirect/og:url mismatch means you are looking at a different cache entry than the one your post used. Audit all seven with a free OG image checker, then refresh with the Sharing Debugger’s Scrape Again button.

What is the minimum og:image size for Facebook?

Facebook’s official minimum is 200×200 pixels — anything smaller is rejected from the preview. The recommended size is 1200×630 at a 1.91:1 ratio, with a maximum file size of 8 MB. JPEG, PNG, GIF and WebP all work; SVG does not. Images under 600×315 still render but look poor in the feed, so 1200×630 is the practical target.

Open the Facebook Sharing Debugger at developers.facebook.com/tools/debug, paste your URL, and click Debug. Then click Scrape Again — Facebook re-fetches your page’s Open Graph tags and replaces the cached preview. If the first re-scrape still shows old data, click Scrape Again a second time; occasionally the cache needs two passes. Check back in your post draft afterwards.

Two usual reasons: Facebook is serving a cached preview from before you changed your tags — fix it with the Sharing Debugger’s Scrape Again button — or your page declares multiple og:image tags and Facebook picked a different one than you expected. Keep exactly one og:image per page, make it an absolute https:// URL, and re-scrape after any change.

No. Facebook removed custom link preview editing in July 2017 to fight misleading links — the preview now pulls automatically from your page’s Open Graph tags. The only way to change the image is to change the og:image on the page itself, then force a re-scrape with the Sharing Debugger.

Check your OG image right now

Paste any URL and see how it renders on all 8 major platforms — with a full tag audit.

Open the free OG Image Checker →