OG Image Checker
Analyze Open Graph and Twitter Card meta tags for any URL. Preview how your content appears when shared on Facebook, X, LinkedIn, and other social platforms.
Enter a URL above to check its social media preview
Analyze Open Graph and Twitter Card meta tags for any URL. Preview how your content appears when shared on Facebook, X, LinkedIn, and other social platforms.
Enter a URL above to check its social media preview
The dirty secret of Open Graph is that nobody validates it until something goes wrong. You add og:image, you ship the page, you assume Facebook and LinkedIn will pull a clean preview, and three months later somebody on Slack sends you a screenshot of your blog post showing a generic favicon and the wrong title. By then the URL is cached, half your social traffic is gone, and you are scrambling through the Facebook Sharing Debugger trying to figure out why your image:width attribute was ignored. The OG checker is the dull, unglamorous step that prevents this exact failure mode.
What it actually does is fetch your URL the same way Facebook's crawler does — sending the facebookexternalhit user agent, ignoring JavaScript, and parsing only the rendered HTML head. It pulls every og:* and twitter:* tag, validates the image dimensions and aspect ratio, checks that the URLs are absolute and HTTPS, and renders the preview each platform will show. If your og:image is a 300x300 logo that Facebook will reject, it tells you. If your twitter:card is set to "summary" but your image is sized for "summary_large_image," it flags that too.
The thing most people get wrong is assuming OG tags work like HTML — that the browser will figure it out. Social crawlers are stricter than browsers. They require absolute URLs, they refuse to follow client-side redirects, they cache aggressively (Facebook's edge cache holds previews for up to 30 days), and they ignore tags they consider malformed. A trailing space in og:image, an http: URL on an https: site, an og:type of "blog" instead of "article" — any one of these can quietly break the preview without throwing an error.
The other failure mode is the staging-vs-production mismatch. Your dev environment had og:url set to localhost, somebody committed it, and now production is serving previews that point Facebook back to a private IP. The checker catches this by validating that og:url matches the canonical URL of the page and that both resolve to publicly fetchable HTTPS endpoints. It is the kind of check that sounds paranoid until it has saved you twice.
Run the checker after every meaningful change to a page's head — new image, new title, new template — and especially after CMS upgrades. Pair it with our /tools/meta-generator if you are creating the tags from scratch, and use our /tools/character-counter to confirm the OG title actually fits in a LinkedIn feed card before you ship.
Validate the preview on staging or a draft URL so you find missing og:image errors before the marketing team starts sharing the link in DMs.
Themes love to silently change what they emit in the head. A WordPress update or a Shopify theme refresh can swap your OG image for a placeholder without warning.
LinkedIn caches OG data for seven days and provides almost no tooling to inspect it. The checker shows you exactly what LinkedIn fetched, which is the first step in fixing it.
If you generate og:image at request time (Vercel OG, Satori, Cloudinary), the checker confirms the image actually returns a 200 with a valid content-type, not a 404 or a slow render.
Run a competitor URL through the checker to see what they ship — image dimensions, card type, fallback handling. Half of social marketing is copying what works.
Validate every og: and twitter: tag and preview the social card.
Submit the URL whose Open Graph and Twitter tags you want to audit.
See each og: and twitter: tag value, with warnings for missing or duplicate fields.
Confirm Facebook, X, and LinkedIn all render the card you intend.
Facebook does not resolve relative URLs. og:image must be an absolute HTTPS URL or the preview falls back to whatever asset the crawler can scavenge from the page.
Without the dimensions, Facebook has to fetch and decode the image just to figure out if it qualifies for a large card. On slow image hosts, this can push the crawler past its timeout, and the preview silently degrades.
Twitter renders "summary" as a small square card. If you went to the trouble of designing a wide image, use "summary_large_image" or the work is wasted.
Image proxies sometimes return WebP or AVIF formats that Facebook's older crawler does not parse. The checker catches this because it tests the URL with the actual Facebook user agent.
Open Graph is invisible until it breaks, and when it breaks it costs you real social traffic that is almost impossible to win back. Treat the checker the way you treat a linter — boring, mandatory, and the cheapest insurance you have against shipping a broken preview to thousands of feeds.