Key takeaways
- Every link card comes from four tags: og:title, og:description, og:image and og:url. X also reads twitter:card; without it you may get a small card.
- Use a 1200×630 px PNG or JPEG (1.91:1) under about 5 MB, with an absolute https:// URL. SVG doesn't work on the major platforms.
- Keep important text and logos in the center of the image — platforms crop the edges differently.
- Platforms cache previews. After changing tags, re-scrape with the platform's own debugger (Facebook Sharing Debugger, LinkedIn Post Inspector).
Which meta tags control link previews?
| Tag | Used by | What to put in it |
|---|---|---|
| og:title | All platforms | The headline for the card. Can differ from the title tag — no need for the brand suffix. Aim for under ~60–70 characters. |
| og:description | Facebook, X, Slack, Discord (not LinkedIn's feed or iMessage) | One or two sentences, ~100–160 characters. |
| og:image | All platforms | Absolute URL to a 1200×630 PNG or JPEG. |
| og:image:alt | X, some screen readers | A plain description of the image. |
| og:url | All platforms | The canonical URL, so shares of variants group together. |
| og:site_name | Facebook, Slack | Your brand name. |
| twitter:card | X | summary_large_image for a full-width image, summary for a small square thumbnail. |
| twitter:site | X | Your @handle, credited on the card in some views. |
X falls back to the og: tags when twitter:title, twitter:description or twitter:image are missing, so you only need twitter:card (and optionally twitter:site) on top of Open Graph. The generator writes both sets anyway, which costs nothing and avoids edge cases.
How to preview and fix your link card
- 1.Type the title, description and canonical URL you want the card to show.
- 2.Paste your og:image URL — your browser loads it directly — or choose a local image file to try a design before uploading it. The checks report its real pixel size and ratio.
- 3.Compare the five previews. Notice which ones show the description (LinkedIn and iMessage mostly don't) and where the image gets cropped.
- 4.Copy the generated tags into your page's <head>, or into your framework's metadata API (Next.js metadata, Astro head, a WordPress SEO plugin).
- 5.Publish, then re-scrape the URL in each platform's debugger so they drop the old cached card.
Image sizes per platform
| Platform | Recommended image | Notes |
|---|---|---|
| 1200×630 (1.91:1) | Below 600×315 shows a small thumbnail. Cached aggressively; use the Sharing Debugger to refresh. | |
| 1200×627 (1.91:1) | Shows image, title and domain. Refresh with Post Inspector. | |
| X (Twitter) | 1200×628 for large cards; 1:1 for summary cards | Needs twitter:card=summary_large_image for the big image. |
| Slack | 1200×630 | Unfurls show site name, title, description and the image; workspace admins can disable unfurls. |
| iMessage | 1200×630 | Uses og:title and og:image; long titles are cut after about two lines. |
| Discord, WhatsApp, Telegram | 1200×630 | All read Open Graph; WhatsApp is commonly reported to need images under ~300 KB for reliable previews. |
Common Open Graph mistakes
- Relative image URLs. og:image=/og.png is ignored by most crawlers. Always use the full https:// URL.
- Images blocked to crawlers. If robots.txt, a login wall or bot protection blocks facebookexternalhit, Twitterbot or LinkedInBot, the card comes out blank.
- SVG or huge images. SVG isn't supported; multi-megabyte PNGs time out. Export a compressed PNG or JPEG.
- The same image for every page. It works, but per-page images (generated from the title) get noticeably more clicks.
- Tags injected only by client-side JavaScript. Most preview crawlers don't run JavaScript, so tags must be in the server-rendered HTML.
- Forgetting the cache. Changing tags doesn't change already-cached previews until the platform re-scrapes the URL.
Why this tool doesn't fetch your URL
Fetching arbitrary user-supplied URLs from our servers would make the tool a proxy anyone could point at internal addresses, so everything here works from what you type. The trade-off is that you paste your values rather than a link. To check what crawlers see on a live page, use the platforms' own debuggers, or view the page source and search for og:.
After the click
A better card earns more clicks; what matters is what those visitors do next. Tag shared links with the UTM builder, and VisitTrack will show visits, signups and revenue per channel — cookie-free, with social referrers like t.co and lnkd.in correctly grouped as social. For the search-result version of the same problem, use the SERP snippet preview.
Frequently asked questions
What size should an Open Graph image be?
1200×630 pixels (a 1.91:1 ratio) works on Facebook, LinkedIn, X, Slack and iMessage. Use PNG or JPEG, keep it under about 5 MB (smaller is better for WhatsApp), and keep text away from the edges, which some platforms crop.
Why isn't my link preview updating?
Platforms cache link previews, often for days. After changing your tags, re-scrape the URL with the Facebook Sharing Debugger or LinkedIn Post Inspector; for X and Slack, sharing the URL with a harmless query string such as ?v=2 forces a fresh fetch.
Do I need Twitter card tags if I have Open Graph tags?
Only twitter:card is really needed. X falls back to og:title, og:description and og:image when the twitter: equivalents are missing, but without twitter:card=summary_large_image you may get a small thumbnail instead of a large image.
Why does my link show no image?
Usually the og:image URL is relative, the image is SVG, it's too large or slow to download, or a crawler like facebookexternalhit or LinkedInBot is blocked by robots.txt, a firewall or a login. The tags must also be in the server-rendered HTML, not added later by JavaScript.
How long should og:title and og:description be?
Keep og:title under roughly 60–70 characters and og:description around 100–160 characters. Platforms truncate at different points, and LinkedIn and iMessage often don't show the description at all, so put the essential message in the title and image.
Can I check Open Graph tags without sharing the link?
Yes. Paste your values into this preview to see approximate cards for five platforms, or use each platform's debugger to see exactly what its crawler reads from a live URL. Neither requires actually posting.
Related tools and guides
- SERP snippet previewCheck title and description truncation in Google.
- Schema markup generatorJSON-LD for rich results and AI engines.
- UTM builderTag the links you share.
- User-agent bot checkerIdentify facebookexternalhit, Twitterbot and other preview bots.
- Bot filteringWhy link-preview bots don't count as visitors.
- VisitTrack blogGrowth and analytics guides.