Autonomous Agentic AI Pipeline

Free tool, paste mode sends nothing anywhere, fetch mode makes one request you start

Open Graph checker that fetches the page and measures the image

By Michael Lip

Give it a URL or paste the served HTML. It lists every og property, marks the four the protocol requires for every page, og:title, og:type, og:image and og:url, tests the url, image, type and locale rules, then loads the og:image itself and reports the real pixel width and height beside the figures Meta and LinkedIn publish. Every rule links the line of the specification or the vendor page it came from.

Most checkers stop at listing tags. The two things that actually break a share are an image that is the wrong size and a page whose served HTML differs from what you see in the browser, so this one fetches the page the way a crawler would, through a relay you trigger, and measures the image file rather than trusting the declared width and height.

  • 58major homepages measured by one HTTPS GET each on 6 September 2026
  • 51of those 58 carry at least one og property
  • 40of those 58 carry all four required properties
  • 6of those 58 declare og:image:alt, the property the protocol says an image should have

01Check a page by URL or by pasting its HTML

Two ways in. Type an https URL and press Fetch, and the served HTML arrives through a small relay the author runs, exactly as a crawler would receive it, then runs through the same checker. Or paste HTML yourself, from view source rather than the rendered DOM, and nothing leaves your browser at all. The head alone is enough. In fetch mode the og:image is loaded and measured straight away. In paste mode the image stays untouched until you press the measure button in the preview card, because pasting must stay a fully offline act.

Type an https URL and press Fetch. The relay accepts https only, follows at most five redirects, keeps the first megabyte and gives up after twelve seconds. Or skip this and paste HTML below.

Parsing happens in your browser. The one thing a browser cannot do on its own is read another site's HTML, so the Fetch button calls a relay endpoint the author of this site runs on workers.dev. It requests the one URL you typed over https, follows at most five redirects, refuses anything but https, caps the body at one megabyte and reports its status, final URL, byte count and whether it truncated. Every relay error is shown to you word for word. Measuring an image means your browser requests that image file from wherever it is hosted, which is why paste mode asks before doing it.

Nothing you type is stored, and the paste box works with no fetch at all.

02Every rule the checker applies, and the line it comes from

No rule here is invented. Each row quotes the protocol or the vendor page it came from, and the image figures the measurement compares against are the ones those vendor pages publish, quoted with their source. Where a source publishes no limit, the checker applies none.

The four required properties

Required by the protocol for every page
PropertyWhat the source says it isSource
og:titleThe title of the object as it should appear within the graph. Meta adds that it is the title without any branding such as your site name.ogp.me, Meta
og:typeThe type of the object, and depending on the type specified other properties may also be required.ogp.me
og:imageAn image URL which should represent the object within the graph.ogp.me
og:urlThe canonical URL of the object, used as its permanent ID in the graph. Meta adds that it should be the undecorated URL, without session variables, user identifying parameters or counters.ogp.me, Meta

Optional properties the protocol documents

Optional in the protocol
PropertyWhat the source says it isSource
og:descriptionA one to two sentence description of the object. No character limit is stated on the protocol page. Meta describes a brief description of the content, usually between two and four sentences.ogp.me, Meta
og:site_nameThe name which should be displayed for the overall site when the object is part of a larger web site.ogp.me
og:localeThe locale these tags are marked up in, of the format language_TERRITORY, with a default of en_US.ogp.me
og:locale:alternateAn array of other locales this page is available in.ogp.me
og:determinerThe word that appears before the object title in a sentence, an enum of a, an, the, blank and auto, defaulting to blank.ogp.me

The image properties

Some properties can have extra metadata attached to them, and those structured properties are written the same way as any other, with the extra segment on the property name. Put them after the root tag they belong to, because when another root element is parsed the previous structured property is considered done and another one is started.

Structured properties of og:image
PropertyWhat the source says it isSource
og:image:urlIdentical to og:image.ogp.me
og:image:secure_urlAn alternate url to use if the webpage requires HTTPS.ogp.me
og:image:typeA MIME type for this image.ogp.me
og:image:widthThe number of pixels wide. Meta says declaring the width and height specifies the image dimensions to the crawler so it can render the image immediately without having to asynchronously download and process it.ogp.me, Meta
og:image:heightThe number of pixels high.ogp.me
og:image:altA description of what is in the image and not a caption. The protocol says that if the page specifies an og:image it should specify og:image:alt.ogp.me

The image figures the measurement compares against

Once the image is loaded, its natural width and height are read from the image element and set beside these published figures. Each figure is quoted from the vendor page named in the row. File size is not in the table because a browser cannot read the byte size of a cross origin image without CORS headers on that image, so the checker states that plainly rather than guessing.

