Open Graph Preview

See the og tags a published page really serves, and what each one does to the unfurl.

Secure server processingWeb & SEOWorkingNo account needed

What this tool does

Open Graph Preview hands a page address to the OmniKitly processing service, which requests that page and returns the source down to the closing head tag. Ten properties are read out of it and printed in one table — og:title, og:description, og:image, og:url, og:type, og:site_name, og:locale, og:image:alt, og:image:width and og:image:height — each showing the value found, or the words not set where the tag is absent. Above the table sits a schematic of the large-image unfurl: the host in capitals, the title cut at 88 characters, the description cut at 200, and a grey panel naming the og:image address rather than showing it.

Every value is then judged, not merely listed. Errors are reserved for the four faults that break a share outright: no og:image at all, an og:image written as a relative path (the absolute form is worked out and offered), an og:url that is not absolute, and a page with neither og:title nor a title element. Warnings cover the rest — a missing og:title where a title element can stand in, a title past 88 characters, an og:description that is missing or past 200, an og:image served over plain http, declared dimensions under 600 by 315, a missing og:url, an og:type that is neither a standard value nor namespaced with a colon, an og:locale not shaped like en_GB, og:title, og:description, og:url or og:type declared twice, and og values spelled name= where the vocabulary requires property=. Notes carry the softer observations: a second og:image tag, no alt text, no site name, no og:type, no declared dimensions, an aspect ratio wandering from 1.91:1. An og:image:secure_url counts as an image alongside og:image.

The picture is named, never requested. Nothing downloads the file at og:image, so an address that answers 404, a file too small for the layout, or one whose subject falls outside the crop all pass without comment — the size check reads only the width and height you declared. The report is Open Graph and nothing else, too: the canonical link, the robots value, the HTTP status, the address the redirects ended on and the four twitter: values the fetch collected sit in the meta.json download rather than on screen. Nothing on the page is executed and only the head is parsed, so a tag a framework writes after load, or one emitted below the closing head tag, reads as absent — much as it would to a scraper. Markup inside a comment is skipped; markup inside a script string or an unrendered template is counted as though it were live.

This tab never issues the request itself: same-origin rules stop one site's page from reading another site's markup, so the work is handed off. The address travels to the service over an encrypted connection and is kept in the job record for as long as that job exists. It goes out as OmniKitly/1.0 carrying no cookies and no sign-in, follows at most five redirects with every hop resolved and re-checked, reads at most 512 KB, and abandons any single request that has been silent for fifteen seconds. Nothing but a public http or https address will be attempted, and every address a hostname answers with is inspected first, so a name pointing inward is turned away before a socket opens. The job record and the meta.json go together six hours after the run, unless an administrator has changed that window.

How to use it

  1. Enter the page address. Give the exact address people will click, scheme and query string and all. The label above the box also offers page HTML and the sample button fills it with a head — neither works today, because whatever sits in that box is sent to the service as an address to fetch.
  2. Leave Page URL empty unless you want a different base. The one setting. Empty, the address the fetch ended on resolves a relative og:image and fills the host line when og:url is missing. Its help line also promises a check of og:url against this value; no such comparison is performed.
  3. Run the check. One request goes out, redirects and all, and the reply is parsed as far as the closing head tag. A page answering 400 or worse is not treated as a page: the raw JSON is shown in place of the tag report.
  4. Read the card, then the findings. The mock card comes first, the ten-row table under it, then anything that failed, then anything worth knowing. The one-line summary says whether this page yields a large image card or a link with no picture at all.
  5. Fix the tags, then force a re-scrape. Facebook, LinkedIn and Slack keep the first scrape of a URL they meet. Running this again proves the new tags are live; only the platform's own debugger replaces the unfurl it stored.

Processing & privacy

Secure server processing. This operation requires temporary server processing.

Common use cases

A link that unfurls with no picture

The summary says link-only immediately, and the findings separate an og:image that is missing from one that is present but written as a path no platform can resolve.

Tags a template skipped on one page type

An SEO plugin can fill og:image on posts and leave it empty on category pages. Reading the live URL shows what the server sent, not what the layout was meant to produce.

A head carrying the same property twice

og:title, og:description, og:url and og:type are each counted, and a second copy is reported, because parsers do not agree on which of a disagreeing pair wins.

Writing copy that survives the cut

The card cuts the title at 88 characters and the description at 200, with a warning at each threshold, so the truncation shows here rather than in someone's timeline.

Questions

Where does the address I type go?
Only to the OmniKitly processing service. What leaves this page is a URL and not a document, and it has to leave, because same-origin rules keep this tab from reading another site's HTML. The URL sits in the job record while the job lives, and is deleted with the report six hours after the run by default.
Why did my pasted head come back as an invalid URL?
Because the box only ever accepts an address, whatever its label and sample button suggest. The text is forwarded to the service as the thing to request, so markup fails validation before any parsing begins. Meta Tag Preview measures a head you paste, in this browser, when the page is not published yet.
Is the og:image file itself checked?
No. Its URL is read, resolved when relative, and printed in the grey panel where the picture would sit; the file is never requested. Whether it exists, what it weighs and how it crops are all beyond what this report can tell you.
My tags are added by JavaScript and it finds none
The service reads the HTML your server sent and runs nothing at all. Anything a framework or tag manager injects into the head after load is missing from that response — and missing for the crawlers too, since almost none of them execute scripts.
The tags are right, so why does the old preview persist?
Platforms cache the first successful scrape of a URL and keep serving it. This check reads your live page, never their copy, so confirm the fix here and then push it through Facebook's sharing debugger, LinkedIn's post inspector, or a fresh share in Slack.
Can it read a staging site or localhost?
No. Public http and https only: loopback, private and link-local addresses are refused, as are .local, .internal, .lan and .home hostnames, and so is any URL with a username and password in it. A public name that resolves to a private address is turned away as well, on the first request and at every redirect after it.
What size should og:image be?
1200 by 630, a ratio of 1.91:1, is what the large card is built around. This report reads only the og:image:width and og:image:height you declare — under 600 by 315 draws a warning, a ratio far from 1.91:1 a note — and measures nothing about the file.
Where are the twitter: tags?
Not here; this report is Open Graph alone. Four of them — card, title, description and image — travel in the meta.json download beside the canonical, the robots value, the status code and the final URL. Social Card Preview puts both namespaces on screen together.

Related tools