Free tool
OG and meta tag checker
Paste a URL. You get the card as it will actually render on X, LinkedIn, Slack and Discord, a pass or fail on every tag that matters, and the corrected markup to paste back into your head.
In good shape
Checked astro.build
14 pass, 1 worth a look, 0 to fix
Fetched in 37 ms with a browser User-Agent. The card image is 1200 by 630.
https://applauncher.dev/tools/og-meta-checker/?url=https%3A%2F%2Fastro.build%2F
Open it again after you ship the fixes and the report reruns against the live page.
Previews
How the link renders
Drawn from the tags we just read, with each network's own truncation applied. If a card looks wrong here, it looks wrong there.
astro.build
Astro
Astro builds fast content sites, powerful web applications, dynamic server APIs, and everything in-...
Astro
astro.build
LinkedIn drops the description entirely, so the title has to carry the click.
Astro
Astro
Astro builds fast content sites, powerful web applications, dynamic server APIs, and everything in-between.
Astro
Astro
Astro builds fast content sites, powerful web applications, dynamic server APIs, and everything in-between.
Search result
What Google shows, and whether the page can be indexed at all.
-
Title tag Check
Astro
5 characters. Under 30 leaves room on the table: say what the product does, not just its name.
<title>Astro - what it does in four words</title> -
Meta description Pass
Astro builds fast content sites, powerful web applications, dynamic server APIs, and everything in-between.
107 characters, inside the 70 to 160 range.
-
Canonical link Pass
https://astro.build/
Absolute and self-referencing.
-
Robots meta Pass
max-image-preview:large
Indexable.
Open Graph
Read by LinkedIn, Slack, Discord, Facebook, WhatsApp and almost everything else.
-
og:title Pass
Astro
5 characters. Slack and Discord show roughly the first 70.
-
og:description Pass
Astro builds fast content sites, powerful web applications, dynamic server APIs, and everything in-between.
107 characters. LinkedIn truncates hardest, at about 100.
-
og:image Pass
1200 x 630 JPEG, 739 KB
Exactly 1200 x 630, 739 KB. That is the size every network crops to.
-
og:url Pass
https://astro.build/
Matches the page it is on.
-
og:type Pass
website
Declared as website.
-
og:site_name Pass
Astro
Present, so the card carries your product name above the title.
X
X reads its own tags first and falls back to Open Graph.
-
twitter:card Pass
summary_large_image
Set to summary_large_image, the full-width card.
-
twitter:title Pass
Astro
5 characters.
-
twitter:description Pass
Astro builds fast content sites, powerful web applications, dynamic server APIs, and everything in-between.
107 characters. X cuts at about 200.
-
twitter:image Pass
https://astro.build/og/astro.jpg
Set explicitly.
Icons
The small mark beside the site name in a chat unfurl.
-
Favicon Pass
https://astro.build/favicon.svg
2 icon links declared. Slack and Discord use it beside the site name.
Copy all
The corrected head block
Everything the page already got right is kept verbatim, so this can go in wholesale. Replace the placeholder image path if you do not have a card image yet.
<title>Astro</title>
<meta name="description" content="Astro builds fast content sites, powerful web applications, dynamic server APIs, and everything in-between." />
<link rel="canonical" href="https://astro.build/" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Astro" />
<meta property="og:title" content="Astro" />
<meta property="og:description" content="Astro builds fast content sites, powerful web applications, dynamic server APIs, and everything in-between." />
<meta property="og:url" content="https://astro.build/" />
<meta property="og:image" content="https://astro.build/og/astro.jpg" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:alt" content="Astro" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Astro" />
<meta name="twitter:description" content="Astro builds fast content sites, powerful web applications, dynamic server APIs, and everything in-between." />
<meta name="twitter:image" content="https://astro.build/og/astro.jpg" />
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
<link rel="apple-touch-icon" href="/apple-touch-icon.png" /> Method
How this works
We fetch the page once, with a browser User-Agent, a 10 second timeout and a 1MB ceiling on the response. Many marketing pages serve something different to anything that looks like a crawler, so asking for the page the way a browser does is the only way to see what a person sees.
The head is then read for the title, meta description, canonical, robots meta, icon links, the full og: set and the full twitter: set. The card image is measured separately: a HEAD request for its type and weight, then a ranged request for the first 128KB, from which the pixel dimensions are read straight out of the PNG, JPEG, GIF or WebP header. Nothing is decoded and the whole image is never downloaded.
The thresholds are the ones that actually bite. Title 30 to 60 characters, because that is what Google shows without truncating. Description 70 to 160. og:image present, absolute and either 1200 by 630 or the same 1.91 to 1 ratio, because every network crops to it. twitter:card set to summary_large_image, without which X shows a small square thumbnail no matter how wide your image is. Canonical absolute and self-referencing. An icon link present, because the fallback is the first letter of your domain.
Every check that loses a point comes with the corrected tag, and the whole corrected head block is at the bottom of the report. Nothing is stored: the URL is in the address bar and that is the only copy.