Everything you want to know
before you sign up.

What Coffeepot checks, why it matters, and the honest answers to the questions you're probably already thinking.

What we check

Title tag

The title tag is one of the most direct ranking signals Google uses. It also determines what shows up as the clickable headline in search results. When it disappears - usually because of a CMS migration or a bad deploy - there's no error, no warning, no 500 page. The site just silently loses a fundamental piece of its SEO. Coffeepot catches it the morning it happens.

Meta description

Not a direct ranking factor, but it drives click-through rate. When a meta description goes missing, Google fills the gap with whatever text it finds on the page - often a navigation element or a cookie banner. It's a small thing that compounds over time. Coffeepot flags it before Google rewrites your snippet.

Canonical tag - including mismatch detection

Some tools just check whether a canonical tag exists, which is kind of useless. Coffeepot also checks whether it points to the right URL. A canonical pointing to a staging domain, a previous URL, or the wrong page is arguably more dangerous than no canonical at all - it actively tells Google to consolidate signals somewhere you don't want them. This is one of the most common post-migration mistakes, and one of the easiest to overlook.

Noindex

A noindex directive tells Google not to show a page in search results. This is fine when it's intentional - staging environments, thank-you pages, internal search results. It's a living nightmare when it's accidental. Devs add noindex tags during testing and they get merged to production, it happens constantly and in businesses of all sizes. Coffeepot alerts you the same day a noindex appears on a page that shouldn't have one.

Robots.txt

Coffeepot fetches your site's robots.txt and checks every user agent group against the URL it's monitoring. It tells you specifically which crawlers are being blocked - not just "there might be an issue." A Disallow: / that blocks Googlebot from your entire site is a five-alarm fire that often sits undetected for weeks.

HTTP status code

Coffeepot records the status code returned for each page on every crawl. A page that goes from 200 to 404, 500, or times out entirely is flagged immediately. This catches server errors, broken deploys, and accidental deletions before they show up in your Search Console data - which can lag by days.

Word count Grande+

Coffeepot counts the words in the visible body text on every crawl. A shift of 20% or more - with at least 50 words - triggers an alert. Content stripping is invisible to status code monitoring: the page still returns 200, but half the text is gone. This catches template regressions, CMS migration accidents, and accidental truncation before they compound into ranking drops.

GA / GTM scripts Grande+

Coffeepot records the Google Analytics and Google Tag Manager IDs found on each page. If a deploy removes your tracking scripts - or accidentally adds a duplicate - you find out the same morning. Analytics gaps compound silently: by the time the data looks wrong in your dashboards, you've often lost weeks of clean tracking.

SSL certificate expiry Grande+

Coffeepot checks the SSL certificate on every monitored HTTPS page and alerts at 30, 15, 5, and 1 day before expiry - each threshold fires exactly once. An expired certificate takes your site offline for every visitor and every crawler simultaneously. Auto-renewal is reliable until it isn't: misconfigured hosting, expired payment methods, and DNS changes all cause it to silently fail.

Domain expiry Grande+

Coffeepot checks your domain's registration expiry via RDAP and alerts at the same 30, 15, 5, and 1 day thresholds. A lapsed domain registration is catastrophic - the domain becomes available for anyone to register, including bad actors who will point it wherever they want. It's also the kind of thing that gets forgotten when it's on a card that expired, or registered under someone who left the company.

Broken images Grande+

Coffeepot checks every image on the page after it's fully rendered in the browser. Images that fail to load - wrong path, deleted file, broken CDN reference - are flagged with their URL. These don't affect status codes or most SEO checks, but they do affect user experience and can signal deeper asset pipeline problems. Common causes: CDN misconfigurations after a migration, path changes after a CMS update, and missing environment-specific assets.

Hreflang Venti

Coffeepot records the set of hreflang language and region tags present on each page and alerts if they change. Missing or broken hreflang is one of the few SEO issues that specifically damages international traffic while leaving domestic rankings untouched - which makes it easy to miss for a long time. CMS migrations and template refactors are the usual culprits.

