Open Graph Checker

Loading tool…

About Open Graph Checker

Paste a public URL and click Analyze. We list og: and twitter: tags from the HTML. Missing og:title, og:description, og:image, or og:url is a warning. A relative og:image (no http or https) is also a warning. We HEAD the image URL when it is absolute; a 400 or higher is a warning, a failed fetch is a notice.

twitter:card is only flagged when both twitter:card and og:title are missing, because X can fall back to Open Graph. The card preview is an approximate layout, not Facebook's or X's cache. Their own debuggers remain the source of truth after you deploy.

When to use it

Use it after you swap a campaign image or change og:title, when Slack, LinkedIn, or iMessage still shows the old card or a blank frame. That is a fetch of the live HTML, not Facebook's cache.

Use it before a launch when the share URL is new and you have not pasted it into Sharing Debugger yet. It is not SERP Preview and it does not write tags.

How to use Open Graph Checker

  1. 1Paste the page URL. It must be publicly reachable.
  2. 2Click Analyze. We fetch the HTML and try a HEAD on the og:image URL.
  3. 3Review missing tags. Required Open Graph fields are listed first. Twitter tags sit in a second table.
  4. 4Check the card preview. Then verify in Facebook's debugger or X's card validator after you deploy.

How to read the results

The card mock uses og:title, og:description, og:image, and og:site_name. Missing og:title or og:description is written on the mock. Below that: the issue list, then tables titled Open Graph and Twitter. Required fields are og:title, og:description, og:image, and og:url. Each missing one is a warning.

example.com warned on all four and noticed No twitter:card. github.com passed Required Open Graph tags present and listed og:image, og:image:alt, og:site_name, og:type, og:title, og:url, and og:description. A relative og:image is a warning. HEAD 400 or higher on an absolute image is a warning; a failed HEAD is a notice.

Why this matters

Share scrapers request og:image as a full URL. A path like /share.png is resolved against the wrong base more often than a title tag is, so the card paints without a picture. That is why relative images are a warning here even when the file is already in the media library.

Facebook and X keep their own cache. A clean Analyze on this page does not refresh theirs. You still paste the URL into their debugger after deploy. twitter:card can be omitted when og:title exists because X will fall back.

Limits and privacy

One public URL plus a HEAD of an absolute og:image. Loopback and reserved IPs are rejected. Hotlink rules can hide image status. About 20 card checks per minute on your network. No login.

Common mistakes

Reading the on-page card as proof Facebook will show that image. Their debugger and cache are separate.

Fixing Twitter tags first on a page that is missing og:title. The twitter:card notice only appears when og:title is missing too.

Hotlink-blocking the image host, then treating a failed HEAD as a missing tag. The og:image string can still be present in the table.

FAQs

Which Open Graph tags are required here?
og:title, og:description, og:image, and og:url. Each missing field is a warning.
Do you measure image width and height?
No. We check that og:image is an absolute URL and whether a HEAD on that URL succeeds. Dimensions are not read.
Why is twitter:card optional?
X can fall back to og:title. We only notice a missing twitter:card when og:title is missing too.
Does this clear Facebook's cache?
No. Use Facebook's sharing debugger to refresh their cache after you change tags.
Does LinkedIn need extra tags?
LinkedIn reads Open Graph. A basic card does not need a second tag set.
Why is example.com all warnings?
The HTML has no og:title, og:description, og:image, or og:url, so each is a warning, plus No twitter:card because og:title is also missing. github.com is the opposite: those four are present and the row is Required Open Graph tags present.
Does the card mock use Twitter tags?
No. The mock is og:title, og:description, og:image, and og:site_name. Twitter values sit in the second table. X can still fall back to Open Graph when twitter:card is absent.
Why did the image HEAD fail when I can see the file?
We request the absolute og:image URL with HEAD. A hotlink blocker, a 403, or a timeout is a notice or warning even when a browser tab loads the file. The tag table still shows the string we found.