What this tool checks
When someone shares a URL on Facebook, X/Twitter, LinkedIn, Slack, Discord, iMessage, WhatsApp, or any other platform that previews links, the platform doesn't render your page — it sends a crawler that fetches the HTML and reads the <meta> tags in the document head. Specifically it looks for the Open Graph tags (the og:* protocol Facebook published in 2010), Twitter's twitter:* equivalents, and a handful of standard tags like <title> and meta name=“description”. This tool fetches your URL the same way a crawler would, parses those tags, and renders the preview card plus a list of warnings — so you can fix the preview before you ship the link, instead of discovering a broken card after it's already in someone's feed.
What good OG tags look like
A solid set, in roughly priority order:
og:title— 30–60 characters. Truncated past roughly 70 on most platforms, so lead with the words that matter.og:description— 100–200 characters. Treat it as a tweet-length pitch for the link.og:image— 1200×630 PNG or JPEG, under about 1 MB, hosted where social crawlers can reach it. Never point it at an image behind authentication.og:image:alt— alt text for the image; used for accessibility and by some platforms for screen readers.og:type— usuallywebsiteorarticle.og:url— the canonical URL. Keeping it stable is important for share-cache consistency.og:site_name— your brand name; shows as the small label above the title.twitter:card— usuallysummary_large_imagefor the big-image card on X.
Common mistakes the warnings catch
- Missing image — the share collapses to a plain text-only card. This is the single most common cause of “my link looked plain when I shared it.”
- Relative image URL (
/og.png) — most social crawlers won't resolve it against your page's base URL. Always use an absolutehttps://URL in image fields. - Title too long — it gets truncated mid-word on some platforms. Front-load the important phrase.
- Same title across many pages — Facebook's debugger flags this, and it weakens click-through. Each page should describe itself distinctly.
Why your update doesn't show up: cache busting
Social platforms cache preview cards aggressively. The first time a URL is shared, the crawler fetches and stores the result; later shares of the same URL show that cached copy. So when you change your tags, nothing updates until the cache expires (days to weeks) or you force a refresh:
- Facebook / Meta: the Sharing Debugger has a “Scrape Again” button.
- X / Twitter: the Card Validator re-fetches when you re-submit.
- LinkedIn: the Post Inspector forces a refresh.
- Slack / Discord / iMessage: no public cache buster. The usual workaround is to append a no-op query string (
?v=2) so the new link counts as a fresh URL.
Frequently asked questions
What is Open Graph?
Open Graph is a meta-tag protocol Facebook published in 2010 that lets a page describe itself to link-preview consumers — title, description, image, type, and canonical URL. Facebook, LinkedIn, Slack, Discord, Pinterest, and X (via twitter:card) all read these og:* tags to build the card you see when a link is shared.
Why doesn't my X / Twitter card show an image?
Usually one of three things: twitter:card is missing or not set to summary_large_image; twitter:image or og:image is absent; or the image URL is relative or unreachable from the public internet (some hosts block social crawlers). The X Card Validator shows exactly what they fetched.
What size should my og:image be?
The widely accepted standard is 1200×630 pixels — a 1.91:1 ratio. Larger is fine; much smaller may be padded or rejected. PNG and JPEG work everywhere; WebP is fine on newer platforms but some older parsers reject it. Keep the file under about 1 MB so crawlers fetch it reliably.
JSON API
Prefer to automate it? GET /api/og-checker?url=… returns the parsed tags and warnings as JSON (CORS-enabled, edge-cached), so you can wire an Open Graph check into CI and fail a build before a page with broken share tags ever ships.
Related tools
Pair this with the request header inspector to confirm what your client sends to a site, the SSL / TLS checker to verify the certificate chain that crawlers must trust, the DNS lookup to check the host resolves where you expect, and what's hosting this site to see who serves it.
