App methodology

How the app works

The app measures nothing itself. It asks the same engine this website uses and shows you what came back. What follows is what the app adds on top: when it asks, what counts as a change, and when it decides to interrupt you.

An inspection

You type an address. The app sends it to our API, which fetches the page, follows and records the redirect chain, gathers robots.txt, sitemaps, the well-known files, the policy pages it finds and a bounded set of linked pages, then runs 216 checks across 20 categories. Nothing is executed: JavaScript never runs, so what is scored is what the server actually sent — which is also what crawlers and AI retrieval systems receive.

The progress lines you see during a run are the phases that really ran, streamed as they happen, not an animation. Every check is documented, including its weight and what would make it pass.

Inspection is free, needs no account, and is limited per hour exactly as on the website.

Monitoring, twice a day

A URL you add to monitoring is measured the moment you add it, so you start with a score to compare against, and then re-measured twice a day in two fixed slots twelve hours apart. This happens on our servers. Your phone is not involved and does not need to be on.

The exact times are derived from the URL itself and are not published — they are a scheduling detail that also spreads the load evenly across the day, and announcing when we arrive would only invite a site to be ready for it.

A check that does not complete is retried, after ten minutes and then after thirty, before the slot is given up. A page is reported unreachable only after it has failed repeatedly: one timeout is a fact about the network between us, not about the site. A check we could not determine is never counted as a failure.

The first check after you add a URL is the baseline. It establishes what "normal" is and never produces an alert, because there is nothing yet to compare against.

What counts as a change

Two reports are compared check by check, on our servers, and the differences are sent to the app the next time it syncs. A change is recorded when a check moves between states — passing to failing, failing to passing, a value that was present and is now gone — and the record keeps the before and the after so you can see what actually moved, not merely that something did.

Score movement is recorded separately, with the size of the move. A score is a function of the site and of the ruleset that graded it, so when our ruleset version changes between two checks the comparison is marked as not comparable rather than presented as a change in your site. That matters more than it sounds: a tool that reports its own rule change as your regression is lying to you politely.

Blocked is not failed

Sites sometimes refuse us — a firewall, a bot filter, or a rate limiter answering after a burst of requests. When a file such as robots.txt or the sitemap is refused with 403 or 429, the affected checks are reported as blocked and excluded from the score, not marked as missing. A refusal is a fact about the site's bot filtering, not about the site's content, and scoring it would make the same unchanged site score differently depending on when its rate limiter happened to trip.

When you are told

Three alert modes, set in Settings:

  • Problems only — a check started failing, or the score fell.
  • Anything that changed — including improvements and neutral differences.
  • Every check — including runs that found nothing at all. Useful while testing, tiring afterwards.

The default is the middle one. A run that finds everything identical produces no notification, which is the whole design: the interesting event is a difference, not the passage of time. Any URL can be muted for a day, or indefinitely, without giving up its slot.

When you are told is a separate question from when the check ran. The checks are ours to guarantee; the notification is raised by the app when it next syncs — on opening it, or when iOS grants it a moment in the background. Nothing is lost in the meantime: the changelog on the server is complete, and the app catches up on everything it missed. If several days pass with no sync at all, the app says so rather than letting you assume silence meant nothing happened.

Slots

Your plan is a number of URLs — three, ten or fifty — and they may be any pages on any sites. Each URL holds its slot for 30 days from the moment it is added; you are told this in a confirmation before it is added, not afterwards. It can be removed within the first hour, for typos, and muted at any time.

A URL is bound to the site it first resolved to. If it later redirects somewhere else, we stop and tell you, rather than measuring a different site under the same slot. The terms state the rule exactly.

Where the work happens

Measurement happens on our servers. Storage — your URLs, your reports, your changelog — happens on your device, and never reaches us. That split is why the app needs no account, and also why we cannot restore your history if you delete the app.

All 216 checks documented · App terms · App privacy · Support