How Rabbot checks your store

What a check actually is: the fetch, the reading of your page's markup, what happens after a theme goes live, and why nothing closes until Rabbot has looked again.

Updated 2 October 2026

What a check actually is

A check is a fetch and a read. Rabbot fetches the page a shopper’s browser would receive, takes the HTML your store serves back, and pulls the meaningful parts out of it: title, meta description, canonical, indexing rules, headings, structured data, language tags, images, links, whether the page still carries an add-to-cart form. That snapshot is compared with the one from the last check, and findings come from what changed rather than from a one-off score.

No headless browser is involved at any point. Rabbot never clicks, scrolls, submits a form, picks a variant, runs a test checkout, signs in as a customer, or fetches through a probe network abroad. Checkout sits on Shopify’s own domain, outside what Rabbot looks at. That is a real boundary, and everything below describes what happens inside it.

The add-to-cart check reads Shopify’s standard product-form architecture rather than button text or theme-specific markup. It ignores the button’s disabled state on purpose, so a sold-out product never raises a false alarm. Reading the form is not proof that the purchase path works, and the boundary above still holds.

JavaScript, and what Rabbot can still read

Rabbot does not run your storefront’s JavaScript. It does read the data payloads that modern themes embed in the served page for their own scripts, which is where titles, canonicals, and product fields usually sit, so those pages are judged on real values and not an empty shell.

Every page is classified for how it renders. When a page cannot be judged without running scripts, Rabbot raises that as a finding of its own instead of guessing.

When a product changes, and when a theme goes live

Create, edit, or delete a product and your store announces it, which puts that page straight back in the queue: about 39 seconds from store event to re-check in live validation (a measured observation, not a promise). Publishing a theme can break many pages at once, so a publish sends the whole monitored set through the same pipeline. Edits to the theme that is already live do not announce themselves, so the next scheduled check catches those.

The homepage heartbeat

Your homepage runs on its own short clock, about every five minutes by default and on every plan, Free included. A store that has gone dark is caught in about six minutes, eleven at the slowest, and the all-clear arrives just as quickly.

Pages that change get checked more often

Rabbot moves each page’s interval with its behaviour: halved after a change, stretched out while nothing happens. On Free that keeps a page between weekly and daily; on paid plans, between daily and every ten minutes. First-visit behaviour is covered in Your first check.

Nothing closes until Rabbot has looked again

An issue closes only when a later live check of the page no longer finds the problem. It does not close on a timer, after a set number of days, or because a fix went out: Rabbot has to fetch your real page and see it come back clean. Until then it stays open, and repeated checks of an unchanged problem send you nothing new. One exception is deliberate: a finding that is blocking sales gets one reminder at 24 hours if it is still open. Warnings and info findings never remind.

The two feed layers

Feed checking runs in two layers. Rabbot’s own cross-check compares what your product catalogue says about a product with what the live page shows: on paid plans it re-checks a product within minutes of a change in your store and sweeps the full catalogue daily, and on Free it runs once, on install day.

The second layer is not another pass of that cross-check. Add a channel in Settings and, on paid plans, Rabbot reads that channel’s own verdicts once a day. From Google it reads disapproved products, demoted products, and items in review. From Meta it reads rejected products, items in review, and data-quality issues. From TikTok (Beta) it reads catalog diagnostics and data-quality issues. A critical verdict from Google or Meta reaches you the same day Rabbot reads it, by email and, on paid plans with Slack set up, by Slack. Every verdict appears in your dashboard and weekly digest, and over MCP. TikTok (Beta) diagnostics appear in the dashboard and digest only. On Free, Rabbot runs its own day-zero feed cross-check at install, a deterministic check that needs no channel connection. Connecting a channel needs Starter or above: on Free, the card in Settings shows See plans. What feed monitoring is has the detail.

Still stuck? Email support@rabbot.ai and a real person reads it.