Website Change Monitor & Diff Checker avatar

Website Change Monitor & Diff Checker

Pricing

from $0.10 / 1,000 page checks

Go to Apify Store
Website Change Monitor & Diff Checker

Website Change Monitor & Diff Checker

Check public webpages against saved baselines. Find text, HTML, SEO metadata, semantic data, and link changes, with clear details for each change.

Pricing

from $0.10 / 1,000 page checks

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

🔎 Find webpage changes without checking by hand

Webpage Diff Checker is for SEO teams, developers, and site owners who track public pages. It compares each page with its last good baseline and returns added or removed text, metadata and link changes, severity, and key page facts.

📦 Returned data

Each saved dataset row is one page that was fetched and checked. It includes:

  • requested and final URL, check time, HTTP status, response time, redirect state, page size, and content fingerprint
  • new, unchanged, or changed status
  • a short summary, change magnitude, severity, and categories
  • added and removed text, plus watched keywords found in the changes
  • SEO and semantic metadata changes with before and after values
  • internal and external links added or removed

The run summary also gives totals for checked, changed, new, unchanged, and failed pages. Failed pages include error details there. A failed fetch does not replace the last good baseline.

🚀 Running the Actor

  1. Add one or more public HTTP or HTTPS webpage URLs.
  2. Give the monitor a stable name so it keeps its own baselines.
  3. Choose visible text or HTML. You can also pick a CSS section or content scope.
  4. Add watched keywords or rules that remove known page noise if needed.
  5. Choose all page rows or only new and changed pages. Failed checks stay in the run summary.
  6. Run the Actor. Run the same setup again to compare with the saved baseline.

The first successful check for a page creates its baseline. Later successful checks compare with it and then save the new good baseline.

🧾 Input

urls is required. Public options also include monitorName, comparisonType, cssSelector, contentScope, watchedKeywords, excludedPageParts, excludedSelectors, excludedPatterns, proxyConfiguration, and resultMode.

{
"urls": [
{ "url": "https://example.com/" },
{ "url": "https://www.iana.org/help/example-domains" }
],
"monitorName": "public-pages",
"comparisonType": "visibleText",
"contentScope": "mainContent",
"watchedKeywords": ["price", "policy"],
"excludedPageParts": ["headers", "footers"],
"resultMode": "changedOnly"
}

Use a different monitorName for each separate set of baselines. The Actor checks public pages only. It does not log in to private pages or make screenshot or pixel diffs.

📤 Output

A changed page row can look like this:

{
"requestedUrl": "https://example.com/news",
"finalUrl": "https://www.example.com/news",
"status": "changed",
"checkedAt": "2026-07-21T10:15:30.000Z",
"httpStatus": 200,
"responseTimeMs": 384,
"redirected": true,
"contentSizeBytes": 18420,
"fingerprint": "sha256:2cf24dba5fb0a30e",
"change": {
"summary": "The page title changed and a pricing section was added.",
"magnitude": 0.18,
"severity": "medium",
"categories": ["content", "seo"],
"addedText": ["Plans start at $20."],
"removedText": ["Contact us for pricing."],
"watchedKeywords": ["price"]
},
"metadataChanges": [
{ "kind": "title", "name": "title", "before": "News", "after": "Product news" }
],
"linkChanges": {
"addedInternal": ["https://www.example.com/pricing"],
"removedInternal": [],
"addedExternal": [],
"removedExternal": []
}
}

Open the dataset for page rows. Open the output key-value store record for run totals and failure details.

💳 Pricing

This Actor uses pay-per-event pricing. One Page check event is charged for each webpage that is successfully fetched and checked for changes. Failed fetches and failure details do not create this event. Check the Pricing tab for current tier prices.

🔌 Integrations

Use Apify datasets, the API, schedules, webhooks, and platform integrations to run repeat checks and send the output to your workflow.

❓ FAQ

What happens on the first run?

The first successful check creates a new baseline. There is no older page content to compare yet.

What happens if a page fails to load?

The run summary lists the failure and its details. The Actor keeps the last good baseline, so a failed page does not become the next comparison source.

Common changing noise is cleaned on its own. You can also leave out common page parts, CSS selectors, or text matched by regex patterns.

Can I watch only one part of a page?

Yes. Add a cssSelector, or choose main content or article content as the content scope.

Can it check private pages or compare screenshots?

No. It checks public HTTP and HTTPS pages without a login. It compares visible text or HTML, not pixels or screenshots.

Can it find old versions from the Internet Archive?

No. It compares repeat checks made with this Actor. Use Wayback Machine Search when you need saved Internet Archive history.

Should I use one monitor name for every task?

Use one stable name for each monitor. Give separate tasks different names so their baselines do not replace one another.

📝 Changelog

  • 0.0: Initial release.

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré