Troubleshooting guide
Facebook link preview not showing?
Facebook builds a link preview from your page’s Open Graph tags the first time the link is shared, then keeps that copy. Missing tags, a small image or a stale copy are the usual reasons it looks wrong. Here’s what to check, based on Meta’s own requirements.
The check opens on the Facebook preview and flags missing tags and small images. Its generated code includes the image size tags.
What Facebook needs
- Tags
og:title,og:description,og:imageandog:url- Image
- 1200×630 recommended, 600×315 for the large card, 200×200 minimum, up to 8 MB
- HTML
- Open Graph tags within the first 1 MB, served with gzip or deflate
- Crawler
facebookexternalhit/1.1
Common causes and fixes
-
The tags are missing or added by JavaScript
Facebook reads the HTML your server sends. Without
og:title,og:descriptionandog:imageit guesses from the page, and tags a JavaScript framework adds later are never seen.Fix: Check your page to see which tags the server sends, then copy the generated code into your
<head>. -
There’s no image the first time it’s shared
Meta’s crawler has to download an image once before it can show it, so the first person to share a new link often gets no image.
Fix: Add
og:image:widthandog:image:height, which let Facebook show the image right away, or run the address through the Sharing Debugger before sharing. -
The image is too small or too large
Images under 600×315 show as a much smaller card, and under 200×200 they aren’t used. Files over 8 MB are rejected.
Fix: Use a 1200×630 JPG. The OG image generator makes one in your browser.
-
og:url points to a different page
Facebook treats
og:urlas the page’s real address and shows that page’s preview. A template that sets every page’sog:urlto the homepage makes every link look like the homepage.Fix: Set
og:urlto the page’s own address, the same one as its canonical link. -
Facebook can’t read the page in time
Meta’s crawler needs a response within a few seconds, in gzip or deflate encoding. Bot protection, slow servers and servers that always answer in Brotli can stop it.
Fix: Let
facebookexternalhitthrough your bot protection and check that your server answers its requests with gzip. -
The tags sit too far down the page
Facebook stops reading after the first 1 MB of HTML. Large inline scripts or data before the tags can push them out of reach.
Fix: Move the meta tags to the top of the
<head>, before any inline code.
Still seeing the old preview?
Facebook keeps the preview it fetched earlier. Paste your address into the Sharing Debugger and select Scrape Again. Images are cached by their address too, so if you replaced the image, give the new one a new file name.
Refresh it with
Open the Sharing Debugger ↗Questions
What people ask when the fixes above don’t explain it.
Does this also fix Instagram and Messenger?
Yes. Facebook, Instagram and Messenger use the same crawler and the same tags, so one fix covers all three. WhatsApp has its own crawler and rules, covered in the WhatsApp guide.
Why does Facebook still show the old image after Scrape Again?
Meta caches each image by its address. If you replaced the file but kept the name, Facebook keeps the old copy. Upload the new image under a new file name, update og:image, then scrape again.
Why is my image cropped?
Facebook shows link images at 1.91:1 on desktop and mobile. Other shapes are cropped, so keep important parts away from the edges, or use a 1200×630 image, which fits exactly.
Do I need fb:app_id?
No. The Sharing Debugger warns when it’s missing, but it’s only used for Facebook’s own share statistics and doesn’t change the preview.
Will posts I already shared update?
Not reliably. Fixing your page and scraping again changes the preview for new shares. Posts that already went out can keep the preview they were shared with.
More guides
All guides →Link preview not showing on