Documented image figures, quoted from the vendor pages
FigureWhat the source saysSource
Minimum dimensionThe minimum allowed image dimension is 200 x 200 pixels.Meta image sharing
Recommended dimensionAt least 1200 x 630 pixels for the best display on high resolution devices.Meta image sharing
Aspect ratioKeep images as close to a 1.91:1 aspect ratio as possible to display the full image without cropping. LinkedIn recommends the same ratio, 1.91:1, for the sharing module.Meta image sharing, LinkedIn help
LinkedIn minimum dimensionMinimum image dimensions of 1200 (w) x 627 (h) pixels for the sharing module.LinkedIn help
File size, not checkedMeta says the size of the image file must not exceed 8 MB. LinkedIn states a maximum file size of 5 MB. Neither is measurable from a browser without CORS, so the checker links them and does not test them.Meta image sharing, LinkedIn help

The type vocabulary

A page that is not marked up should be treated as og:type website, and Meta says the default is website when you do not specify a type. The documented values are below. Types outside the global list are CURIEs that carry a colon, and namespaced global types are always prefixed with the namespace and then a period.

og:type values documented on the protocol page
GroupValuesSource
Globalwebsite, article, book, profileogp.me
Music verticalmusic.song, music.album, music.playlist, music.radio_stationogp.me
Video verticalvideo.movie, video.episode, video.tv_show, video.otherogp.me
Betapayment.linkogp.me

Who reads which property

What the readers say about themselves
ReaderWhat its documentation saysSource
MetaIts crawler gathers, caches and displays information about the app or website such as its title, description and thumbnail image. Images are cached based on the URL and will not be updated unless the URL changes.Meta crawlers
LinkedInIts help page lists og:title, og:image, og:description and og:url as the tags that must exist for a link share, written with the property attribute.LinkedIn help
SlackFor classic link unfurling Slack crawls the URL, looks for common OpenGraph and X Card metadata, then renders an approximation of the content.Slack docs

03What the tags actually look like on major homepages

Reference tables tell you what the protocol allows. They do not tell you what large sites bother to ship. So the homepage of every host in a fixed list of large, well resourced sites was fetched once over HTTPS on 6 September 2026 with a desktop browser user agent, and of those, 58 returned served HTML and were measured for the counts below. Served HTML only, nothing rendered by script.

Of those 58 measured homepages, 51 carried at least one og property and 40 carried all four required ones. The gap between those two counts is the ordinary case, a page with a title and an image and no type or no url.

Open Graph properties across 58 measured homepages, one HTTPS GET per host, captured 2026-09-06
PropertyHosts declaring itNote
og:title49 of 58The most common of the four required properties in this sample
og:type46 of 58Split below between website and article
og:image43 of 58The property a preview card is built around
og:url47 of 58The permanent ID the protocol describes
og:description47 of 58Optional in the protocol, common in practice
og:site_name39 of 58Optional
og:locale18 of 58Optional, and much rarer than description
og:image:width and og:image:height together7 of 58The pair Meta says lets its crawler render without downloading first
og:image:alt6 of 58The protocol says a page specifying og:image should specify it
More than one og:image1 of 58Multiple values are allowed, and almost nobody uses them here
og:type set to website39 of 58The value a non marked up page is treated as anyway
og:type set to article4 of 58A global type with its own namespace
twitter:card40 of 58The X card tag, counted from the same served HTML

Sample of 58 measured homepages, instrument one HTTPS GET per host reading served HTML, captured 6 September 2026. The raw machine readable file is data/homepage-tag-census-2026-09-06.json, served from this origin, and every count above is read from it by code rather than typed. Two things worth taking from the table. The image alt count and the width and height count are far below the count for og:image itself, so the two properties the vendor documentation asks for are the two most often skipped by sites with real budgets. And the type field is close to a formality, since most hosts that set it set the value a crawler would assume anyway.

04Common questions

Why a preview shows the wrong image

Three causes cover most cases, and the checker above tests all three. First, Meta documents that images are cached based on the URL and will not be updated unless the URL changes, so replacing the file at the same address leaves the old card in place. Publish the new image at a new URL, and if the content was not available when the crawl happened, Meta says a crawl can be forced once it becomes available, either by passing the URL through the Sharing Debugger tool or by using the Sharing API. Second, if the page carries the same property twice with different values, the protocol says the first tag from top to bottom is given preference during conflicts, so a stale tag near the top of the head quietly wins over the correct one further down. Third, the file itself is too small or the wrong shape. Meta documents a minimum allowed dimension of 200 x 200 pixels and recommends at least 1200 x 630, and a file below the minimum can be dropped from the card altogether. Fetch the page above and the checker loads the image and tells you which of these it is.

Making og url match the canonical

