SEO Meta Tag Comparer

Paste two page sources and see exactly what changed in meta tags, breadcrumbs, and other SEO data — built for site migrations.

added on B   removed from A   changed word

About this tool

Paste the full HTML source of two versions of the same page — for example a page before and after moving to a new WordPress theme or a new CMS — and see exactly what changed across everything search engines care about: title, meta description, canonical URL, robots directives, Open Graph and Twitter Card tags, search-console verification tags, JSON-LD structured data types, breadcrumbs, heading structure, and image alt-text coverage. Everything runs locally in your browser via the native HTML parser — nothing you paste is ever uploaded anywhere.

Why paste source instead of a URL. Browsers block a page from fetching another site's HTML directly (and a lot of migrations happen on staging URLs, behind a login, or before DNS is even switched over), so this works from whatever you already have open: view the page, view its source (usually Ctrl/Cmd+U, or "View Page Source"), select all, and paste it into the matching box.

Breadcrumbs. Detected in the order sites most commonly implement them: a JSON-LD BreadcrumbList block first, then itemscope/itemprop microdata, then a visible breadcrumb navigation element as a last resort — whichever is found first is shown, along with which method found it.

Frequently asked questions

What exactly does this compare?
Core meta tags (title, description, canonical, robots, lang, charset, viewport), Open Graph tags, Twitter Card tags, search-engine verification meta tags (Google, Bing, Yandex, Naver), the set of JSON-LD structured-data types present, breadcrumbs, heading counts, image alt-text coverage, hreflang alternates, favicon, and a rough visible word count.
How are breadcrumbs detected?
It checks for a JSON-LD BreadcrumbList block first, falls back to itemscope/itemprop microdata if there's no JSON-LD, and falls back again to a visible breadcrumb navigation element if neither structured format is present. The "Detected via" row shows which method was used for each page.
Does it matter that the two pages have different URLs or are on different domains?
No — every value is read directly out of the two HTML sources as plain text. Nothing is resolved against a real URL or fetched over the network, so staging URLs, localhost, or a page that isn't live yet all work fine.
Is my pasted HTML uploaded anywhere?
No — parsing and comparison happen entirely in your browser using its built-in HTML parser. Nothing is sent to a server.
What counts as "changed" versus "added" or "removed"?
A field present on both sides with a different value is a change. A field missing on Page A but present on Page B is an addition; present on Page A but missing on Page B is a removal. A field missing on both sides is left unhighlighted — there's nothing to compare.
Why does it flag some things as warnings instead of just differences?
A handful of checks matter on their own, independent of whether they changed — a missing canonical URL, a noindex/nofollow robots value, a missing title/description, more or less than one H1, or a verification tag that disappeared between the two versions. Those are called out in a warnings box even if both sides happen to share the same underlying problem.