All articles
CompetitorsJune 5, 20267 min readUpdated July 15, 2026

How to Watch Competitors Without the Busywork

Competitor audits go stale the day you finish them. Here's how to run sitemap-diff monitoring instead — by hand or automatically — and when a rival's move deserves a response.

By Niraj Kumar

The classic competitor audit is a spreadsheet. You list their pages, note their keywords, screenshot their pricing, colour-code a few cells, and feel extremely productive for an afternoon.

Two weeks later it's wrong. Six weeks later you've stopped opening it.

The audit wasn't bad work. It was the wrong shape of work — a snapshot of a thing that only makes sense as a stream. Competitors don't announce when they publish a new landing page, quietly rewrite their pricing, or start building a content cluster around a term you own. By the time you notice manually, they've had a three-month head start, and the interesting question — when did this start? — is unanswerable, because you have exactly one data point.

The fix isn't more research. It's a diff.

Freshness beats depth

Here's the trade nobody makes explicitly. Given a fixed hour a month, you can have:

  • A deep audit, once. Fifty pages catalogued, keywords mapped, positioning analysed. Accurate on the day you finish. Decaying from that moment.
  • A shallow check, continuously. One question — "what's different since last time?" — asked every week, forever.

The second one wins, and it isn't close. Not because depth is worthless, but because a competitor's changes are where all the signal is. The fact that they have a pricing page tells you nothing; you knew that. The fact that they changed it on Tuesday tells you something is happening, and it tells you roughly when it started.

A snapshot can only ever answer "what do they have?" A stream answers "what are they doing?" — which is the question you actually needed.

The mechanism: diff their sitemap

Almost every site publishes a machine-readable list of its own pages, for free, at a predictable URL. That's sitemap.xml, and it exists so search engines can crawl efficiently. It works just as well as a change feed.

The whole technique is three steps:

  1. Fetch the competitor's sitemap.xml on a schedule.
  2. Store the set of URLs as a snapshot.
  3. Diff each new snapshot against the previous one.

New URLs appear in the diff the week they ship. Removed URLs mean a page was killed or a section reorganised. That's it — no scraping, no proxies, no guessing.

Doing it by hand

You can prove the value in ten minutes, before automating anything.

# find it (it's usually one of these, or named in robots.txt)
curl -s https://competitor.com/robots.txt | grep -i sitemap
curl -s https://competitor.com/sitemap.xml -o today.xml

# extract just the URLs, sorted
grep -oE '<loc>[^<]+</loc>' today.xml \
  | sed 's/<[^>]*>//g' | sort > today.txt

# next week, do the same into next-week.txt, then:
comm -13 today.txt next-week.txt   # URLs they ADDED
comm -23 today.txt next-week.txt   # URLs they REMOVED

Two files and a comm call. Run it monthly with a calendar reminder and you are already ahead of most of your market.

Where it gets fiddly

The concept is trivial; the maintenance is what eventually pushes people to automate it.

Problem What you'll hit
Sitemap indexes Big sites split into an index file pointing at many child sitemaps. You have to follow each one.
No sitemap Some sites don't publish one. You fall back to crawling internal links, which is a real crawler.
Noisy URLs Pagination, tag archives and query strings flood the diff with URLs nobody wrote.
Silent edits A rewritten pricing page keeps its URL, so it never shows in a URL diff at all.
Cadence Check too often and you get nothing; too rarely and you find out late. Weekly is about right.

None of these are hard, individually. Together they're the difference between a technique and a chore — and a chore is a thing you stop doing in month three, which is the same failure as the spreadsheet, arriving by a slower route.

From diff to decision

Now the part that actually matters, and the part a diff tool won't do for you.

A list of new URLs is still just data. It has the same problem as every other dashboard: it describes, it doesn't instruct. Ten new URLs is not an insight — it's homework.

The question to ask of any diff is: what pattern do these URLs share, and does it threaten anything I own?

Read the cluster, not the URLs

Individual URLs are noise. Clusters are strategy. Compare:

The raw diff: Competitor added 4 pages.

The read: All four are /templates/free-invoice-* variants. They're building a programmatic SEO cluster around "free invoice template" — a term that currently sends us 400 visits a month. This is aimed directly at us.

Same data. The second one is a decision you can make today; the first is a row in a report.

This is the piece we hand to a model rather than to a regex, because the judgment — "these four URLs are one move" — is a summarisation problem, not a pattern-matching one. That's what our competitor monitoring does with each diff: it produces the second paragraph, not the first, and files it as a task alongside everything else that week.

Not every move deserves a response

The failure mode on the other side is reacting to everything. A competitor who publishes constantly will fill your list with noise, and chasing each move means your roadmap is now written by them.

Ask three questions before responding:

  • Does it target something I already rank for? A cluster attacking a term that earns you real traffic is urgent. A cluster in a category you don't compete in is interesting trivia.
  • Is it a pattern or a one-off? One new page is a page. Four pages with the same URL shape in one week is a program, and programs keep going.
  • Would I have done this anyway? If their move just validates something already on your roadmap, promote it. If it doesn't, be very suspicious of the urge to copy — you're about to let a competitor allocate your quarter.

Most moves score no on all three. That's the correct outcome, and it's why the monitoring is cheap: the value isn't in reacting often, it's in never being surprised.

When they ship, you get a brief — not a panic

The natural response to "they published four pages on a term we own" is to write four pages. Usually wrong. The better response is to make one page that's clearly the best answer to that query, and to link it properly from the pages you already have — because your existing authority is the one advantage a new programmatic cluster doesn't have.

What to do this week

  1. Pick three real competitors. Not the ten in your pitch deck — the three that actually take your customers. The monitoring is only as good as the list.
  2. Find each of their sitemaps. robots.txt names it. Ten minutes, once.
  3. Snapshot them today. Even by hand, into a text file. You cannot diff without a baseline, and the baseline you don't take today is the one you'll wish you had in March.
  4. Put a recurring 15-minute slot in the calendar. Weekly. Diff, read the cluster, decide, mostly do nothing.
  5. Feed anything that survives step 4 into your normal triage — score it on impact, effort and confidence like every other candidate action, rather than letting "a competitor did it" jump the queue. That's the whole discipline.

The goal isn't to know everything your competitors are doing. It's to never learn about the important thing three months late — and to spend about a quarter of an hour a week on it.

Stop guessing what to do next

Connect your website and get your first growth action plan today.

No credit card required · Setup in under 2 minutes