Common causes
facebookexternalhitis blocked – robots.txt, firewall, or CDN rules preventing Meta’s crawler from reaching the page. Blocking it kills both Facebook and Instagram previews.- OG tags rendered via JavaScript – the crawler doesn’t execute JS. Client-side frameworks that inject tags leave the crawler seeing an empty page.
- Missing
og:image– without an image, Instagram may skip the preview entirely, especially in Stories where the image is the primary element. - Tags past the 60 KB limit – large inline CSS or JS in the
<head>pushes meta tags past the crawler’s parsing threshold. - Wrong context – links in captions, comments, and bios don’t generate previews. Only DMs and Story link stickers show OG previews.
Diagnosis steps
1. Confirm the preview context
Make sure you’re sharing in a place that actually renders previews:
- DMs – paste URL in a direct message
- Story link stickers – add a link sticker
Captions, comments, and bios never show OG previews.
2. Check the Facebook Sharing Debugger
Open the Sharing Debugger and enter your URL. Since Instagram uses the same crawler, this shows exactly what Instagram sees.
3. Test crawler access
curl -A "facebookexternalhit/1.1" https://example.com/your-pageVerify OG tags are in the response within the first 60 KB. Login pages, 403 errors, or block-page redirects mean the crawler is denied.
4. Check robots.txt
Some server configurations use robots.txt to trigger blocking rules:
# This will block Instagram previews
User-agent: facebookexternalhit
Disallow: /
The fix
- Allow
facebookexternalhitaccess - Serve OG tags in server-rendered HTML, not client-side JS
- Include at minimum
og:title,og:image, andog:url - Place meta tags early in
<head>, before large inline content - Use the Sharing Debugger and click “Scrape Again” to verify