HEAD TO HEAD AUDIT
SEO Comparison Tool
Analyze and compare two URLs side-by-side. Identify which page has better on-page SEO, check keyword densities, and outrank your direct competitors instantly.

VS
Separate multiple keywords with a comma (,).
Recent Comparisons
{{ item.winner }} {{ item.urlA }} vs {{ item.urlB }}
- {{ step.title }}
Comparison Failed
{{ errorMessage }}
{{ winnerData.title }}
{{ winnerData.url }}
{{ winnerData.score }}
SEO Health Score
{{ resultA.score }}
URL A
{{ resultB.score }}
URL B
Word Count
{{ resultA.wordCount }}
URL A
{{ resultB.wordCount }}
URL B
Total Links
{{ resultA.linksTotal }}
URL A
{{ resultB.linksTotal }}
URL B
Missing Alt Images
{{ resultA.imgMissingAlt }}
URL A
{{ resultB.imgMissingAlt }}
URL B
{{ competitiveInsights.winsA }} Wins
URL A Advantages
- {{ item }}
No clear category leads detected for URL A.
{{ competitiveInsights.ties }} Ties
Tied Metrics
Both pages share identical or matched performance in {{ competitiveInsights.ties }} critical on-page SEO evaluations.
{{ competitiveInsights.winsB }} Wins
URL B Advantages
- {{ item }}
No clear category leads detected for URL B.
Page Architecture & Health
URL A ({{ resultA.domain }})
Score: {{ resultA.score }}/100
HTML Size: {{ resultA.pageSizeKb }} • Lang: {{ resultA.htmlLang }}
CMS: {{ resultA.cms }}
URL B ({{ resultB.domain }})
Score: {{ resultB.score }}/100
HTML Size: {{ resultB.pageSizeKb }} • Lang: {{ resultB.htmlLang }}
CMS: {{ resultB.cms }}
High-Level Search Signals
URL A
Words: {{ resultA.wordCount }} (~{{ resultA.readingTime }})
Headings: {{ resultA.h1Count }} H1 • {{ resultA.h2Count }} H2 • {{ resultA.h3Count }} H3
Links: {{ resultA.linksInternal }} Internal • {{ resultA.linksExternal }} External
URL B
Words: {{ resultB.wordCount }} (~{{ resultB.readingTime }})
Headings: {{ resultB.h1Count }} H1 • {{ resultB.h2Count }} H2 • {{ resultB.h3Count }} H3
Links: {{ resultB.linksInternal }} Internal • {{ resultB.linksExternal }} External
Document Title
URL A {{ resultA.titleLen }} chars
{{ resultA.title }}
URL B {{ resultB.titleLen }} chars
{{ resultB.title }}
Meta Description
URL A {{ resultA.descLen }} chars
{{ resultA.desc }}
URL B {{ resultB.descLen }} chars
{{ resultB.desc }}
Canonical & Indexing Directives
URL A
Canonical:
{{ resultA.canonical }}
Robots: {{ resultA.robots }}
URL B
Canonical:
{{ resultB.canonical }}
Robots: {{ resultB.robots }}
Open Graph & Social Cards Mockup
URL A Social Card
URL B Social Card
H1 Main Heading
URL A ({{ resultA.h1Count }} H1 tags)
{{ resultA.h1 }}
URL B ({{ resultB.h1Count }} H1 tags)
{{ resultB.h1 }}
Content Volume & Readability
URL A
Total Words: {{ resultA.wordCount }} words
Reading Time: ~{{ resultA.readingTime }}
Paragraphs: {{ resultA.paragraphCount }} • Text/HTML: {{ resultA.textRatio }}%
URL B
Total Words: {{ resultB.wordCount }} words
Reading Time: ~{{ resultB.readingTime }}
Paragraphs: {{ resultB.paragraphCount }} • Text/HTML: {{ resultB.textRatio }}%
Headings Outline Tree (H1-H4)
URL A Headings Hierarchy ({{ resultA.headingsTree.length }})
{{ h.tag }} {{ h.text }}
No headings found on URL A.
URL B Headings Hierarchy ({{ resultB.headingsTree.length }})
{{ h.tag }} {{ h.text }}
No headings found on URL B.
Target Keyword: "{{ kw }}"
URL A
Found: {{ resultA.keywordsStats[i] ? resultA.keywordsStats[i].count : 0 }} times
Density: {{ resultA.keywordsStats[i] ? resultA.keywordsStats[i].density : 0 }}%
In Title In Desc In H1 Not in Meta/H1
URL B
Found: {{ resultB.keywordsStats[i] ? resultB.keywordsStats[i].count : 0 }} times
Density: {{ resultB.keywordsStats[i] ? resultB.keywordsStats[i].density : 0 }}%
In Title In Desc In H1 Not in Meta/H1
Content Gap Keywords (Used by Competitor URL B, Missing in URL A)
High-value topical terms your competitor is ranking for that your page is currently missing.
{{ k.term }} In B: {{ k.countB }}x
No major missing topical gap terms detected.
Shared Topical Keywords
Core industry keywords found across both competing URLs.
| Topical Phrase / Term | URL A Usage | URL B Usage | Difference |
|---|---|---|---|
| {{ k.term }} | {{ k.countA }}x | {{ k.countB }}x | +{{ k.diff }} in A {{ Math.abs(k.diff) }} more in B Equal |
Links Architecture Breakdown
URL A ({{ resultA.linksTotal }} Total Links)
Internal Links: {{ resultA.linksInternal }}
External Links: {{ resultA.linksExternal }} ({{ resultA.linksNofollow }} nofollow)
Empty Anchor Links: {{ resultA.linksEmptyAnchor }}
URL B ({{ resultB.linksTotal }} Total Links)
Internal Links: {{ resultB.linksInternal }}
External Links: {{ resultB.linksExternal }} ({{ resultB.linksNofollow }} nofollow)
Empty Anchor Links: {{ resultB.linksEmptyAnchor }}
Link Protocols & Security
URL A Protocol Distribution
Secure (HTTPS): {{ resultA.linksHttps }} links
Insecure (HTTP): {{ resultA.linksHttp }} links
100% Secure Links
URL B Protocol Distribution
Secure (HTTPS): {{ resultB.linksHttps }} links
Insecure (HTTP): {{ resultB.linksHttp }} links
100% Secure Links
Top Outbound Target Domains
URL A External Authorities
- {{ d }}
No external outbound domains linked.
URL B External Authorities
- {{ d }}
No external outbound domains linked.
Media Assets & Modern Optimization
URL A Images ({{ resultA.imgTotal }} total)
Valid Alt: {{ resultA.imgValidAlt }} • Missing Alt: {{ resultA.imgMissingAlt }}
Lazy Loading: {{ resultA.imgLazyCount }} • Modern WebP/SVG: {{ resultA.imgModernCount }}
Videos / Embeds: {{ resultA.videoCount }}
URL B Images ({{ resultB.imgTotal }} total)
Valid Alt: {{ resultB.imgValidAlt }} • Missing Alt: {{ resultB.imgMissingAlt }}
Lazy Loading: {{ resultB.imgLazyCount }} • Modern WebP/SVG: {{ resultB.imgModernCount }}
Videos / Embeds: {{ resultB.videoCount }}
Structured Data (JSON-LD Schemas)
URL A Schemas ({{ resultA.schemasCount }} blocks)
No JSON-LD Schema markup detected.
URL B Schemas ({{ resultB.schemasCount }} blocks)
No JSON-LD Schema markup detected.
Internationalization (Hreflangs)
URL A Languages ({{ resultA.hreflangs.length }})
{{ hr.lang }}
No alternate hreflang tags found.
URL B Languages ({{ resultB.hreflangs.length }})
{{ hr.lang }}
No alternate hreflang tags found.