Social preview checker

Social Share Preview Checker

A shared link is not rendered by your browser. Facebook, X, LinkedIn, Slack, Discord, Telegram, WhatsApp, and iMessage each fetch the page, read the metadata, fetch the image, and cache the result. I use one checker first so I can catch the basic problems before opening every platform debugger.

What I check first

  • The page returns public HTML with a successful status code.
  • The HTML includes the main Open Graph tags: title, description, image, URL, and type.
  • The preview image URL is absolute, crawlable, and returns an image response.
  • The image dimensions fit normal link cards, especially 1200 x 630.
  • X/Twitter has a usable card fallback when the platform ignores the OG image.
  • The card looks acceptable in wide, square, compact, and chat-style layouts.

Core metadata

Open Graph defines title, type, image, and URL as basic metadata. Normal website pages should also include description and site name.

Image fetch

The image is fetched separately. A page can have the right tag and still fail if the image redirects badly, is blocked, is too large, or is not a supported format.

Cache behavior

Platform previews are cached outside your browser. Clearing browser cache does not refresh a Facebook, LinkedIn, Slack, or Discord card.

Pages worth checking

  • Launch pages before posting on Product Hunt, Facebook, LinkedIn, or X.
  • Blog posts where the title changes after editing.
  • Docs pages where the same default image appears on every route.
  • Product pages where a missing image turns a useful share into a plain URL.

Common questions

Is this the same as the Facebook Sharing Debugger?

No. I use this first because it checks the general metadata and shows several preview shapes. I still use the official platform debugger when I need that platform to refresh its cache.

Why does one app show the right preview and another one does not?

They fetch at different times, cache differently, and do not crop images the same way. The same tags can produce different cards.

Should I add platform-specific tags?

For most pages, Open Graph plus Twitter Card tags are enough. I add explicit Twitter/X tags because they make the card type and image fallback easier to reason about.

How link previews are built

The crawler asks for the public URL. It does not use your logged-in browser session, your dev server, or the DOM state after you click around. If the final HTML does not contain the tags, the platform has nothing reliable to use.

Most platforms start with Open Graph tags. X/Twitter also reads Twitter Card tags. Slack documents classic unfurling as a crawler-based preview. Apple documents Open Graph metadata for rich Messages previews. Discord support notes Open Graph and Twitter metadata for embeds, with special handling for some large sites.

Why one preview can work while another fails

A page can look fine on Facebook and fail in Slack because the platforms do not fetch at the same time, cache for the same duration, or crop images the same way. Some also fetch the image separately from the HTML, so a valid page response does not prove the image is usable.

This is why I check the boring details first: status code, redirects, metadata, image dimensions, file size, image format, and bot access. The visual preview only makes sense after those pass.

When to use the official debuggers

Use the MyOG checker for the first pass. If it shows the new tags but a platform still shows an old card, open that platform's debugger or inspector to force a re-fetch where the platform supports it.

Facebook has Sharing Debugger. LinkedIn has Post Inspector. X still has Card metadata rules. Slack and Discord are more cache-sensitive, so changing the URL or image URL is often the practical test.

Use the checker first

The existing checker already fetches the URL, reads the tags, checks the image, reports dimensions and file size, and shows the platform previews. This page is the entry point; the checker is where the work happens.

Open the checker

Related

cdf733b534ea2f2ed964d150330b323c44837e4f