Free Tool
    Updated 6 June 2026

    Open Graph Comparison

    Compare Open Graph and Twitter Card metadata between any two URLs. See og:image previews, sizes, titles, descriptions, and canonical mismatches side-by-side.

    By Deepak Shukla — Founder & CEO, Pearl Lemon

    Part of Visual monitoring — the full answer, the facts and the alternatives in one place.

    What This Tool Checks

    • og:title, og:description, og:image (with file size + content-type)
    • twitter:card, twitter:image
    • Canonical URL on each page
    • Whether og:image actually loads (HEAD check)
    • Differences between the two pages, field-by-field

    Why This Matters

    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.

    How to Fix Issues

    1. 1.Add og:image, og:title, og:description to every page (1200x630, <300KB)
    2. 2.Add twitter:card=summary_large_image plus twitter:image
    3. 3.Keep og:title and og:description distinct from <title> and meta-description if needed (social copy can differ from SEO copy)
    4. 4.Always include an absolute URL for og:image (relative paths break in some platforms)
    5. 5.Use a CDN-served image; LinkedIn cache lasts ~7 days, so updating in place fails — change the URL

    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.

    Methodology

    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.

    Frequently Asked Questions

    Monitor this continuously with LemWatch

    A one-off free open graph image comparison shows you today. LemWatch re-runs the same checks around the clock and alerts you the moment something breaks — free for up to 10 sites, no card needed.

    HTTP Status Code Reference

    Understanding HTTP status codes helps you diagnose issues found by this tool: