Monitoring website changes

I tried many ways to monitor and detect website changes. But I was always disappointed by the results. I want to share a few tips that might help you to get better results, if you plan to do the same.

4 min read

Written by

Dmytro Krasun

Updated on

Why monitor websites and detect changes

There is a lot of use cases on why and when to monitor websites and detect changes. Most of them are related to competitor monitoring.

Competitor monitoring

Pricing “wars”

Knowing the moment a rival drops (or hikes) a price lets you react before customers notice. It keeps your own prices nimble and protects margin.

You do not need to react to every single price change of your competitors. But overall monitoring your niche and what happens, can help you to stay ahead or at least to keep up with the market.

Product strategy

While the feedback from your customers is the most important source of product strategy, tracking changes when your competitors rename a plan, add a “free trial” banner, or quietly remove a feature can give you a hint what is working (or failing) for them.

Marketing moves

New hero images, headline tests, or fresh testimonials show which story they are betting recently.

SEO signals

Monitoring title tags, meta descriptions, and schema helps you catch sudden plays to change ranking and adapt accordingly.

If one of your suppliers changes their terms of service, privacy pages, or disclaimer edits, you need to know about it.

It can expose you to new risks or new requirements.

Stock, inventory, and availability

If you rely on suppliers to provide you with stock status, you need to know when it changes.

If a product page flips from “out of stock” to “ships today,” that is actionable information in retail and e-commerce.

How to monitor website changes

For this example, let’s say we want to monitor your competitor’s website for changes.

Start simple, prototype

  1. Pick the pages to monitor. Start lean: 10-20 URLs that actually drive revenue or traffic for the competitor. Expand only when alerts stay useful.
  2. Fetch the page.
    • Static sites: a simple GET request plus an HTML diff is often enough.
    • Dynamic or single-page apps: load with Playwright or Puppeteer so the JavaScript runs and the price actually appears.
  3. Normalize the noise. Strip timestamps, CSRF tokens, rotating IDs, and ad placeholders before you diff. A regex pass or DOM select-and-delete keeps false positives low.
  4. Choose your diff.
    • DOM diff for structural changes (price node moved).
    • Text diff for wording tweaks (plan names).
    • Screenshot diff for pixel-level shifts (banner swapped, button color). A headless browser + ScreenshotOne or similar gives you a freeze-frame you can compare later.
  5. Store snapshots. Dump raw HTML and/or PNGs to any S3-compatible or your database with a timestamp. Space is cheap; history is priceless.
  6. Run on a schedule. A cron every 15 minutes to 24 hours covers most needs. Burstier pages (flash sales) may need tighter loops with exponential back-off.
  7. Hide your footsteps. Rotate user-agents, keep cookies minimal, and go through residential or datacenter proxies when geo or rate limits block you.
  8. Alert wisely. Webhook to Slack, e-mail, or even a small dashboard. Bundle related changes so you don’t spam yourself. Silence is as valuable as noise.

Automate and scale once the basic algorithm works.

Nuances and pitfalls of website change monitoring

It would take a book to cover all nuances and pitfalls of website change monitoring. But I want to share a few of them that I encountered.

CAPTCHA and bot protections

Many websites have CAPTCHA and bot protections. It might break your monitoring process. How to solve? You need to use stealth

  1. Use stealth browsers.
  2. Use residential or datacenter proxies.
  3. Use a warm human cookie jar, user-agent, and other browser fingerprints.
  4. Use web scraping services that have built-in protections against CAPTCHA and bot protections.

But always consider working within the legal boundaries. Respect the terms of service of the website you are monitoring.

Login walls

Some important information only appears after sign-in. Use a dedicated account, store its cookies, and refresh the session with realistic pauses.

Notice that many services prohibit automation of user interactions after the user has signed in.

Content based on location

A US sale might not show up from an EU IP—use region-matched proxies.

Changing markup

Their front-end teams refactor classes, IDs, and other markup. Your CSS selectors break. Prefer stable attributes (data-id) or use fuzzy CSS selectors. Or check out if you can use AI for selectors.

Dynamic widgets

Currency converters, chat bubbles, or randomized testimonials change every load and pollute diffs. Remove them in a preprocessing step.

A/B tests

It is one of the toughest challenges.

Competitors can run multivariate tests, so two pulls five minutes apart may disagree.

If possible try to keep your browser session. Or render a few pages and and only detect changes in the majority of similar pages.

Rate limits

Too many rapid requests flag you as a bot. Space calls and randomize timing. But always consider the rate limits of the website you are monitoring and respect their terms of service.

Localize the change

Small annoyances add up. Most “false alarms” come from markup churn or random tokens—spend an hour cleaning those early and you save days later.

Try to localize the area you want to monitor. E.g. if it is only a pricing block or headline.

Conclusion

The high-level approach is simple:

  1. Decide what matters.
  2. Capture snapshots with the least friction and try to localize the changes.
  3. Diff, filter, and alert only on the signals you care about.

But as I mentioned website change monitoring is not easy.

Playwright, Puppeteer, a few proxies, and disciplined diffing cover 90% of use cases. Start simple, tune thresholds, and let the data tell the story.

Read more posts

Interviews, tips, guides, industry best practices, and news.

View all posts

Automate website screenshots

Exhaustive documentation, ready SDKs, no-code tools, and other automation to help you render website screenshots and outsource all the boring work related to that to us.