Been working on a project where we need to keep an eye on competitor pricing pages and feature comparison tables. The data changes frequently enough that manual checking doesn't scale, but it's not structured data so scraping is painful.
What we ended up doing is taking scheduled screenshots of specific pages and diffing them visually. Sounds dumb, but it actually works better than trying to parse HTML that changes layout every other week.
The setup
We tried a few approaches before landing on something that stuck:
Attempt 1: DOM diffing. Wrote a script that grabbed the page HTML, stripped non-content tags, and compared. Broke constantly because class names changed, ads rotated, and layout shifts threw false positives everywhere. Lasted about a month.
Attempt 2: Text extraction + diff. Better, but lost all context. Knowing that some text changed doesn't help when you can't see where on the page it changed. Pricing buried in a table looks very different from pricing in a hero banner.
What worked: Visual monitoring. Take a full-page screenshot on a schedule, overlay it with the previous one, highlight the pixel differences. You immediately see what moved, what changed, what disappeared. We've been using SnapshotArchive for this — it handles the scheduling and keeps a visual history so you can scrub back through changes over time.
Where it's been most useful
Pricing pages, obviously. But also:
-
Feature comparison tables (competitor added a feature we don't have? good to know early)
-
Landing page A/B tests (you can literally watch competitors test different copy)
-
Job postings (hiring for "AI engineer" tells you something about their roadmap)
-
Changelog/release notes pages
The screenshot approach catches things that text-based monitoring misses entirely. A redesigned pricing page with the same prices but different emphasis? DOM diff says "no change." Visual diff says "they made the enterprise plan way more prominent."
Curious what others do
Is anyone doing this kind of competitive monitoring? What's your approach — manual, scripted, or some tool? We've been happy with the visual route but I'm sure there are workflows I haven't considered.
Yeah, that's the silver lining I guess. Still felt dumb staring at broken builds because of a rename that nobody asked for.