Skip to content
Metric VaultHelp Center
Open app

Competitor Monitor

Watchtower re-checks competitor pages on a schedule and records every change to prices, titles, page structure and availability.

Last updated 2026-08-06

Summary#

Competitor Monitor — branded Watchtower in the app — takes snapshots of competitor pages on a schedule and tells you what changed between them: prices, page titles, headings, navigation, structured data, word count and availability. It costs no credits.

Purpose#

Competitors do not announce a price cut, a repositioned headline or a new product tier. By the time you notice, the change has been live for weeks.

Watching pages by hand does not scale past two or three URLs and nobody keeps it up. This tool exists so the watching is automatic and the noticing is a feed you read once a week instead of a habit you have to maintain.

Overview#

You add a URL. Watchtower fetches the page immediately and stores a snapshot of its measurable signals — status code, title, meta description, H1 and H2s, canonical, social image, prices, product names, navigation items, link and image counts, word count, structured-data types, contact details and social links.

On your chosen interval it fetches the page again and compares the new snapshot with the previous one. Every difference becomes an entry in the Change Feed with a type, a severity and a plain description. The first check never produces changes, because there is nothing yet to compare against.

It carries the LIVE badge in the tool list. See Tool status badges.

Benefits#

  • Costs nothing. This is a direct fetch of a public page, so no credits are charged for adding a URL or for any check.
  • Catches price movements automatically, including how many price points a page shows.
  • Severity ranking, so a competitor swapping a hero image does not read like a repositioning.
  • History is kept per URL, so you can see a page's whole change record.
  • The first check runs the moment you add a URL, so setup gives you a baseline immediately.

Use Cases#

  • Price watching. Point it at a rival's pricing page and know the day the numbers move.
  • Positioning changes. Their homepage H1 changing is the clearest signal a competitor has repositioned.
  • Product launches. New headings and new navigation items appear as changes before any announcement.
  • Availability. A status-code change to 404 or 5xx tells you a page has been pulled or is broken.
  • Client reporting. An agency can show a dated record of what the client's competitors did this month.

Requirements#

  • A signed-in Metric Vault account. Any plan, including Free.
  • A public URL that can be fetched. Private, internal and loopback addresses are rejected.
  • Nothing else. No verification, no integration, no credits.

Permissions#

Any signed-in member of a workspace can add, pause, check and delete monitored URLs, and everyone in the workspace sees the same list. There is no plan gate and no role restriction on this tool.

Your situationWhat you see
Signed outThe screen loads but the list is empty and per-browser
Free planFull access. No credits are charged
Any paid planIdentical behavior

Cost#

0 credits. Adding a URL is free, every scheduled check is free, and Check now is free.

Watchtower does not appear in the credit price list because it makes no search data or AI provider calls — it fetches the page directly, the same way a browser does. See How credits work for what does consume credits.

Dashboard → Competitors & Backlinks → Competitor Monitor

Inputs#

FieldAcceptsRequiredDefaultValidationNotes
URL (placeholder e.g. nike.com)Any public page URL or bare domainYesEmptyEmpty returns Please enter a URL to monitor.; private or internal hosts return That URL host is not allowed; an unparseable value returns Invalid URLA specific page beats a homepage
What to watchEverything · Pricing only · Titles and meta · Page structure · AvailabilityNoEverythingRecords what kind of change you care about for this URL
LabelFree text, placeholder Pricing pageNoEmptyShown as a chip beside the domain in the list
SensitivityLow · Medium · HighNoMediumStored per URL and shown in the list
Check every1 hour · 6 hours · 12 hours · DailyNo6 hoursClamped to between 1 and 48 hoursHourly on a page that rarely changes only adds noise
Email me on high-severity changesCheckboxNoCheckedMarks the URL for email; alerts still need a channel configured
Element selectorFree text, placeholder .price, #hero h1NoEmptyNarrows what is watched on the page

A tip beneath the form states it plainly: paste a specific URL like nike.com/pricing to watch pricing changes, or the homepage to catch any hero or announcement change. The first check fires immediately; subsequent checks run on your selected interval.

Step-by-Step Guide#

  1. Open Dashboard → Competitors & Backlinks → Competitor Monitor.
  2. Type the page URL into the field marked e.g. nike.com.
  3. Choose a watch type, add a label, and pick a check interval.
  4. Press Start watching. The button reads Adding + first check… while the baseline snapshot is taken.
  5. The view switches to Monitored pages so you can see what was added.
  6. Come back later and read the Change Feed. Use the severity and change-type filters to cut it down, and Mark all read when you are done.
  7. To change a watch, open Monitored pages and press the edit action on its row. The form at the top fills with that page's settings and saves as a change rather than a new watch. Changing the address repoints the watch; checks already recorded stay attached to it, against the old address. You cannot repoint a watch onto a page you already watch — that is refused with You are already watching that page, because merging the two would throw away one of their settings and histories without asking.
  8. To force a check outside the schedule, open Monitored pages and press Check now on a row.

