Open Graph Tags: The Complete Guide for 2026 (with Free Checker)
Updated July 25, 2026
🛠️ This guide pairs with our free Open Graph Checker — Preview how any link looks on Facebook, X, LinkedIn, Discord & WhatsApp — and fix its OG tags.
When your link gets shared on Facebook, X, LinkedIn, Discord, WhatsApp or Slack, the platform doesn’t look at your page’s design — it reads a handful of <meta> tags and builds the preview card from them. Those are Open Graph (OG) tags, and the difference between a rich card with an image and a bare blue link is usually four lines of HTML. This guide covers the tags that matter in 2026, the image specs, and how to test — which got harder since Facebook put its debugger behind a login and X killed its Card Validator.
The tags that actually matter
The Open Graph protocol defines dozens of tags; platforms actually read about eight:
<meta property="og:title" content="Your Headline — 60–88 chars renders best" />
<meta property="og:description" content="One or two sentences, ~110–160 characters." />
<meta property="og:image" content="https://example.com/og-image-1200x630.jpg" />
<meta property="og:url" content="https://example.com/this-page" />
<meta property="og:type" content="article" />
<meta property="og:site_name" content="Your Site" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:image" content="https://example.com/og-image-1200x630.jpg" />
Notes people miss:
og:urlshould be the canonical URL. Facebook aggregates like/share counts byog:url— if every URL variant (with?utm_..., withwww.and without) declares itself, your share counts fragment.og:typeiswebsitefor most pages,articlefor posts (which unlocksarticle:published_timeandarticle:author).- X falls back to OG tags when
twitter:*tags are missing — so you only needtwitter:card; the rest is optional insurance. - Property vs name: OG tags use
property=, Twitter tags usename=. Mixing them up is a classic silent failure — some parsers forgive it, some don’t.
og:image: the one tag worth obsessing over
The image is 80% of the card’s visual impact, and it has real requirements:
| Requirement | Value | Why |
|---|---|---|
| Dimensions | 1200 × 630 px | Sharp on retina at every platform’s large-card size |
| Aspect ratio | 1.91:1 | Facebook/LinkedIn/X large cards crop to this |
| Minimum | 600 × 315 | Below this, Facebook shows a small side-thumbnail instead |
| Format | JPG or PNG (animated GIF: first frame) | WebP/AVIF support is still inconsistent across platforms |
| URL | Absolute + HTTPS | Relative paths and http:// images are ignored by most scrapers |
| File size | Under ~5 MB | Larger images get skipped by some platforms |
WhatsApp and Telegram crop toward a center square in their small preview — keep the subject of the image centered so it survives both the 1.91:1 and square crops.
Debugging: why your changes don’t show up
Platforms cache scrape results aggressively — typically days to a week. The debugging loop that works:
- Check the tags themselves with our free Open Graph Checker: it fetches your URL (no Facebook login needed), validates every tag, loads your og:image to verify its actual pixel dimensions, and previews the card as Google, Facebook, X, LinkedIn, Discord and WhatsApp will render it. It also generates a corrected snippet you can paste straight into your
<head>. Pages that aren’t deployed yet? Paste the HTML directly — it parses in your browser. - Force a re-scrape after fixing: Facebook Sharing Debugger → “Scrape Again”; LinkedIn Post Inspector → re-inspect; X has no manual refresh — append
?v=2to bust its cache or wait ~7 days. - Verify the scraper can reach you. OG scrapers fetch server-side: if your tags are injected by client-side JavaScript, most platforms never see them. OG tags must be in the server-rendered HTML. (Static site generators and SSR frameworks get this right by default; SPAs need prerendering.)
Copy-paste template for articles
<meta property="og:type" content="article" />
<meta property="og:title" content="{{title}}" />
<meta property="og:description" content="{{excerpt}}" />
<meta property="og:url" content="{{canonical_url}}" />
<meta property="og:image" content="{{image_1200x630}}" />
<meta property="og:site_name" content="{{site_name}}" />
<meta property="article:published_time" content="{{iso_date}}" />
<meta name="twitter:card" content="summary_large_image" />
Fill the placeholders from your CMS, run the page through the checker once before launch, and your links will render as proper cards everywhere they’re shared. It’s the cheapest click-through-rate upgrade in SEO — the tags take five minutes, and they work on every platform at once.