Skip to content
Back to skills

Competitor Analysis

ASecurity

Analyze one competitor's organic footprint, ranking keywords, content themes, backlinks and gaps, and decide what to learn from, counter or outrank. Use when the user names a competitor to study.

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 26, 2026
content-marketinggorailsgitapiperformance

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 26, 2026

npx -y skills add kid7st/agenticseo --skill competitor-analysis --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Competitor Analysis?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Competitor Analysis
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/kid7st-competitor-analysis/badge)](https://www.skillsdirectory.com/skills/kid7st-competitor-analysis)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: competitor-analysis
description: Analyze one competitor's organic footprint, ranking keywords, content themes, backlinks and gaps, and decide what to learn from, counter or outrank. Use when the user names a competitor to study.
---

<!-- Adapted from OpenSEO plugins/openseo/skills/competitor-analysis/SKILL.md (https://github.com/every-app/open-seo, MIT, Copyright (c) 2026 Ben Senescu) for the AgenticSEO CLI. -->

# Competitor analysis

## Goal

Analyze one competitor deeply enough to decide what to learn from, avoid, counter-position against or outrank.

Use this for a named competitor. To identify the market leaders first, use `competitive-landscape`.

Use the installed `agenticseo` command. Research lookups are billed by DataForSEO and need `DATAFORSEO_API_KEY`; each result states its cost and points to an evidence file.

## Required inputs

- The competitor domain
- The user's domain when a comparison is requested (the project domain by default)
- Optional topic, category, location or language

## Project context

1. Run `agenticseo context` first and ground the analysis in it: the saved competitors say whether this domain is already known and what was concluded about it before. If there is no project, set one up as `seo-project-setup` step 1 describes.
2. This skill needs competitors. If none are saved, run a minimal inline setup: add the competitor being analyzed to `competitors` in `.agenticseo/context.json`, and ask the user (or infer from `agenticseo competitors` and confirm) whether there are others. Then continue. Never front-load the full interview; suggest `seo-project-setup` at the end for the rest.
3. Before paying, check `researchLog`. If the same research ran within the last 30 days, reuse its evidence and say so instead of buying it again.
4. On finish, write back what is durable: upsert this domain in `competitors` with a short `notes` line on its strengths and where it is vulnerable, and append `{ "entryDate": "<today from agenticseo context>", "summary": "Competitor analysis: <domain>. Verdict: <conclusion>. Evidence: <paths>" }` to `researchLog`. Run `agenticseo context` to validate.

## Deliver as a report

Deliver through the `seo-report` skill. If that skill is not available, say so and stop before writing the report.

## Commands

- `agenticseo domain DOMAIN`: baseline organic traffic and keyword count.
- `agenticseo gsc performance`: when comparing to the user's own domain and Search Console is connected, the first-party baseline (real clicks, impressions, CTR, position) instead of estimating the user's own performance from third-party data. It exits 2 when not connected.
- `agenticseo ranked DOMAIN`: exact keyword, URL, rank, intent, traffic, CPC and SERP-type rows for the competitor domain or page. Use `--max-rank`, `--min-volume`, `--exclude BRAND,...` and `--types organic` to keep rows relevant; `--scope exact_url` with an absolute URL for one page.
- `agenticseo backlinks overview DOMAIN`: backlink and referring-domain profile.
- `agenticseo competitors KEYWORD...`: validate whether the named competitor is a real search competitor across the target keyword set.
- `agenticseo local businesses`, `agenticseo local serp` and `agenticseo local questions`: for local SEO competitors, when Maps or local-pack visibility, nearby businesses, categories or Google Q&A matter.
- `agenticseo serp "QUERY"...`: validate head-to-head SERPs for important keywords, up to 10 queries per call.
- `agenticseo research "SEED"...`: expand gaps or category terms when needed.

## Workflow

1. Run `agenticseo domain` for the competitor, passing `--location`/`--language` when the user gave a market.
2. If comparing to the user, run `agenticseo domain` for the user's domain too, and if Search Console is connected, `agenticseo gsc report` or `agenticseo gsc performance` for the user's real baseline.
3. Run `agenticseo ranked` for the competitor, filtered to relevant rows.
4. If comparing to the user, run `agenticseo ranked` for the user's domain or page too, or `agenticseo serp` for the shared terms when a lighter check is enough.
5. For local SEO, run `agenticseo local businesses` and `agenticseo local serp` around the relevant business location(s) before drawing local-pack conclusions. Add `agenticseo local questions` only when Q&A evidence matters.
6. Run `agenticseo competitors` when the competitor was supplied by the user but its search overlap is unclear.
7. Group the competitor's keywords into themes:
   - Product/category terms
   - Alternatives/comparisons
   - Templates/tools/calculators
   - Educational guides
   - Branded demand
   - Local/neighborhood terms when relevant
8. Run `agenticseo backlinks overview` for the competitor, especially if authority appears to explain rankings. Continue without backlink evidence if it fails.
9. Use `agenticseo serp` for important shared or target keywords to compare positioning, with the market the user gave.
10. Produce an actionable plan:
    - What they are doing well
    - Where they are vulnerable
    - Which pages and keywords to pursue
    - What to avoid copying

## Output format

Title: `Competitor Analysis: <competitor domain> — <date>` (see `seo-report`).

If a report template applies (see `seo-report`), its sections and tone replace this list.

Sections in this order:

1. **Snapshot**: one or two opening sentences, then a table of the competitor's organic footprint (traffic estimate, keyword count, referring domains). Add the user's domain as a second row when comparing.
2. **The biggest lesson**: one finding.
3. **Where they are vulnerable**: one finding per opening, ordered by how winnable it is.
4. **Keyword themes**: a table of theme, example keywords, volume and whether the user competes there. A bar chart when a few themes dominate the footprint.
5. **Content patterns and authority**: prose, with a note for anything inferred from keyword rows rather than seen on a page.
6. **What to do next**: an ordered list, shortest useful.
7. **How this report was made**: opens with the skill link line from `seo-report`, pointing at `https://github.com/kid7st/agenticseo/blob/main/.agents/skills/competitor-analysis/SKILL.md` ("AgenticSEO Competitor Analysis skill"), then which commands reported what (with costs and evidence paths), and what you checked yourself.

## Guardrails

- Do not treat all competitor keywords as desirable. Filter for business fit.
- Separate evidence from inference.
- Do not infer competitor page or content-type patterns from keyword rows alone; use SERP or web evidence for page-level claims.
- For local SEO, do not infer Maps or local-pack strength from national organic domain metrics alone; use the local commands when the location is known or reasonably discoverable.
- Do not recommend copying content; recommend a stronger angle or a better answer to the same intent.
- If the user's domain is unavailable, frame the analysis as competitor-only.
- Missing metrics are `unknown`, never 0. On exit code 3, ask the user to fix the key; on exit code 4, report the error and any charged cost, and do not retry in a loop.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…