Adding a page you already watch updates it rather than adding it twice. One account can hold one watch per address, so re-adding a URL applies the new label, watch type, interval and alert settings to the existing watch and keeps its change history and its original start date. Two customers can watch the same page; the limit is per account.

To try it without choosing URLs, press Start with sample URLs in the empty state. It adds four public pages — Shopify Pricing, Stripe Pricing, Notion Databases and Figma What's New — each with an immediate first check. Pressing it a second time re-checks those four rather than adding another four.

Reading the Results#

The Watchtower header is the state of the whole monitor. Beside VERIFIED · Live HTTP sits a verdict chip with three possible readings: No URLs Monitored when nothing is set up, Quiet (no recent changes) when URLs are being checked but nothing has moved in seven days, and Monitoring Active when changes are coming in.

Four KPI tiles sit under it:

  • URLS MONITORED, across all competitors. Your total watch list.
  • CHANGES (30D), events detected. Every recorded difference in the last 30 days, at every severity.
  • AVG VOLATILITY, changes per URL · 30d. Changes divided by URLs. Above about 5 per URL is a noisy watch list — usually a page with a rotating banner or a dynamic element. Narrow it with a element selector or a tighter watch type.
  • LAST SCAN, showing how long since the most recent check of any URL. It reads pending until the first check completes.

Change Timeline (14 days) is a bar per day. Clusters matter more than individual bars: several changes on one day across several URLs is usually a site release, and that is the day worth investigating.

Change Types (30 days) is a doughnut of what kind of changes you are seeing. A chart dominated by low-severity types means your watch list is generating noise rather than intelligence. Before any data exists it reads No changes yet — add a URL above.

Most Volatile Competitors ranks domains by change count over 30 days with a bar for relative volatility. The domain at the top is the one actively iterating. Before any checks have produced changes it explains that it will rank the competitors changing the most once URLs are added and checked.

Price Change Activity summarizes the commercial signal: Price changes (30 days), Domains tracked and Total changes (30d).

The tab bar switches between three views, with filters for All severities (High, Medium, Low) and All change types (Pricing, Titles, Structure, Availability), plus Mark all read and Refresh.

  • Change Feed is the event list, newest first. Each entry names what changed and carries a severity. Before anything is detected it reads No changes detected yet.
  • Monitored pages is the management list. Each watched page is one row: Every, Last Check, Status and Actions. Status is Active or Paused. Actions are Check now, Pause or Resume, and a delete button.
  • Price Tracker lists Competitor URL, Min Price, Max Price, Avg Price, Price Count and Last Check, so you can see a page's whole price range rather than one number.

How severity is assigned. This is the part worth learning, because it is what lets you read the feed quickly.

ChangeSeverity
Page title changedHigh
H1 heading changedHigh
A new item or heading appearedHigh
HTTP status changed to 404 or a 5xxHigh
HTTP status changed otherwiseMedium
Minimum or maximum price moved by more than 10High
Minimum or maximum price moved by 10 or lessMedium
Price points added or removedMedium
Word count moved by more than 500High
Word count moved by 100 to 500Medium
Meta description or canonical changedMedium
An item or heading was removedMedium
A navigation item was added or removedMedium
Social share image changedLow
A structured-data type was added or removedLow
A social link or contact email was addedLow

Word-count changes below 100 words are ignored entirely, so ordinary copy edits do not fill the feed. Filter to High first: title, H1 and price changes are the ones that mean something changed on purpose.

Alert channels. A banner near the top reads Watchtower alert channels / Not configured — changes detected but no alerts sent. Read it literally. Watchtower records every change and shows it in the feed, but outbound alerts — email, Slack or a webhook — require an alert channel to be configured, and there is no settings panel for that in the app yet. Check the feed rather than waiting for a message. Rank movement alerts that do arrive by email are a different feature; see Rank alerts and Notifications and alerts hub.

Examples#

Example

Example: You monitor rival.com/pricing on a 6-hour interval with the watch type set to Pricing only. The first check stores the baseline. Two weeks later the feed shows a High-severity entry: minimum price dropped from 49 to

  1. The Price Tracker row confirms the range moved and the price count went

from 3 to 4, so they did not just discount — they added a cheaper tier. You saw it the same day rather than in next quarter's competitor review.

