SEO Auditor — validates that the page declares the Open Graph tags social platforms need to render a rich link preview.
Social sharing
Facebook, LinkedIn, Slack, WhatsApp and most chat apps build link previews from
og:* tags.Click-through
A title, description and reachable preview image make shared links stand out and get clicked.
<meta property="og:…"> tags. This auditor fetches the page with jsoup, collects every og:, article:, music:, video: and book: meta tag, verifies the four required properties, checks that og:url and og:image are absolute and consistent with the page, and probes the og:image URL to confirm it serves a supported image type.
How it works
- Fetch — requests the HTML with jsoup (including HTTP Basic Auth when provided). A fetch failure produces an
ERRORresponse. - Collect — reads every
<meta>whoseproperty(orname) starts withog:,article:,music:,video:orbook:, keeping document order and repeated values. - Probe — when
og:imageis an absolute URL, sends aHEADrequest (falling back toGETon405) with a 5 second timeout and records the HTTP status andContent-Type. - Rules — missing
og:title,og:type,og:imageandog:urlare separate FAILs. Empty optional tags, duplicated non-array properties, relative or off-hostog:url, relative, unreachable or non-imageog:image, and articles withoutarticle:published_timeare WARNINGs. - Aggregate —
ERRORwins, thenFAIL, thenWARNING; if every rule passes, the audit isSUCCESS. - Specification pin — every run emits
37A-OpengraphAuditor-100(INFORMATION) naming the Open Graph protocol pinned tohttps://ogp.me/. That check does not change overall status.
What it audits
Every row maps to onecheckRule* method and one CheckCode. 37A-OpengraphAuditor-100 is emitted on every run, including fetch errors. Image rules 305 and 306 only run when og:image is absolute, and 306 is skipped when 305 fires. CheckCode suffixes use status ranges: 100 information, 200 success, 300–399 warning, 400–499 fail, 500–599 error.
Output documentation
Risks and considerations
Missing required tags
- Without
og:title,og:imageandog:url, platforms scrape the<title>, the first large image and the shared URL, which often produces a wrong or empty preview. og:typetells consumers how to treat the object (website,article,product, …); a missing type is treated aswebsiteby some scrapers and rejected by others.
URLs and canonicalisation
og:urlis the canonical identity of the object in the social graph. A relative value or a value on a different host splits share counts and can point previews at the wrong site.- Relative
og:imagevalues are not resolved by every scraper; use an absolutehttps://URL.
Preview image
- The image must be publicly fetchable without cookies or authentication; a
403,404or timeout leaves the preview blank. - Serve JPEG, PNG, GIF or WebP with the matching
Content-Type. HTML error pages or SVG returned under an image URL are ignored by most platforms. - The auditor probes with
HEADfirst and retries withGETon405; servers that blockHEADwith other status codes will warn.
Repeated and empty tags
- The protocol allows arrays only for specific properties (
og:image,og:video,og:audio,og:locale:alternate,article:tag, …). Repeatingog:titleorog:descriptionis ambiguous; crawlers use the first value. - An optional tag with an empty
contentis a leftover from a template and should be filled or removed.
Articles
article:published_timelets platforms and search engines show a date and order content; it is expected wheneverog:typeisarticle.