---
title: "OG Image Comparison — Free Open Graph Side-by-Side Diff"
description: "Free Open Graph comparison tool. Diff og:image, og:title, twitter card, and canonical tags between any two URLs. Perfect for A/B testing social previews."
canonical: "https://lemwatch.com/tools/og-image-comparison"
source: "https://lemwatch.com"
---

# 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.

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.

## 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 it 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 what it finds

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

## 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

### Why is my LinkedIn preview still wrong after I fixed the og:image?

 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.

### What size should my og:image be?

 1200x630 pixels, under 1MB, JPG or PNG. This works across Twitter, LinkedIn, Facebook, Slack, iMessage, WhatsApp, and Discord.

### Can I use a relative URL for og:image?

 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.

### Do I need both og: and twitter: tags?

 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.

### Why does this only check two URLs at a time?

 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.


## Related

- [All free tools](https://lemwatch.com/tools)
- [noindex checker](https://lemwatch.com/tools/indexability-checker)
- [HTML Validator](https://lemwatch.com/tools/html-validator)
- [Sitemap Diff](https://lemwatch.com/tools/sitemap-diff)
- [WordPress Detector](https://lemwatch.com/tools/wordpress-detector)
- [Lemwatch pricing](https://lemwatch.com/pricing)
- [All monitoring checks](https://lemwatch.com/features)
- [Print Stylesheet Checker](https://lemwatch.com/tools/print-stylesheet-checker)
