Open Graph Checker

Paste the <meta> tags from your <head>. You get the share card they actually produce — including the blank one, which is the whole point.

🔒 Your data never leaves your browser.

The mistake is name=, and you cannot see it

Open Graph is built on RDFa, so its tags use property=. Nearly every other meta tag — description, viewport, robots — uses name=, so writing name="og:title" is the natural thing to do.

The page renders identically. Validators that only look for the string "og:title" find it. And the share preview comes out empty, because scrapers ignore the tag entirely. This is the single most common Open Graph failure and it survives every kind of review that involves looking at the page.

So this page counts a name= tag as absent, exactly as a scraper does — the required-properties list will show it missing, which is what will actually happen.

A relative og:image fails the same silent way

/images/product.jpg resolves perfectly in a browser, which has the page URL to resolve it against. A scraper fetching your markup has no such context, so the card has no picture. Absolute URLs, always.

This page does not fetch anything

The image above is not loaded — you see its URL rather than the picture. That is deliberate: everything here runs in your browser and makes no outbound requests, so this tool cannot and does not tell you whether the image exists, what size it is, or whether the URL returns a 404. It checks the markup, which is a different question, and it says which one it is answering.

Every check this tool runs (10 rules)

OG-A01 Uses name= where Open Graph requires property=

Open Graph is defined on RDFa, so its tags use the property attribute. Almost every other meta tag uses name, which is why this is the mistake people make — and it is invisible: the page looks completely normal in a browser, and the share preview comes out blank.

Fix: Change name="og:…" to property="og:…".

Source: The Open Graph protocol

OG-R01 Missing a required property

The protocol requires og:title, og:type, og:image and og:url on every page. Missing any of them means the scraper falls back to guessing from the page body, and what it guesses is rarely what you wanted shared.

Source: The Open Graph protocol

OG-U01 og:image or og:url is a relative path

A scraper has no page context to resolve a relative path against. The image works perfectly when you look at the page and is simply absent from the share card — another failure that cannot be seen by reading the HTML in a browser.

Fix: Use the full absolute URL including the scheme and host.

Source: The Open Graph protocol

OG-C01 og:url is not the canonical URL

og:url is the permanent identifier for the object in the graph. If it carries tracking parameters or a session id, every share creates a separate object and the like and share counts split between them.

Fix: Use the clean canonical URL, without campaign parameters.

Source: The Open Graph protocol

OG-D01 og:description is missing or very long

Not strictly required by the protocol, but without one the platform pulls whatever text it finds first. Long descriptions are truncated in the card, generally well before 200 characters.

Source: Own engineering guidance on how share cards render, not a requirement of the Open Graph protocol — ogp.me does not specify description length or image dimensions. Facebook’s own webmaster documentation would be the natural citation, but it returned HTTP 400 to anonymous automated requests on 2026-08-23, so no link is offered rather than one that cannot be checked.

OG-T01 og:type value is not one the protocol defines

og:type selects which additional properties apply. An unrecognised value means the extra properties you have set are ignored, and the object is treated as a plain website.

Fix: Use website, article, book, profile, or one of the music.*, video.* types.

Source: The Open Graph protocol

OG-I01 og:image has no dimensions declared

Declaring og:image:width and og:image:height lets the platform lay out the card before it has fetched the image. Without them the first share of a new URL often renders without the picture, because the scraper had not finished fetching it in time.

Source: Own engineering guidance on how share cards render, not a requirement of the Open Graph protocol — ogp.me does not specify description length or image dimensions. Facebook’s own webmaster documentation would be the natural citation, but it returned HTTP 400 to anonymous automated requests on 2026-08-23, so no link is offered rather than one that cannot be checked.

OG-M01 Duplicate property with different content

The same property appears more than once with different values. Some are legitimately repeatable — og:image is — but for single-valued properties the scraper takes the first, which may not be the one you meant.

Source: The Open Graph protocol

OG-N01 Syntax only — the URLs are not fetched

This checks the markup. It does not fetch og:image to see whether the file exists, is the right size, or returns a 404, and it does not fetch og:url. Those need a request from outside your browser, which this page deliberately does not make.

Source: The Open Graph protocol

OG-V01 All four required properties present and absolute

Title, type, image and URL are all declared with property= and absolute URLs.

Source: The Open Graph protocol

Markup only. No URL in your tags is fetched, so nothing here says whether the image or the page exists.