Screenshots#

![screenshot](placeholder: The Watchtower header with the URLS MONITORED, CHANGES (30D), AVG VOLATILITY and LAST SCAN tiles above the "Monitoring Active" verdict chip.)

Screenshot
The add-a-page form — a labelled grid of competitor page, label, what to watch, sensitivity, check interval and element selector, with the email checkbox and the "Start watching" button below.

![screenshot](placeholder: The Change Timeline (14 days) bar chart beside the Change Types (30 days) doughnut.)

Screenshot
The Monitored pages list — one row per watched page with its favicon, domain, label and path, then what is being watched, sensitivity, interval, last check and status, and the check / pause / open / stop icon actions.

Tips#

  • Monitor specific pages, not homepages. A pricing page or a product page gives a clean signal; a homepage with a rotating banner gives noise.
  • Label every URL. Pricing reads far faster in the feed than a long path.
  • Leave the interval at 6 hours unless you have a reason. Hourly checks on a page that changes monthly only add entries.
  • Use Check now before a meeting so the data you are about to quote is fresh.
  • Pause rather than delete when a URL goes quiet. Deleting removes all its snapshots and history.

Best Practices#

  • Start with five to ten URLs that genuinely matter, not everything a rival owns.
  • Pair each competitor's pricing page with their homepage. Together they tell you about both price and positioning.
  • Read the feed weekly, filtered to High severity, then mark all read so the next week's list is clean.
  • If a URL produces constant low-severity changes, add a element selector to narrow what is watched, or switch its watch type.
  • Keep the watch list in step with the rivals you track in Competitor Manager.

Common Mistakes#

  • Waiting for an email. Until an alert channel is configured, changes are recorded in the feed and nothing is sent.
  • Expecting changes from the first check. The first fetch is the baseline. Changes appear from the second check onward.
  • Monitoring a page behind a login. Only publicly reachable pages can be fetched.
  • Setting everything to hourly. It multiplies low-severity noise without finding anything sooner on a page that changes monthly.
  • Deleting a URL to quieten the feed. Pause it. Deleting also erases its snapshot and change history.

Limitations#

  • Only public pages. Private, internal and loopback addresses are refused with That URL host is not allowed.
  • Pages are read as delivered. Content that only appears after JavaScript runs in a browser may not be captured.
  • Only the first portion of a very large page is analyzed, so changes far down a huge page can be missed.
  • Check intervals are limited to between 1 and 48 hours.
  • Scheduled checks are processed in batches, so a check can land a little after its nominal interval.
  • Outbound alerting (email, Slack, webhook) requires channel configuration that the app does not currently expose.
  • Deleting a monitored URL permanently removes its snapshots and change history.

Troubleshooting#

SymptomLikely causeFix
Enter the page you want to watch.The page field is emptyType an address and press Start watching
That does not look like a page address. Try nike.com/pricing.The value is not a host or URLEnter a domain, optionally with a path
That URL host is not allowedPrivate, internal or non-public hostUse a publicly reachable URL
Invalid URLThe value could not be parsed as a URLInclude the domain, for example rival.com/pricing
Failed: … after pressing Start watchingThe add request did not completeCheck the address and try again
Check failed: … on a rowThe page could not be fetched this timePress Check now again; a single failure still updates the last-checked time
Feed empty after several daysNothing changed, or the pages are stableConfirm on the Monitored pages tab that Last check is recent and Status reads Watching
Feed full of Low-severity entriesThe page has rotating or dynamic elementsAdd a element selector, or change the watch type
No email despite the checkboxNo alert channel is configuredRead the feed. The banner states this explicitly
LAST SCAN reads pendingNo check has completed yetPress Check now on a row

FAQs#

Does monitoring cost credits? No. Adding URLs, scheduled checks and Check now are all free on every plan, including Free, because the tool fetches the page directly rather than calling a paid data provider.

How soon after I add a URL does the first check run? Immediately. That check stores the baseline snapshot, so it reports no changes. The next check, on your chosen interval, is the first that can find one.

Why did I not get an email about a change? Because alert channels are not configured — the banner at the top of the screen says so. Every change is still recorded and visible in the Change Feed.

How many URLs can I monitor? There is no per-account cap in the tool. Scheduled checks are processed in batches, so a very large list is checked over successive runs rather than all at once.

Can I monitor a page that requires a login? No. Only publicly reachable pages can be fetched.

What happens to the history if I delete a URL? It is removed with the URL. A confirmation warns you first: stopping monitoring deletes all snapshots and change history for that page. Pause it instead if you may want it back.

See also

Was this article helpful?