The protocol describes og:url as the canonical URL of your object that will be used as its permanent ID in the graph. Meta describes the same property as the canonical URL for your page, and says it should be the undecorated URL, without session variables, user identifying parameters or counters. Two pages that share content and differ only by a tracking parameter therefore want the same og:url. The checker compares your og:url against the canonical link element in the same HTML and shows both strings when they differ, which is the mismatch that splits one page into two objects. In fetch mode it also shows you the final URL the relay ended at after redirects, since a redirect chain that lands somewhere other than og:url is a second way to split the object.

Choosing a type value

Use website unless the page is genuinely one of the documented objects. A page that is not marked up should be treated as og:type website, and Meta says the default is website when no type is specified, so setting website on an ordinary page changes very little. The protocol documents article, book and profile as global types alongside website, a music vertical covering music.song, music.album, music.playlist and music.radio_station, a video vertical covering video.movie, video.episode, video.tv_show and video.other, and payment.link as a beta type. Picking a vertical type matters because the protocol says other properties may also be required depending on the type specified.

The closing slash on a meta tag

Both forms are fine. The protocol writes its own examples with a trailing slash. The HTML Standard lists meta among the void elements, and says the trailing solidus on a void element does not mark the start tag as self closing but instead is unnecessary and has no effect of any kind. So a checker that reports a missing slash as an error is reporting nothing. What does matter is the attribute carrying the name. The protocol writes og properties with a property attribute and the value in a content attribute, the HTML Standard requires exactly one of name, http-equiv, charset and itemprop on a meta element, and property is defined by RDFa Core, which uses it for expressing relationships between a subject and either a resource object if given or some literal text. The checker flags any og property written with name so you can see it.

What leaves your browser

In paste mode, nothing. Your HTML is parsed in the page, the report is built from that parse, and no request is made with any part of it. The preview card does not load the image until you press the measure button, and pressing it makes your browser request that one image file from its host, the same request any visitor to your page makes when they see the card. In fetch mode, the URL you typed is sent to the relay, the relay fetches it and hands the HTML back, and the image is then requested by your browser. Nothing is stored either way, and the relay's answer, including any error, is printed on the page word for word.

Read before trusting any verdict above

05What this checker cannot tell you

The tool answers one narrow set of questions, what og tags the HTML carries, whether they follow the documented rules, and what size the image file really is. It does not answer any of these.

  • LIMITRun your scripts. Tags a framework injects after load are invisible to the relay and to a paste of view source, which is the point, since a crawler reading served HTML does not see them either.
  • LIMITMeasure the image file size. A browser cannot read the byte size of a cross origin image without CORS headers on it, so the file size limits Meta and LinkedIn publish are linked and not tested.
  • LIMITSee the image the way a crawler does. Your browser loads it from your network with your cookies, and a host that serves a different file to crawlers, or blocks them, will not show that here.
  • LIMITInvent a length limit. The protocol states no character limit for og:description, so the checker reports none, and any tool that shows you a red bar at a specific character count is applying a rule from somewhere other than the specification.
  • LIMITTell you how a given platform will render your card. Each reader lays out its own preview and the checker only reports what the protocol and the vendor documentation say about the tags and the image.
  • LIMITFetch anything but https. The relay refuses http, private address space is not a route it will take, and a page that needs a login or a specific cookie will return whatever the server sends an anonymous request.
  • LIMITThe census is a fixed list of large, well resourced hosts, not a random sample of the web, and homepages only, which are the least typical page of any site.
  • LIMITThe census is one fetch per host from one network location with a desktop browser user agent, served HTML only, nothing rendered by script, so tags injected by JavaScript are not seen, and a count of hosts declaring a property says nothing about whether the value is any good.

06Where these rules and numbers come from

By Michael Lip, who fetched and published the census on this page and wrote the checker above.

Every count on this page is read by code from the census file published beside it and rendered into the page at build time, so no figure here was typed by hand or estimated. A value that could not be fetched is held as null and rendered as unknown rather than defaulted to something flattering. Every rule the checker applies, and every image figure it compares against, is quoted from one of the pages below.

Reading crawler traffic in raw server logs teaches you quickly that a request claiming to be Googlebot has to be checked against Google's published IP range files, because the user agent string is free to forge, and the same instinct applies to metadata. What a page claims in its head and what a reader of served HTML actually gets are two different things, so the counts here come from fetching the HTML rather than from asking anyone what they ship, and the checker fetches and measures for the same reason. The same instrument produced the robots.txt census behind the robots.txt checker on this site.

This page was built by the pipeline it sells

The tool and the census on this page are what the pipeline produces. It refuses a keyword already saturated by an AI Overview, it will not let a page state a number that code did not compute, and it blocks a page that only restates what already ranks. It runs on your machine, there is no hosted service and no account, and you pay once.

Sixty day refund. Nothing about traffic, rankings or indexation is promised here or anywhere else on this site.