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.
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"
}'
{
"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)"
]
}
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.
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.
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.
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}")
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}`));
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.
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."
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.
Try SEO Score API free