JSON-LD schema markup Venti

Coffeepot validates your structured data against Google's rich results requirements - not just whether it exists, but whether it's correct. A Product schema missing offers, an Article without datePublished, a FAQPage without mainEntity - these are the things that silently disqualify pages from rich results. Coffeepot also alerts if schema types change between crawls or if the JSON-LD becomes unparseable.

Broken internal links Venti

Coffeepot checks every same-domain link found on the page and reports any that return a 4xx or fail to connect. Internal links that go dead waste crawl budget, create dead ends for users, and signal poor site quality to Google. They're almost impossible to catch manually and rarely show up until a user or crawler hits them.

Frequently asked questions

Why wouldn't I just use Screaming Frog?

Screaming Frog is excellent at what it does - crawling thousands of URLs on demand, in depth. But it's a tool you run, not a service that watches. You have to remember to open it, run a crawl, compare it to a previous export, and interpret the results. Coffeepot does all of that automatically, every single morning, and only bothers you when something actually changed. The two tools solve different problems: Screaming Frog is for auditing, Coffeepot is for monitoring. Most people who use Coffeepot also use Screaming Frog - they just don't want to run a manual crawl to find out their canonical broke last Tuesday.

Couldn't I just build this myself?

Yeah, probably, but the point of Coffeepot is it's for people who have better things to do than manually review crawl data every day. Technically it's not that complicated: a headless browser, a scheduler, a database, some diffing logic, an email provider. A competent developer could sketch it out in a weekend (it took me loads longer while looking for jobs but here we are); but then there's the weekend you spend debugging why Playwright won't install on your server. And the one where your email domain ends up on a blocklist. And the one where your SQLite database silently corrupts because you didn't handle concurrent writes. If you'd genuinely enjoy building it, you should. If you'd rather spend that weekend on something else, Coffeepot is 9 quid a month.

How is this different from Google Search Console?

Search Console is retrospective. It tells you that something changed after Google has crawled your page, processed it, updated its index, and surfaced the change in their reporting, which can take ages. Coffeepot is the same morning. The goal isn't to replace Search Console, it's to give you a head start before Google even knows there's a problem.

What counts as a "change"?

Any of the six monitored fields being different from the previous crawl. A title changing by a single character is a change. A canonical URL switching domain is a change. A noindex tag appearing where there wasn't one is a change. A robots.txt rule blocking a crawler that wasn't blocked before is a change. Coffeepot shows you exactly what changed - field, previous value, new value - in the alert email.

My site uses React / Next.js / a JavaScript framework. Will it work?

Yep! Coffeepot uses a full Chromium browser to render each page before running checks. It sees the fully rendered DOM - the same thing a real user (and Googlebot) sees. Server-side rendered and client-side rendered pages both work correctly.

Can I monitor staging environments or pages behind a login?

Not currently. Coffeepot monitors publicly accessible URLs. Authenticated pages and password-protected staging environments are on the roadmap, but if this matters to you get in touch and we'll see if we can help.

What if a page goes down or times out?

That's flagged. A status code of 0 (connection timeout), any 4xx, or any 5xx is treated as an issue and included in the morning alert. You won't find out from a customer.

How does the robots.txt check actually work?

When Coffeepot crawls your page, it also fetches your site's robots.txt file and checks every user agent group listed against your specific URL. If Googlebot is allowed but Bingbot is blocked, it tells you Bingbot is blocked. If the wildcard rule (User-agent: *) blocks everyone, it tells you that.

Can I cancel anytime?

Yes. Billing is through Stripe. Cancel from your account page and you won't be charged again. No cancellation flow, no questions, no retention emails.

Is my data safe?

Coffeepot reads only your public pages - the same content any visitor or crawler sees. We store a compressed snapshot of the HTML to enable change detection. We don't share, analyse, or sell your content for any purpose beyond that.

Get started free See pricing →