How to use the open graph checker
- 1Enter the page address under Check a URL (or paste the page source under Paste HTML).
- 2Press Check tags.
- 3Look at Link previews. Press Show images to load the share image (your browser then requests it from the image's server).
- 4Fix anything marked as a warning or problem in Checks, then re-check. Use Copy table to keep a list of the tags found.
Example: a page with a relative image URL (illustrative)
<meta property="og:title" content="How to make a sourdough starter"> <meta property="og:description" content="Seven days, two ingredients, one jar."> <meta property="og:image" content="/images/starter.jpg"> <meta name="twitter:card" content="summary_large_image">
Pass og:title “How to make a sourdough starter” Pass og:description “Seven days, two ingredients, one jar.” Problem og:image “/images/starter.jpg”: must be a full URL starting with https:// Note og:url missing Note og:type missing (platforms assume website) Pass twitter:card “summary_large_image”
Output for the Load sample HTML example. In URL mode the checker also requests the share image from our server and reports its status code, content type and size.
Required Open Graph tags
The Open Graph protocol requires four properties on every page: og:title, og:type, og:image and og:url. og:description is optional in the protocol but every major platform shows it. Platforms fall back to the <title> and meta description when og: tags are missing, but they pick an image themselves (or none), which is the most common cause of bad previews.
All URLs must be absolute. /images/photo.jpg works in your HTML but not in og:image, because the platform fetching your page doesn't resolve it.
X (Twitter) card tags
X reads twitter:card to choose a layout (summary_large_image for a wide image, summary for a small square one) and twitter:site/twitter:creator for handles. For the title, description and image it uses twitter:title, twitter:description and twitter:image if present, and the Open Graph equivalents otherwise. A page with complete Open Graph tags needs only twitter:card to get a large card.
Image size and aspect ratio
| Platform | Shape | Practical size |
|---|---|---|
| 1.91:1 | 1200 × 630 px; under 600 × 315 px shows as a small thumbnail | |
| 1.91:1 | 1200 × 627 px | |
| X large card | 2:1 | at least 300 × 157 px, under 5 MB |
| X summary card | 1:1 | at least 144 × 144 px, under 5 MB |
One 1200 × 630 px JPG or PNG works everywhere; keep text and faces away from the edges because some apps crop to a square. Add og:image:width and og:image:height so Facebook can render the preview on the first share without downloading the image first.
Why previews don't update (caching)
Platforms store a copy of your tags the first time a link is shared and reuse it, sometimes for weeks. After you fix tags, ask each platform to fetch the page again:
- Facebook: Sharing Debugger → Scrape Again.
- LinkedIn: Post Inspector → Inspect.
- X: no manual refresh; the card updates after its cache expires (about a week). Adding a query string such as
?v=2creates a new cache entry. - Slack, WhatsApp, iMessage: cache per conversation; a new query string forces a fresh preview.
Fixing wrong or missing previews
- Wrong image: set
og:imageexplicitly; without it, platforms guess from images on the page. - No image at all: the image URL is relative, blocked by robots.txt, behind a login, or too large. The image check shows its status code and size.
- Old title: clear the platform cache (above).
- Tags present in the browser but not here: they're added by JavaScript. Most social crawlers don't run JavaScript, so the tags must be in the server HTML.
To write a complete set, use the Open Graph generator and the X card generator.
What happens to the address I enter?
To check a URL, our server requests the address you enter and returns the result to you. We don't store the pages we fetch or keep a list of the addresses you check. If you paste HTML or text instead, it is processed in your browser and not sent to us. Like any website, our hosting provider keeps short-lived technical request logs for security. See the privacy policy.
