OG Preview
Preview how your page looks when shared on Facebook, X, LinkedIn, WhatsApp & Slack. Generates ready-to-paste Open Graph + Twitter Card tags.
OG Preview
Browsers block cross-origin reads — paste tags by hand for now.
These are approximations, not renderings. Each card here is our reconstruction of a platform layout from its published guidance — no platform is queried and none of them commits to a pixel-level appearance, so treat the previews as a check on whether your title survives truncation and whether your image reads at thumbnail size. Where real published limits exist, the tool follows them: X caps twitter:title at 70 characters, twitter:description at 200 and twitter:image:alt at 420; Facebook takes og:image from 200×200, renders the large card from 600×315, recommends 1200×630 near 1.91:1, and accepts up to 8 MB against X's 5 MB. Google publishes no limit for a page title or description at all.
How to use OG Preview
Fill in your page details
Type the URL, title, description, and image URL of the page you want to share. Leave fields blank to see what default cards look like.
Pick your card type
summary_large_image is the modern wide card used by most blogs. summary is the compact square thumbnail variant some publishers still prefer.
Watch the five previews update live
Facebook, X, LinkedIn, WhatsApp, and Slack each render slightly differently — fix any obvious issues (truncation, missing image) before publishing.
Copy the meta tags
Click Copy tags and paste into your page's <head>. Re-test using Facebook Sharing Debugger and X Card Validator after deploy.
Open Graph & Twitter Cards — What Actually Renders
Open Graph is a set of <meta> tags Facebook introduced in 2010 so that any URL pasted into a feed could carry a title, description, and image instead of a naked link. Every major social platform — including ones that competed bitterly with Facebook — adopted it within a few years, because the alternative was bad-looking link previews and lower engagement. Today, Open Graph is the de facto contract between content publishers and link-sharing surfaces: chat apps, search engines, embed cards, RSS readers, even AI summarisers read these tags first when they encounter a new URL.
The four required tags — and the fifth everyone needs anyway
The protocol requires exactly four properties: og:title, og:type, og:image and og:url. og:description is formally optional — the spec calls it "a one to two sentence description of your object" and lists it among the generally recommended extras — but every scraper uses it, so treat it as a fifth requirement in practice. The spec also asks that a page specifying og:image should specify og:image:alt, which almost nobody does and which is the difference between a screen-reader user getting a description and getting nothing. Where a property appears twice, the first occurrence from the top of the document wins.
X layers a parallel twitter: family on top, and its own markup reference gives an Open Graph fallback for every one of them — twitter:title falls back to og:title, twitter:description to og:description, twitter:image to og:image, twitter:image:alt to og:image:alt. The single exception is twitter:card itself, which has no equivalent; absent it, X states that a summary card may still be rendered from og:type, og:title and og:description. So in practice you add one tag, not a set: summary_large_image for the wide hero, summary for the compact square thumb.
X does publish real character limits where Google publishes none: twitter:title is capped at 70 characters, twitter:description at 200, and twitter:image:alt at 420. The image must be under 5 MB and be JPG, PNG, WEBP or GIF — SVG is not supported, and only the first frame of an animated GIF is used.
Most "broken share cards" come from one of three things: missing og:image, a cached old version on Facebook, or an image that fails to load over HTTPS.
Image dimensions that work everywhere
Aim for 1200×630, which is what Facebook recommends for high-resolution screens and what fits X's wide card without cropping. Facebook's published thresholds below that are worth knowing exactly: the minimum allowed dimension is 200×200, and 600×315 is the point at which a link post renders with the large image rather than a small thumbnail. An image under 600×315 is not refused — it simply appears small, which is the more common disappointment. Facebook accepts up to 8 MB and asks you to stay close to a 1.91:1 ratio to avoid cropping; X caps its image at 5 MB, so 5 MB is the figure that binds if you want the card to work everywhere. Use JPEG or PNG for the widest compatibility; X accepts WEBP and GIF but not SVG.
The APAC sharing landscape — five platforms, five layouts
The useful generalisation is not which app dominates which country — that moves faster than a tool page can track — but that the surfaces your links land on are not the ones you tested. Chat apps and workplace tools consume Open Graph the same way a feed does, and most of them render the compact layout: thumbnail on the left, title and description on the right, which is why a hero image with words baked into it becomes illegible. That is the layout the WhatsApp and Slack previews on this page reproduce. The one structural exception in the region is WeChat, which does not read Open Graph for in-app sharing at all and expects share metadata to be set at runtime through its own JS-SDK — so a page that must present well inside WeChat needs work this tool cannot preview.
Why your card looks fine here but broken on Facebook
Every one of these platforms caches what it scraped the first time your URL was shared, and none of them re-reads your page because you changed it. Change og:image and re-share and you will keep seeing the old image, potentially for a long time. The fix is to force a re-scrape from the platform's own tool — the Facebook Sharing Debugger is the one you will use most, and LinkedIn's Post Inspector does the same job. Cache lifetimes are not published as commitments and are not worth memorising; what matters is the habit. After any meta-tag change, re-scrape deliberately and look at the result, rather than pasting the link into your own feed and trusting what appears.
One more thing: og:url and canonicals
The og:url tag should match your canonical URL exactly. If your page is reachable at both example.com/post and example.com/post?utm_source=newsletter, set og:url to the clean canonical version. Facebook deduplicates engagement metrics (likes, shares) per og:url — if every newsletter share has a different URL, you fragment your social proof across dozens of "different" pages. Same goes for trailing slashes — pick one and stick with it.
The published numbers behind a share card — required tags, image thresholds, character caps
Only four Open Graph properties are required: og:title, og:type, og:image, og:url. og:description is formally optional, which surprises most people, because every scraper uses it.
The spec says a page specifying og:image "should specify og:image:alt". Almost no page does, and it is the only thing standing between a screen-reader user and a card with no description at all.
When the same property appears twice, the spec resolves it by document order: "The first tag (from top to bottom) is given preference during conflicts." A stray duplicate higher in the head silently wins.
Facebook's minimum allowed og:image dimension is 200×200. Below 600×315 the post still renders — just with a small thumbnail instead of the large image, which is what "my card looks wrong" usually means.
Facebook accepts an og:image up to 8 MB; X caps its card image at 5 MB. If you want one file to work on both, 5 MB is the number that binds.
X does publish character limits where Google publishes none: twitter:title 70, twitter:description 200, twitter:image:alt 420.
X supports JPG, PNG, WEBP and GIF for card images and explicitly does not support SVG. Only the first frame of an animated GIF is used.
Every twitter: property falls back to its og: equivalent — except twitter:card, which has none. Without it, X may still render a plain summary card from og:type, og:title and og:description.
Open Graph is published under the Open Web Foundation Agreement v0.9, not by a standards body — which is why platform documentation, not the spec, is where the numbers that actually bind you live.
WeChat does not read Open Graph for in-app sharing; share metadata is set at runtime through its own JS-SDK. Nothing on this page previews that.
FAQ
-
Open Graph is the protocol at ogp.me, originally from Facebook and published under the Open Web Foundation Agreement; it is what LinkedIn, WhatsApp, Slack, Discord and iMessage read. X Cards is a parallel
twitter:family, and X's own reference maps every one of its properties back to an og: fallback — so if your Open Graph markup is good, X already has almost everything. The one property with no fallback istwitter:card, which chooses the layout. Add that one tag; skip the rest unless you deliberately want X to show something different. -
1200×630 at a 1.91:1 ratio — the size Facebook recommends for high-resolution screens, and the shape X's
summary_large_imageexpects. The thresholds beneath it are Facebook's published ones: 200×200 is the minimum accepted at all, and 600×315 is where a link post switches from a small thumbnail to the large image. Keep the file under 5 MB, which is X's cap and stricter than Facebook's 8 MB, and use JPEG or PNG; X also takes WEBP and GIF but not SVG. -
Browsers enforce the same-origin policy — JavaScript on recatools.com cannot read the HTML of other websites. A server-side fetcher would work but introduces hosting and abuse-prevention costs. For now, copy the tags manually from View Source on the target page.
-
Indefinitely on first scrape. To force a refresh, paste the URL into the Facebook Sharing Debugger and click Scrape Again. Same applies after every og: tag change.
-
No — Google's search snippets come from the page's
<title>,<meta name="description">, and Schema.org markup. Open Graph is for social sharing only. However, Google Discover and some news products do read og:image as a fallback. -
X publishes a figure:
twitter:titleis capped at 70 characters andtwitter:descriptionat 200. Facebook and LinkedIn publish no equivalent limit, and any number you are given for them is somebody's measurement of a layout that changes — which is the reason for the previews above. Write to X's 70, check the rest by eye, and set a separatetwitter:titleif the headline you want on X differs from the one you want elsewhere. -
Yes — WhatsApp reads og:title, og:description and og:image, and renders the compact layout: small thumbnail on the left, text on the right. It does not read
twitter:tags. Serve the image over HTTPS, and keep in mind that the compact layout is where a hero image with text baked into it becomes unreadable — which is what the WhatsApp column above is there to show you. -
Always absolute —
https://example.com/og.jpg. Relative URLs fail on almost every platform because the crawler doesn't know which host to resolve them against. Same applies to og:url. -
Use
summary_large_image— the wide hero card. The oldersummary(small square thumb) is fine for product listings or pages where a wide image would look awkward. Avoidplayerandappunless you're shipping video or a mobile app. -
For sharing inside WeChat (Moments, chats, Mini Programs), yes — WeChat uses its own JS-SDK with
wx.updateAppMessageShareData()calls that set custom title/desc/image per page. Standard og: tags still serve international users hitting your site from outside the Great Firewall, so keep them for that audience.
Method & sources
How it computes
Reconstructs five share-card layouts — Facebook, X, LinkedIn, WhatsApp and Slack — from what you type, and emits the matching Open Graph and X Card markup. No platform is queried and nothing is fetched cross-origin; the cards approximate published layout guidance, so they check truncation and thumbnail legibility rather than promising a pixel-accurate render. Where a real published limit exists the tool honours it: twitter:title is cut at 70 characters and twitter:description at 200.
What this tool implements
- Open Graph protocol (ogp.me, Open Web Foundation Agreement v0.9): og:title, og:type, og:image and og:url are the four required properties; og:description is optional; a page specifying og:image should also specify og:image:alt; and where a property is repeated, the first tag from the top of the document wins.
- X Cards markup reference: every twitter: property has an og: fallback except twitter:card itself, which has none — absent it, X may still render a summary card from og:type, og:title and og:description. Limits honoured in the generated markup: title 70 characters, description 200, image:alt 420.
- X image constraints: under 5 MB; JPG, PNG, WEBP or GIF; SVG unsupported; only the first frame of an animated GIF is used.
- Facebook og:image thresholds: minimum 200x200; 600x315 or above for the large link preview rather than a thumbnail; 1200x630 recommended for high-resolution screens; up to 8 MB; close to 1.91:1 to avoid cropping. The page states plainly that a smaller image is displayed small, not refused.
- The LinkedIn, WhatsApp and Slack truncation points used in the previews (110, 65/110, 200 characters) are RECATOOLS' own layout approximations — those platforms publish no character limit — and the page says so rather than presenting them as specifications.
Sources
- The Open Graph protocol, ogp.me — four required properties (og:title, og:type, og:image, og:url); og:description as 'a one to two sentence description of your object'; 'If the page specifies an og:image it should specify og:image:alt'; 'The first tag (from top to bottom) is given preference during conflicts'; published under the Open Web Foundation Agreement, Version 0.9. Fetched 2026-09-13. https://ogp.me/
- X Developer Platform. Cards Markup Tag Reference — the per-tag OpenGraph fallback table, twitter:title 'max 70 characters', twitter:description 'maximum 200 characters', twitter:image:alt 'Maximum 420 characters', twitter:image 'less than 5MB in size. JPG, PNG, WEBP and GIF formats are supported... SVG is not supported'. The canonical URL now redirects to the docs landing page; read from the Internet Archive capture of 2025-01-01. https://web.archive.org/web/20250101200326/https://developer.x.co…
- Meta for Developers. Sharing best practices / images — 'The minimum allowed image dimension is 200 x 200 pixels'; 'Use images that are at least 1200 x 630 pixels for the best display on high resolution devices'; 'At the minimum, you should use images that are 600 x 315 pixels to display link page posts with larger images'; 8 MB maximum; keep close to 1.91:1. Fetched 2026-09-13. https://developers.facebook.com/docs/sharing/webmasters/images/
- Google Search Central. Control your title links in Google Search results — 'While there's no limit on how long a <title> element can be, the title link is truncated in Google Search results as needed, typically to fit the device width'. Last updated 2025-12-10 UTC; fetched 2026-09-13. https://developers.google.com/search/docs/appearance/title-link
What can make this go out of date
- Platform card layouts and image guidance are vendor documentation and change without notice; the Facebook dimension thresholds and X character caps should be re-read before being restated.
- X's Cards markup reference no longer resolves at its canonical URL, so the limits the tool honours currently have no live first-party page behind them.
Pick up where you left off
Stored only in this browser — never sent to our servers.