No Preview Showing on Instagram

Why your shared link has no preview card in DMs or Stories

Common causes

  1. facebookexternalhit is blocked – robots.txt, firewall, or CDN rules preventing Meta’s crawler from reaching the page. Blocking it kills both Facebook and Instagram previews.
  2. OG tags rendered via JavaScript – the crawler doesn’t execute JS. Client-side frameworks that inject tags leave the crawler seeing an empty page.
  3. Missing og:image – without an image, Instagram may skip the preview entirely, especially in Stories where the image is the primary element.
  4. Tags past the 60 KB limit – large inline CSS or JS in the <head> pushes meta tags past the crawler’s parsing threshold.
  5. 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-page

Verify 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

  1. Allow facebookexternalhit access
  2. Serve OG tags in server-rendered HTML, not client-side JS
  3. Include at minimum og:title, og:image, and og:url
  4. Place meta tags early in <head>, before large inline content
  5. Use the Sharing Debugger and click “Scrape Again” to verify