Skip to content
Submit your app

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.

Try one: coolify.ioastro.build

What it checks

Every tag that decides how a link looks

Fourteen checks across the search result, the Open Graph set, the X card and the icon, each one with the corrected markup rather than a complaint.

The search result

Title length against the 30 to 60 character window, description against 70 to 160, the canonical, and whether a stray noindex is quietly keeping the page out of Google altogether.

The card image

We measure the real file: content type, weight, and pixel dimensions read from the image header. An SVG card image is called out, because every one of these networks refuses it and no card renders at all.

Four previews

X, LinkedIn, Slack and Discord all truncate differently and LinkedIn drops the description entirely. Seeing all four together is usually what makes the fix obvious.

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.