Features/Competitor Monitoring

See What Your Competitors Published, While It Is Still New

Every Monday SEOAgent reads the sitemap of each competitor you name, compares it with last week’s copy, and files one task per competitor in `.seoagent/inbox/`: here are the pages they just published, work out the search each one targets, and plan a better page only where you can say what yours adds.

See pricing
Diffed against a stored snapshot, not guessedPlanning only: no files written, nothing publishedYour agent decides what is worth answering
01 — The problem

Why You Find Out Months Late

A competitor’s new page costs you nothing on the day it ships. It costs you the position six months later, by which time it has the links and the crawl history and you are the one playing catch-up.

Problem 01

Nobody Checks a Competitor Blog Weekly

Reading four competitor blogs every Monday is a task that survives two weeks. It gets dropped, and the next time anyone looks there are forty new pages and no way to tell which of them are recent.

Problem 02

Rank Trackers Tell You After the Fact

A position you lost is a page they published and promoted months ago. By the time the tracker moves, the decision you could have made is gone: the search was open and now it is answered.

Problem 03

Change Alerts Send Noise

A tool that diffs rendered HTML fires on a changed nav label, a new testimonial and a price tweak. What matters for search is a URL that did not exist last week, and that signal gets buried.

02 — What SEOAgent does

How the Weekly Diff Works

The watch runs in the cloud on a schedule. The judgement runs in your repo, where your coding agent can see what you already cover.

01

Their Sitemap Is the Source

SEOAgent fetches each competitor’s /sitemap.xml, or the Sitemap: lines in their robots.txt when there is no file at the usual path. It follows one level of sitemap index, reads gzipped files, and takes up to 5,000 URLs per competitor. Up to five competitors per site are read each week.

02

The First Read Is a Baseline

A competitor’s first snapshot never produces new pages, because every URL in it is new to SEOAgent and none of it is new to the web. The diffs start from the second week, against a snapshot that is complete and no more than 21 days old.

03

Only Pages That Are Actually New

A URL counts as new when the previous snapshot was complete, the URL looks like content rather than a tag or pagination path, and its lastmod does not predate that snapshot. A page whose lastmod is older than the last read was missed by the earlier crawl, not published this week, and it is left out.

04

One Task Per Competitor Per Week

The pages are grouped into a single task per competitor per ISO week, listing up to 20 URLs plus the total. It arrives in `.seoagent/inbox/` for a repo site, and in the reply for a site on the MCP connector.

05

It Never Takes an Article’s Slot

Competitor planning has its own lane, capped at two open tasks. A full inbox of technical fixes and queued articles does not hold it back, and it does not displace them either.

06

The Plan Reaches the Content Pipeline

Your agent closes the task with `seoagent ack <id> --plan "<target search> | <their url> | <what ours adds>"`. Each planned page becomes a target in your keyword pool, marked as a competitor gap with the reason naming their page, and the brief writer reads it back later so the draft has to carry what you said yours would add.

03 — How it works

How Competitor Monitoring Runs

1/ 4

Name Your Competitors

Competitors live in `.seoagent/competitors.md` and in the Competitors section of your dashboard. The ones you write down are read first; SEOAgent fills the remaining slots from the competitors it discovered for your site. Only public hosts are fetched: internal names and private addresses are refused.

2/ 4

Turn On Autopilot

The watch is part of CLI autopilot (`seoagent autopilot on`), which is a paid feature. It runs on a weekly schedule rather than on demand, so there is no command to type each Monday.

3/ 4

Work the Task

Open your repo and let your coding agent read the inbox. Its instructions are fixed: open each new page, name the search it targets, skip anything you already cover, and plan a page only where it can say what yours would have that theirs does not. Never copy their content.

4/ 4

Write the Ones You Chose

Planned pages sit in the keyword pool as targets, so the brief generator can pick them up like any other. Nothing is drafted or published by the task itself; what you write and when you write it stays your call.

04 — Use cases

Competitor Monitoring Use Cases

SaaS

A Rival Opens a New Content Line

Four new pages on one theme in a single week is a strategy, not a post. Seeing them together is what tells you a competitor has started on a topic you were ignoring.

Marketing

Deciding What to Write Next

A queue built only from your own keyword research misses the searches your competitors have just decided are worth answering. This adds that input without handing over the decision.

Agencies

Reporting to a Client

Each week’s task lists the competitor, the URLs and the week they appeared, so a status update can say what the competition shipped and what you chose to answer.

Startups

A Small Team With No Analyst

Nobody has an hour a week to read competitor blogs. The task is the hour, already done, and what is left is the ten minutes of deciding.

Developer Tools

Documentation and Changelogs

A competitor documenting a new integration tells you which searches are about to exist. Their sitemap shows it before their marketing does.

Content

Crowded Comparison Searches

When a competitor publishes an alternatives or versus page, you find out the week it goes up rather than the quarter it starts ranking.

05 — FAQ

Frequently asked questions

Does this copy my competitors’ content?

No, and the task says so in its own instructions. Your agent reads each new page to work out the search it targets, then plans a different and better page or skips it. The plan it records is the target search, their URL, and what yours would add. Copying is out of scope for the task.

How often does it run?

Once a week, on Monday mornings UTC, for every site with CLI autopilot on. Weekly is the cadence the sitemap signal supports: a sitemap is a slow file, and a daily diff would mostly re-report the same pages.

How many competitors can I watch?

Five per site per week. The ones you named yourself are read before the auto-discovered ones, so writing four competitors into `.seoagent/competitors.md` means those four are always among the five.

Why did my first week find nothing?

The first snapshot of a competitor is a baseline. Every URL in it is new to SEOAgent and almost none of it is new to the web, so reporting it would hand you a list of their whole archive. Diffs start from the second read.

What if a competitor has no sitemap?

SEOAgent tries /sitemap.xml, then the Sitemap: lines in their robots.txt. A competitor that serves neither cannot be diffed and is skipped. Sitemaps behind a block, or ones that fail to parse, are also skipped rather than reported as an empty site.

Does it change anything in my repo?

No. This is a planning task: it writes no files, edits no roadmap and publishes nothing. The output is the plan your agent records, which lands in your keyword pool as a target you can choose to write.

Can I ask for a competitor check on demand?

Not today. The watch is the weekly scheduled pass, and there is no CLI command or chat request that triggers it for one competitor. What you can ask for on demand is the competitor keyword gap, which is a different pass.

Is this the same as competitor keyword research?

No. Keyword research compares the searches you and a competitor already rank for, which is a Search Console and keyword-data question. This watches the pages they publish, which shows up weeks before any ranking data does. The two inputs meet in the same keyword pool.

Find Out What They Shipped Last Week

Install the SEOAgent Skill, name your competitors, and turn autopilot on.

~/your-site $npx -y @seoagent-official/seoagent init
See pricing