Compare Open Graph and Twitter Card metadata between any two URLs. See og:image previews, sizes, titles, descriptions, and canonical mismatches side-by-side.
Open Graph metadata is the most under-instrumented part of any website. Marketing teams obsess over the `<title>` tag because Google shows it — but a typical SaaS gets 5–20% of its traffic from Slack, Twitter, LinkedIn, iMessage, and email link previews, and ALL of those use Open Graph, not the `<title>`. When OG data is missing or broken, every shared link of yours looks like a naked URL. CTR drops by 30–60% versus a properly-previewed link.
## What goes wrong with OG metadata at scale
1. **Templates leak across page types** — your blog post template uses the right og:image, but the marketing landing template inherits a stale homepage image. Half your shares look wrong. 2. **Relative URLs in og:image** — works in Chrome's preview, fails in LinkedIn and Slack which require absolute URLs. 3. **Image too large** — Twitter rejects og:image over 5MB; some platforms truncate over 1MB. A 4MB hero image becomes a missing preview. 4. **A/B variants drift** — variant A has og:image, variant B forgot. Half your test sees no preview. 5. **Canonical/og:url mismatch** — confuses crawlers about which URL is authoritative, sometimes splitting share counts across both URLs.
## Why a side-by-side diff is the right tool
Single-URL OG checkers exist (Facebook's debugger, opengraph.xyz, etc.) but they answer "is this page's OG OK". The harder question is "is my A page consistent with my B page" — that's the regression that ships A/B tests with broken previews, or causes language alternates to use the wrong language's OG image. Diffing two URLs surfaces drift instantly.
## What we don't check (use other tools)
We don't fetch the og:image and check its actual rendered dimensions — only its file size via HEAD. For rendered-image inspection, use Facebook's sharing debugger (it fetches and renders, plus busts LinkedIn's cache). We don't check OAuth-protected pages or pages behind paywalls. We don't check Twitter cards for app/player-specific fields beyond the basics.
## Cache busting — the LinkedIn gotcha
LinkedIn caches og:image for ~7 days, and they don't honour cache-busting query strings consistently. If you update an og:image in place, LinkedIn keeps showing the old one for a week. The fix: change the og:image URL (new filename, not `?v=2`) when you update. Twitter and Facebook have their own debuggers that force-refresh; LinkedIn doesn't.
Open Graph tags decide how your links look in LinkedIn, Twitter, Slack, iMessage, Discord, Facebook, WhatsApp, and dozens of other channels. A missing or oversized og:image kills click-through. Inconsistent OG metadata across similar pages (A/B variants, language alternates, mobile/desktop) signals chaos and quietly suppresses social CTR. This tool diffs two pages side-by-side so you can spot the regression before it goes live.
We fetch both URLs in parallel with a 12-second timeout and `LemWatchOG/1.0` user-agent. From each HTML we extract og:title, og:description, og:image, og:image:url, twitter:card, twitter:image, the page `<title>`, the `<meta name="description">`, and the canonical `<link>`. The og:image URL is resolved to an absolute URL against the page base, then HEAD-checked to get the content-length (file size in KB) and content-type. Errors (failed fetch, missing og:image, broken og:image URL) are collected per URL and surfaced separately so you can fix them one at a time. Results are returned in a parallel `{ a, b }` structure for easy diffing.
LinkedIn caches og:image for ~7 days and ignores query-string cache-busts. Change the og:image filename (not `?v=2`) to force a refresh — or use LinkedIn's Post Inspector to manually refresh.
1200x630 pixels, under 1MB, JPG or PNG. This works across Twitter, LinkedIn, Facebook, Slack, iMessage, WhatsApp, and Discord.
In theory yes (the spec resolves against the page URL), in practice no — LinkedIn and Slack require absolute URLs. Always use https://your-domain.com/og.jpg.
Yes if you care about both platforms. Twitter uses twitter:card / twitter:image when present, falls back to og: tags when not. LinkedIn / Facebook / Slack use og: tags exclusively.
Because the most valuable diff is between two related pages (A/B variants, language alternates, before/after). For bulk OG audits, use our paid monitoring tier which checks every page on a site.