Benchmark your target webpage against top competitors with automated n-gram entity extraction, heading outline gaps, rich media audits, Information Gain analysis, and calibrated 0–100 scoring.
Benchmark your target webpage against top competitors with automated n-gram entity extraction, heading outline gaps, rich media audits, Information Gain analysis, and calibrated 0–100 scoring.
Executes ultra-fast HTTP parsing with automated stealth Playwright Chromium escalation for Single-Page Applications (Next.js, React, Nuxt) and dynamic DOM hydration.
Dynamically tokenizes competitor content into unigrams, bigrams, and trigrams to discover common competitor vocabulary and flag high-frequency missing keywords.
Reconstructs full H1–H6 document outlines, evaluates question subheadings for People Also Ask (PAA) intent, and identifies competitor sub-topics missing on your page.
Detects commodity consensus content and audits original data tables and structured categorical lists to ensure your page introduces unique, verifiable value.
Evaluates pages across 6 weighted categories with strict severity ceiling caps for soft-404 errors, accidental noindex directives, and missing H1 tags.
Assesses section word density against the 100–250 word Generative Engine Optimization sweet spot to maximize extraction by Google AI Overviews and LLMs.
Templates & workflows
Benchmark your creator landing page against leading link-in-bio competitors to audit heading structures, visual media, and FAQ schema.
{
"timeout": 30,
"targetUrl": "https://linktr.ee/",
"concurrency": 2,
"competitorUrls": "https://beacons.ai/,https://taplink.at/en/"
}Compare your technical blog post against top-ranking developer blogs to identify missing semantic keywords and heading outline gaps.
{
"timeout": 30,
"targetUrl": "https://supabase.com/blog/scraping-edge",
"concurrency": 3,
"competitorUrls": "https://cal.com/blog/web-data, https://posthog.com/blog/data-pipeline"
}Benchmark your landing page against the top 5 ranking competitors with maximum parallel auditing speed.
{
"timeout": 45,
"targetUrl": "https://resend.com/",
"concurrency": 4,
"competitorUrls": "https://postmarkapp.com/, https://sendgrid.com/, https://mailgun.com/"
}Competitor On-Page SEO Comparison & Content Gap Auditor
An enterprise-grade, dual-engine Competitor On-Page SEO Comparison, Semantic Content Gap Auditor, and Information Gain Benchmarking Engine for BrowserMesh.
Benchmark any target webpage directly against top 1–10 competing URLs ranking for the same search intent. Automatically extracts clean article text, calculates Flesch readability, reconstructs full H1–H6 heading outlines, tokenizes 1-gram, 2-gram, and 3-gram semantic entities, audits Information Gain assets (data tables and structured lists), evaluates Generative Engine Optimization (GEO) passage chunking, and generates an actionable 8-dimension Win/Loss matrix with prioritized remediation roadmaps.
The definitive 2026 modern alternative to Surfer SEO ($89/mo), Clearscope ($170/mo), PageOptimizer Pro ($44/mo), MarketMuse ($149/mo), and Semrush On-Page SEO Checker.
what, why, how, when, who, which, can, does, is, should).<table> elements and structured categorical <ul>/<ol> lists across all pages.{
"targetUrl": "https://linktr.ee/",
"competitorUrls": "https://beacons.ai/,\nhttps://taplink.at/en/",
"concurrency": 2,
"timeout": 30
}
https://example.com/guide, http://mysite.org/post.example.com/blog (automatically prepended with https://).127.0.0.1, localhost, 10.0.0.0/8, 192.168.0.0/16, 169.254.169.254).Every yielded record strictly adheres to the 15-field output contract, designed for seamless rendering in BrowserMesh's DataGrid, Smart Cards, and Sub-Table Inspector:
target (Raw Extracted Page Audit)url, domain, statusCode, score, grade, title, titleLength, metaDescription, metaDescriptionLength, canonicalUrl, isIndexable, isSoft404.author: Extracted author byline from HTML meta, rel=author, or JSON-LD schema (E-E-A-T signal).publishedDate & modifiedDate: ISO 8601 timestamps for content freshness auditing.domNodeCount: Total DOM elements count (Core Web Vitals INP & bloat indicator).wordCount & readingTimeMinutes: Clean main content body word count and estimated reading time.readability: { fleschReadingEase, gradeLevel }.headings: { h1: string[], h2: string[], h3: string[], total: number, avgWordsPerSection: number, questionHeadings: string[], outline: Array<{ level, text, isQuestion }> }.images: { total: number, withAlt: number, missingAlt: number, modernFormats: number, list: Array<{ src, alt, format, hasAlt }> }.media: { hasVideo: boolean, videoCount: number, tablesCount: number, listsCount: number }.links: { internal: number, external: number, total: number }.schema: { types: string[] }.topTerms: Array of top n-gram entities extracted ([{ term, count, nGram }]).competitors (Array of Competitor Audits)Each entry in the competitors array contains the exact same schema as target, plus:
rankInGroup: Number indicating competitor rank within the analyzed cohort (1 = highest score).summary (Comparative Intelligence)benchmarks: Statistical comparisons against competitor medians and means for wordCount, headingsCount, imagesCount, tablesCount, listsCount, domNodeCount, internalLinksCount, externalLinksCount, and readabilityScore. Each includes { target, competitorMedian, delta, status }.contentGaps:
commonCompetitorTerms: Terms appearing on 2+ competitors with target comparison.missingSemanticKeywords: String array of high-frequency competitor terms absent from target.missingSubtopics: Competitor H2/H3 subheadings not covered on target page.missingSchemas: Schema.org types implemented by competitors that target lacks.informationGainGaps: Data tables and structured lists missing on target.aiOverviewReadiness: { directAnswerLead, avgSectionWords, passageChunkStatus }.winLossMatrix: Win / Tie / Loss status and rationale across 8 core dimensions.recommendations: Prioritized roadmap organized into highPriority, mediumPriority, and lowPriority actionable tasks.[
{
"url": "https://linktr.ee/",
"title": "Link in bio tool: Everything you are, in one simple link | Linktree",
"score": 83,
"grade": "B",
"status": "completed",
"statusCode": 200,
"targetRank": 1,
"competitorsCount": 2,
"competitorAvgScore": 72.5,
"winnerUrl": "https://linktr.ee/",
"targetUrl": "https://linktr.ee/",
"competitorUrls": [
"https://beacons.ai/",
"https://taplink.at/en/"
],
"target": {
"url": "https://linktr.ee/",
"domain": "linktr.ee",
"statusCode": 200,
"score": 83,
"grade": "B",
"title": "Link in bio tool: Everything you are, in one simple link | Linktree",
"titleLength": 67,
"metaDescription": "Join 70M+ creators and sell, share & curate everything you do online. One bio link—your Linktree—brings it all together for your audience.",
"metaDescriptionLength": 138,
"canonicalUrl": "https://linktr.ee/",
"isIndexable": true,
"isSoft404": false,
"domNodeCount": 1149,
"wordCount": 1290,
"readingTimeMinutes": 7,
"readability": {
"fleschReadingEase": 49.6,
"gradeLevel": 12.2
},
"headings": {
"h1": [
"A link in bio built for you. The link in bio that helps you grow The link in bio that grows with you"
],
"h2": [
"Create and customize your Linktree in minutes",
"Share your Linktree anywhere you like!",
"Analyze your audience and keep them engaged",
"The only link in bio trusted by 70M+ creators",
"The fast, friendly and powerful link in bio tool."
],
"h3": [
"Share every type of content in limitless ways",
"Sell products, collect payments and make monetization simple",
"Grow, own and engage your audience across all of your channels"
],
"total": 12,
"avgWordsPerSection": 108,
"questionHeadings": [
"Questions? Answered"
],
"outline": [
{
"level": 1,
"text": "A link in bio built for you. The link in bio that helps you grow The link in bio that grows with you",
"isQuestion": false
},
{
"level": 2,
"text": "Create and customize your Linktree in minutes",
"isQuestion": false
},
{
"level": 2,
"text": "Share your Linktree anywhere you like!",
"isQuestion": false
},
{
"level": 2,
"text": "Analyze your audience and keep them engaged",
"isQuestion": false
},
{
"level": 2,
"text": "The only link in bio trusted by 70M+ creators",
"isQuestion": false
}
]
},
"images": {
"total": 70,
"withAlt": 28,
"missingAlt": 42,
"modernFormats": 70,
"list": [
{
"src": "https://linktr.ee/_marketing/lottie/posters/02-Koy-updated-Lottie.webp",
"alt": "",
"format": "webp",
"hasAlt": false
},
{
"src": "https://linktr.ee/_marketing/_next/image?url=%2Fimages%2Fcampaigns%2Fcapture-1764669836574.webp&w=2560&q=75&dpl=22bf1ea552b900f62209358ff8305f067d32139b",
"alt": "A Linktree profile being customised in the Linktree editor",
"format": "webp",
"hasAlt": true
}
]
},
"media": {
"hasVideo": true,
"videoCount": 1,
"tablesCount": 0,
"listsCount": 13
},
"links": {
"internal": 109,
"external": 13,
"total": 122,
"uniqueInternal": 75,
"uniqueExternal": 7
},
"schema": {
"types": [
"Organization",
"ImageObject",
"ContactPoint",
"WebSite",
"SoftwareApplication"
],
"blocksCount": 3,
"hasFaq": true
},
"topTerms": [
{
"term": "linktree",
"count": 43,
"nGram": 1
},
{
"term": "link",
"count": 26,
"nGram": 1
},
{
"term": "bio",
"count": 12,
"nGram": 1
},
{
"term": "link in bio",
"count": 10,
"nGram": 3
},
{
"term": "one",
"count": 9,
"nGram": 1
}
]
},
"competitors": [
{
"rankInGroup": 1,
"url": "https://taplink.at/en/",
"domain": "taplink.at",
"statusCode": 200,
"score": 75,
"grade": "B",
"title": "Link In Bio Tool for Instagram and TikTok - Taplink",
"titleLength": 51,
"metaDescription": "Create your best Link In Bio for free. Improve your Instagram and TikTok profiles with a single bio link",
"metaDescriptionLength": 104,
"canonicalUrl": "https://taplink.at/en/",
"isIndexable": true,
"isSoft404": false,
"domNodeCount": 654,
"wordCount": 768,
"readingTimeMinutes": 4,
"readability": {
"fleschReadingEase": 44.7,
"gradeLevel": 11.8
},
"headings": {
"h1": [
"More Than Just Link In Bio Tool"
],
"h2": [
"Taplink allows to",
"Taplink allows to",
"Easier than you think",
"Features"
],
"h3": [],
"total": 13,
"avgWordsPerSection": 59,
"questionHeadings": [],
"outline": [
{
"level": 1,
"text": "More Than Just Link In Bio Tool",
"isQuestion": false
},
{
"level": 2,
"text": "Taplink allows to",
"isQuestion": false
},
{
"level": 2,
"text": "Taplink allows to",
"isQuestion": false
},
{
"level": 2,
"text": "Easier than you think",
"isQuestion": false
}
]
},
"images": {
"total": 28,
"withAlt": 0,
"missingAlt": 28,
"modernFormats": 15,
"list": [
{
"src": "https://taplink.st/p/2/d/c/0/26510187.png?0",
"alt": "",
"format": "png",
"hasAlt": false
},
{
"src": "https://taplink.st/p/e/7/7/2/27971214.png?1",
"alt": "",
"format": "png",
"hasAlt": false
}
]
},
"media": {
"hasVideo": false,
"videoCount": 0,
"tablesCount": 0,
"listsCount": 9
},
"links": {
"internal": 26,
"external": 6,
"total": 32,
"uniqueInternal": 16,
"uniqueExternal": 6
},
"schema": {
"types": [],
"blocksCount": 0,
"hasFaq": false
},
"topTerms": [
{
"term": "link",
"count": 13,
"nGram": 1
},
{
"term": "create",
"count": 13,
"nGram": 1
},
{
"term": "taplink",
"count": 13,
"nGram": 1
},
{
"term": "free",
"count": 12,
"nGram": 1
},
{
"term": "social",
"count": 12,
"nGram": 1
}
]
}
],
"summary": {
"benchmarks": {
"wordCount": {
"target": 1290,
"competitorMin": 408,
"competitorMax": 768,
"competitorMean": 588,
"competitorMedian": 588,
"delta": 702,
"status": "above_median"
},
"headingsCount": {
"target": 12,
"competitorMedian": 15,
"delta": -3,
"status": "below_median"
},
"imagesCount": {
"target": 70,
"competitorMedian": 29,
"delta": 41,
"status": "above_median"
},
"tablesCount": {
"target": 0,
"competitorMedian": 0,
"delta": 0,
"status": "at_median"
},
"listsCount": {
"target": 13,
"competitorMedian": 4.5,
"delta": 8.5,
"status": "above_median"
},
"domNodeCount": {
"target": 1149,
"competitorMedian": 713.5,
"delta": 435.5,
"status": "healthy"
},
"internalLinksCount": {
"target": 109,
"competitorMedian": 26.5,
"delta": 82.5,
"status": "above_median"
},
"externalLinksCount": {
"target": 13,
"competitorMedian": 12,
"delta": 1,
"status": "above_median"
},
"readabilityScore": {
"target": 49.6,
"competitorMedian": 48.1,
"delta": 1.5,
"status": "above_median"
},
"textToHtmlRatio": {
"target": 1.42,
"competitorMedian": 5.1,
"delta": -3.68,
"status": "below_median"
},
"schemaTypesCount": {
"target": 10,
"competitorMedian": 2.5,
"delta": 7.5,
"status": "above_median"
}
},
"contentGaps": {
"commonCompetitorTerms": [
{
"term": "link",
"frequencyAcrossCompetitors": 2,
"targetFrequency": 26,
"gap": false
},
{
"term": "free",
"frequencyAcrossCompetitors": 2,
"targetFrequency": 6,
"gap": false
},
{
"term": "page",
"frequencyAcrossCompetitors": 2,
"targetFrequency": 0,
"gap": true
},
{
"term": "click",
"frequencyAcrossCompetitors": 2,
"targetFrequency": 3,
"gap": false
}
],
"missingSemanticKeywords": [
"page",
"business",
"view",
"start",
"plan"
],
"missingSubtopics": [
"Taplink allows to",
"Easier than you think",
"Features"
],
"missingSchemas": [],
"informationGainGaps": [],
"aiOverviewReadiness": {
"directAnswerLead": true,
"avgSectionWords": 108,
"passageChunkStatus": "optimal"
}
},
"winLossMatrix": {
"wordCount": {
"target": 1290,
"competitorMedian": 588,
"status": "Win",
"reason": "Target exceeds competitor median by 702 words"
},
"headingsStructure": {
"target": 12,
"competitorMedian": 15,
"status": "Loss",
"reason": "Competitors structure content with significantly more subheadings"
},
"visualMedia": {
"target": 70,
"competitorMedian": 29,
"status": "Win",
"reason": "Target offers richer visual presentation than competing pages"
},
"informationGain": {
"target": 13,
"competitorMedian": 4.5,
"status": "Win",
"reason": "Target features stronger proprietary data tables and structured checklists"
},
"internalLinks": {
"target": 109,
"competitorMedian": 26.5,
"status": "Win",
"reason": "Strong contextual internal linking structure"
},
"externalCitations": {
"target": 13,
"competitorMedian": 12,
"status": "Tie",
"reason": "Balanced external reference profile"
},
"structuredData": {
"target": 10,
"competitorMedian": 2.5,
"status": "Win",
"reason": "Target declares more Schema.org entities for Knowledge Graph and AI Overview grounding"
},
"readability": {
"target": 49.6,
"competitorMedian": 48.1,
"status": "Tie",
"reason": "Readability score is aligned with the competitive cohort"
}
},
"recommendations": {
"highPriority": [],
"mediumPriority": [
"Cover missing semantic competitor topics: incorporate co-occurring terms like 'page', 'business', 'view', 'start'.",
"Address missing competitor sub-topic: consider adding a section titled \"Taplink allows to\".",
"Add descriptive alt text to 42 image(s) currently missing alt attributes."
],
"lowPriority": [
"Adjust title tag character length (currently 67 chars; optimal is 50–60 characters).",
"Tune meta description character length (currently 138 chars; optimal is 140–160 characters).",
"Improve text-to-HTML ratio (currently 1.42%); prune inline scripts or styling bloat to increase crawl efficiency."
]
}
}
}
]
Follow this 4-step workflow to close competitive gaps and systematically climb search rankings:
Step 1: Eliminate Structural Deficits (High Priority)
highPriority recommendations array. If your page has a missing H1, multiple conflicting H1s, or is flagged as an accidental soft-404, resolve those immediate crawler blockers.Step 2: Close Topical & Entity Gaps (Medium Priority)
contentGaps.missingSemanticKeywords and contentGaps.missingSubtopics.How, What, Why) to directly compete for Google's People Also Ask (PAA) accordion snippets and AI Overview citation slots.Step 3: Enhance Information Gain & E-E-A-T (High/Medium Priority)
contentGaps.informationGainGaps. Add at least 1 original HTML <table> or structured bulleted comparison checklist to provide net-new value that competing pages lack.sameAs) and add FAQPage or Person structured JSON-LD data.Step 4: Calibrate Passage Sizing for AI Overview Retrieval (GEO)
headings.avgWordsPerSection and contentGaps.aiOverviewReadiness.Surfer SEO and Clearscope cost between $89/mo and $170/mo and operate as closed-box web apps. BrowserMesh's Competitor On-Page Comparison plugin provides programmatic access to both the raw page audit data and statistical comparison benchmarks. You receive the exact n-gram gaps, heading outlines, Information Gain data assets, and 0–100 health scores without recurring per-seat subscription lock-in.
2. Why does the auditor evaluate competitor medians instead of averages?
Search engine results frequently contain statistical outliers—such as a 12,000-word academic whitepaper or an ultra-lean 300-word tool page. Simple mathematical averages (means) are severely skewed by outliers. By calculating both medians and means, the plugin establishes an accurate, realistic competitive target that reflects true SERP consensus.
3. What is Google's Information Gain patent and why does this plugin audit it?
Google's patent ("Contextual Estimation of Link Information Gain") penalizes "commodity consensus content"—pages that merely rephrase existing search results without adding incremental value. Our plugin explicitly audits Information Gain assets (data <table> elements and structured categorical lists) to ensure your page introduces unique, structured data that gives search algorithms a reason to favor your URL.
4. How does the plugin handle client-rendered Single-Page Applications (Next.js, React, Nuxt)?
The plugin utilizes an intelligent dual-engine pipeline. It first attempts ultra-fast static HTTP fetching. If it detects a modern SPA shell (such as <div id="root">, <div id="__next">, or fewer than 150 words of static content), it automatically escalates to a stealth Playwright Chromium browser to evaluate the fully hydrated client DOM.
An n-gram is a contiguous sequence of n words. A 1-gram is a single word (scraping), a 2-gram is a two-word phrase (web scraping), and a 3-gram is a three-word phrase (anti bot bypass). The plugin tokenizes cleaned text across all competitor pages, removes common stop words, identifies phrases used by 2 or more competitors, and flags those that are missing from your target page.
6. Can I compare against competitors that require JavaScript rendering?
Yes. Both target and competitor URLs pass through the same auto-escalation engine. If any competitor relies on client-side rendering or lazy-loaded content, the stealth headless browser renders the page, executes IntersectionObservers, and extracts the full content.
Single-page application routers frequently return HTTP 200 OK status codes even when a page URL does not exist, rendering a client-side message like "Page Not Found" or "Error 404". Our parser inspects title tags, H1 elements, and opening paragraphs for 404 error patterns combined with low body word counts (<120 words), instantly flagging isSoft404 = true and applying a strict score ceiling.
The score evaluates 6 core categories totaling 100 points: Content Volume & Readability (25 pts), Heading Architecture (25 pts), Title & Meta Snippet (15 pts), Rich Media & Information Gain (15 pts), Linking Architecture (10 pts), and Schema/E-E-A-T/DOM Hygiene (10 pts). Strict safety caps prevent pages with critical issues (such as missing H1s, accidental noindex directives, or severe thin content) from earning high scores.
This workflow executes natively within your local or peer BrowserMesh node using real Chromium browser automation. It navigates dynamically rendered single-page applications, executes interaction logic, avoids cloud proxy fees, and extracts clean structured datasets directly to your local machine with complete security and privacy.
Unlike legacy cloud scraping APIs that impose expensive per-request markups and risk IP bans, BrowserMesh routes execution through authentic residential environments. You pay zero cloud data transfer fees, experience full anti-bot stealth emulation, and retain 100% ownership of your extracted datasets without vendor lock-in.
1 record · 15 nested fields · real execution preview
Combine complementary browser automation and auditing workflows to verify site health, infrastructure, and search engine crawlability with 100% local execution.
Scan websites and XML sitemaps to detect 404 dead links, broken anchors, and redirect loops with zero cloud markups.
Discover who hosts any website. Detect cloud infrastructure, CDN edge networks, IP geo, and DNS routing instantly.
Audit on-page SEO factors, meta tags, heading structures, Core Web Vitals, and SERP snippet previews with local privacy.
Explore our comprehensive guides or reach out directly to our engineering support team.