Website Monitor Skill
Monitor any web page and receive instant alerts when its content changes. Perfect for price tracking, competitor monitoring, and compliance checks.
Website Monitor Skill
TL;DR
The Website Monitor skill polls a URL on a schedule and fires an alert when the page content changes beyond a configurable threshold. It’s the practical alternative to manually refreshing pages you care about — competitor pricing, job boards, regulatory notices, product availability.
The skill is low-risk because it only reads pages, never writes. The main operational challenge is tuning it to ignore noise (ads, timestamps, cookie banners) while catching the changes that actually matter.
What it does
- Polls a target URL at a configurable interval — from every 15 minutes to once a day — and stores a snapshot of the page content.
- Diffs each new snapshot against the previous one, identifying added, removed, or modified text blocks.
- Filters noise with CSS selectors so you can monitor only the
#pricing-tablediv instead of the entire page, avoiding false positives from rotating ads or live chat widgets. - Sends structured alerts via email, Slack, or webhook when a meaningful change is detected, including a side-by-side diff of what changed.
- Tracks change history so you can review when a price changed, when a product went out of stock, or when a terms-of-service clause was quietly updated.
- Handles redirects and soft 404s by flagging when a monitored URL starts returning a different status code or redirects to a new path.
Best for
Competitor pricing: Monitor a competitor’s pricing page and get alerted the moment they update their plans — before your sales team hears about it from a prospect.
Regulatory and compliance pages: Government agencies and standards bodies update guidance documents without announcements. Monitor the specific section that affects your industry.
Product restocks: E-commerce pages often change an “Out of Stock” label to “Add to Cart” without any notification system. A monitor on the product page catches this immediately.
Job board tracking: Watch a company’s careers page for new roles in a specific department — useful for competitive intelligence or partnership outreach timing.
This skill works best on pages with stable HTML structure. Heavily JavaScript-rendered single-page apps may require a headless browser approach rather than a simple HTTP fetch.
How to use (example)
Scenario: Monitoring a SaaS competitor’s pricing page
You want to know within an hour if a competitor changes their pricing tiers.
Configuration:
url: "https://competitor.com/pricing"
interval: "every 1 hour"
selector: "#pricing-section" # Only watch the pricing table, not the whole page
threshold: 50 # Alert if more than 50 characters change
alert_channel: "slack:#competitive-intel"
include_diff: true
What the skill does:
- Fetches
competitor.com/pricingevery hour. - Extracts only the content inside
#pricing-section. - Compares it to the last stored snapshot using a text diff.
- If the diff exceeds 50 characters of change, posts to
#competitive-intelwith the before/after diff.
Example alert output:
⚠️ Change detected: competitor.com/pricing
Time: 2026-03-15 14:32 UTC
REMOVED: "Pro plan — $49/month"
ADDED: "Pro plan — $59/month"
View full diff → [link]
Common variations:
- Set
threshold: 0to catch any change, no matter how small (useful for legal/compliance pages). - Use multiple selectors to monitor different sections of the same page independently.
- Combine with web search to automatically research why a change happened after detection.
Permissions & Risks
Required permissions: Network, Notifications
Risk level: Low
This skill only reads public web pages — it doesn’t authenticate, submit forms, or store personal data. The main risks are operational rather than security-related:
False positives from dynamic content: Pages with live timestamps, rotating banners, or A/B test variants will trigger alerts constantly if you monitor the full page. Always use CSS selectors to scope monitoring to the stable content you care about.
Polling frequency vs. server load: Polling every minute across dozens of URLs can look like a crawl bot to some servers. Stick to intervals of 15 minutes or longer for most use cases, and respect robots.txt crawl-delay directives.
Paywalled or login-required pages: The skill fetches pages as an unauthenticated visitor. If the content you need is behind a login, you’ll need a browser automation skill with session management instead.
Recommended guardrails:
- Start with a 1-hour interval and tighten only if you need faster detection.
- Always set a CSS selector — never monitor the raw full-page HTML.
- Test your selector on a static snapshot before enabling live monitoring.
- Set a maximum alert frequency (e.g., no more than 3 alerts per day per URL) to prevent alert fatigue.
Troubleshooting
Getting alerts every poll cycle despite no visible changes
The page has dynamic content (timestamps, session tokens, ad slots) outside your selector. Narrow the selector further, or switch to monitoring a specific text string rather than the full element.
Selector stopped working after a site redesign
The target site changed its HTML structure. Re-inspect the page, find the new selector for the content you care about, and update your config. Consider using a more stable selector like an id attribute rather than a class chain.
No alerts even though the page clearly changed
Check whether the change happened inside a JavaScript-rendered component. A basic HTTP fetch won’t execute JS. You may need to enable headless browser rendering in your skill config, or switch to a tool like Distill.io that handles JS-heavy pages natively.
Alert notifications not arriving
Verify the notification channel credentials (Slack webhook URL, email SMTP settings). Test with a manual trigger before relying on the automated schedule.
Monitoring a page that requires cookies or a session
This skill doesn’t handle authenticated sessions. For login-required pages, use a browser automation skill that can maintain a logged-in session, or export the content you need to a public URL.
Alternatives
Visualping — A dedicated web monitoring SaaS with a visual diff UI. Easier to set up for non-technical users; less flexible for programmatic alerting or custom selectors. Free tier is limited to a few monitors.
Distill.io — Browser extension and cloud service that handles JavaScript-rendered pages well. Good for monitoring SPAs; requires a paid plan for high-frequency monitoring or many URLs.
Custom cron + diff scripts — A shell script using curl, diff, and cron gives you full control with zero cost. Requires server access and maintenance, but is the most transparent option for technical teams who want to own the pipeline.
If you need to search for changes across many pages rather than watch a specific URL, web search with a freshness filter is a better starting point.
Links & sources
- CSS selector reference: MDN Web Docs — CSS Selectors
- HTTP status codes reference: developer.mozilla.org/en-US/docs/Web/HTTP/Status
- Related guide: Safe Skill Workflows
Related
- Web Search — Search broadly across the web rather than watching a specific URL
- RSS Digest — Subscribe to sites that publish RSS feeds instead of polling raw HTML
- Competitor Research — Combine monitoring alerts with deeper competitive analysis
- Changelog Diff — Archive and compare page snapshots over time
- Guide: Safe Skill Workflows
- Guide: Skill Troubleshooting