Your SEO score is 82. Great. But the site ranking above you has a 94. What are they doing that you're not?

A standard audit tells you what's wrong with your site. A competitive audit tells you what's wrong relative to the page that's beating you. That's the difference between a to-do list and a strategy.

How Does It Work?

Send your URL, a competitor URL, and your target keyword. We audit both pages in parallel, run 7 keyword-relevance checks on each, and compute a Competitive Gap score that tells you exactly how much ground you need to cover.

curl -X POST https://seoscoreapi.com/audit/competitive \
  -H "X-API-Key: YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://yoursite.com/landing-page",
    "competitor_url": "https://competitor.com/their-page",
    "keyword": "project management software"
  }'

What Do You Get Back?

{
  "your_url": "https://yoursite.com/landing-page",
  "competitor_url": "https://competitor.com/their-page",
  "keyword": "project management software",
  "your_score": 72,
  "competitor_score": 91,
  "competitive_gap": 34,
  "score_gap": 19.0,
  "keyword_relevance": {
    "yours": 45,
    "competitor": 82
  },
  "gaps": [
    {
      "check": "keyword_in_title",
      "category": "keyword",
      "your_score": 0,
      "competitor_score": 100,
      "gap": 100,
      "recommendation": "Add your target keyword to the title tag"
    },
    {
      "check": "content_length",
      "category": "meta",
      "your_score": 40,
      "competitor_score": 100,
      "gap": 60,
      "recommendation": "Add ~1200 more words to match competitor content depth"
    }
  ],
  "action_items": [
    "Add your target keyword 'project management software' to the title tag",
    "Include the target keyword in your H1 heading",
    "Add ~1200 more words to match competitor content depth",
    "Add JSON-LD schema markup (competitor has it, you don't)"
  ]
}

What Do the Key Fields Mean?

  • competitive_gap (0-100): How much work you need to do. 0 means you're already winning. 100 means the competitor dominates every check.
  • score_gap: Raw difference between your overall SEO score and theirs.
  • keyword_relevance: How well each page is optimized for the target keyword. This is often where the real gaps live.
  • gaps: Every individual check where the competitor beats you, sorted by impact.
  • action_items: Prioritized recommendations. Fix these in order for maximum impact.

What Are the 7 Keyword-Relevance Checks?

Standard SEO audits check generic on-page factors. But when you're competing for a specific keyword, you need keyword-specific analysis. We run 7 checks on both pages:

Check What It Measures Weight
Keyword in title Is your target keyword in the <title> tag? 20%
Keyword in H1 Does your H1 heading contain the keyword? 18%
Keyword in meta description Is the keyword mentioned in your meta description? 15%
Keyword in first 100 words Does the keyword appear early in the content? 15%
Keyword in URL Are keyword words present in the page slug? 12%
Keyword density Is keyword usage in the 0.5-2.5% sweet spot? 10%
Semantic coverage Are related terms and variations present? 10%

These checks run on top of our standard 40+ check audit across Meta, Technical, Social, Performance, and Accessibility categories.

How Does the Competitive Gap Score Work?

The Competitive Gap is a composite of two components:

Score Component (55% weight): The weighted difference between your overall SEO scores across all 5 audit categories. If the competitor beats you in Meta (35% weight) and Technical (30% weight), that contributes more to the gap than losing in Social (10% weight).

Keyword Component (45% weight): The difference between your keyword-relevance scores. If the competitor has the keyword in their title, H1, and first paragraph — and you don't — this is where your gap lives.

The result is a single number from 0 to 100. Lower is better.

Real-World Example

We ran a competitive audit of a hosting company against WP Engine for "managed wordpress hosting":

Your Score:       87.4 / 100
Competitor Score: 91.8 / 100
Competitive Gap:  2 / 100

Top Gaps:
  1. Image alt text: you 50% vs them 92%
  2. Response time: your server is slower
  3. ARIA landmarks: competitor has better semantic markup
  4. Meta description: competitor's is more optimized

A gap of 2 means you're close — fix the image alt text and server speed and you'll match or beat them.

Using the SDKs

Python

from seoscoreapi import competitive_audit

result = competitive_audit(
    url="https://yoursite.com",
    competitor_url="https://competitor.com",
    keyword="your target keyword",
    api_key="your_key"
)

print(f"Gap: {result['competitive_gap']}/100")
for item in result["action_items"]:
    print(f"  - {item}")

Node.js

const { competitiveAudit } = require("seoscoreapi");

const result = await competitiveAudit(
  "https://yoursite.com",
  "https://competitor.com",
  "your target keyword",
  "your_key"
);

console.log(`Gap: ${result.competitive_gap}/100`);
result.action_items.forEach(item => console.log(`  - ${item}`));

Claude Code

If you have our Claude Code skill installed:

> Run a competitive audit of mysite.com against competitor.com for "target keyword"

Claude will call the API and walk you through the results.

Use Cases

Agency client pitches. Run a competitive audit against a prospect's top competitor before the sales call. Show up with a gap analysis and a fix list. That's not a pitch — that's proof you can help.

Content strategy. Before writing a new page targeting a keyword, audit the current #1 result. See what they're doing right (content length, keyword placement, structured data) and build your page to beat every check.

Post-launch validation. After publishing or updating a page, run a competitive audit to confirm you've closed the gaps. Did your new content actually match the competitor's depth? Is your keyword in the right places?

Sprint planning. Feed the action items from a competitive audit directly into your development backlog. Each item is a specific, actionable task — not a vague "improve SEO."

Pricing

Competitive audits are available on Pro and Ultra plans:

Plan Competitive Audits/Month Price
Pro 50 $39/mo
Ultra 200 $99/mo

Each competitive audit runs two full page audits plus keyword analysis, so it counts as a premium feature.

Get started with a Pro plan or try a standard audit free.


Frequently Asked Questions

What is a competitive SEO audit?

A competitive SEO audit compares your page directly against a competitor's page for a specific target keyword. It runs full SEO checks on both URLs in parallel, identifies every dimension where the competitor outperforms you, and produces a prioritized action list ranked by impact — so you know exactly what to fix first to close the ranking gap.

How do you compare multiple competitor sites?

To compare multiple competitors, run the /audit/competitive endpoint once per competitor URL, each with the same url and keyword. The Pro plan includes 50 competitive audits per month, so you can benchmark against five or ten competing pages and build a full competitive landscape map to inform your content and technical SEO strategy.

How many URLs can a batch audit process?

The standard /audit/batch endpoint handles up to 10 URLs per call on the Basic plan, 50 on Pro, and 100 on Ultra. For competitive audits specifically, each call compares one of your URLs against one competitor URL. For bulk competitive analysis, loop through competitor URLs programmatically using the Python or Node.js SDK.

What metrics should you compare in a competitive audit?

The most important metrics to compare are: keyword relevance score (title, H1, URL, first-paragraph placement), overall SEO score gap, content length difference, structured data presence (JSON-LD schema), page speed, and image alt text coverage. The gaps array in the response sorts every check by impact so you can prioritize the ones that move the needle most.

Which plans include competitive batch audits?

Competitive audits (/audit/competitive) are available on Pro ($39/mo) and Ultra ($99/mo) plans. Pro includes 50 competitive audits per month and Ultra includes 200. Standard batch audits (/audit/batch) are available from the Basic plan ($15/mo) and above for auditing multiple URLs at once without keyword comparison.