Open Graph Preview
See the og tags a published page really serves, and what each one does to the unfurl.
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
- 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.
- 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.
- 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.
- 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.
- 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?
Why did my pasted head come back as an invalid URL?
Is the og:image file itself checked?
My tags are added by JavaScript and it finds none
The tags are right, so why does the old preview persist?
Can it read a staging site or localhost?
What size should og:image be?
Where are the twitter: tags?
Related tools
- Meta Tag Preview — See how your title and description look in search results.
- Redirect Checker — Follow a redirect chain and see every hop.
- WCAG Contrast Checker — Test colour pairs against AA and AAA thresholds.
- Favicon Generator — Generate a full favicon set from one source image.
- Social Card Preview — Check Twitter, LinkedIn and Slack card rendering.
- Robots.txt Generator — Build a robots.txt with sensible defaults.