Regensbot's thresholds
Google does not publish these numbers. Each one is Regensbot's own rule of thumb or comes from something Google said at an event, and the checks that use it say so in their findings. A change to any of them is named in the release notes.
All thresholds
| Threshold | Requirements | What it means |
|---|---|---|
| 80 % | DEV-CAN-08 |
Pages of one template count as near-duplicates when their main content shares at least 80 % of its word sequences (Jaccard similarity of 5-word shingles). |
| 4 clicks | DEV-URL-04 |
A major template whose pages are more than 4 clicks from the home page on average (median) gets a warning. Google only says "a few clicks". |
| 48 hours | DEV-SRV-03 |
Pages may answer 503 for maintenance for up to 48 hours. Longer pauses fail; Google's guides say "a few days at most" and "1-2 days". |
| 50 URLs | DEV-URL-08 |
A filter or sort parameter that produces more than 50 distinct crawlable URLs on one template is flagged as a facet, and the crawl stops following it there. |
| 3 seconds | DEV-REN-06 |
A request of 3 seconds or more that the main content waits for gets a warning. Google's render timeout is not documented. |
| 10 % | DEV-PRF-03 |
When a tool billed per session counts more than 10 % more sessions than your analytics, sessions probably start before any user interaction. |
| 150 px | DEV-VID-01 |
A video player must be at least 150 px on each side once the page has loaded; a smaller one does not count as an embedded video. |
| 150 px | DEV-IMG-01 |
A CSS background image of at least 150 x 150 px in the main content is listed as a possible content image that search engines cannot find; you can dismiss decorative ones. |
| 10,000 px | DEV-REN-03, DEV-URL-07 |
Rendered checks use a viewport about 10,000 px tall and never scroll. The figure was said at a Google event; it is not in Google's documentation. |
| 20 % | DEV-IDX-02 |
When more than 20 % of verified Googlebot requests go to noindex, parameter or action URLs, crawl budget is being wasted. |
| 50 % | DEV-REN-01 |
When at least 50 % of the rendered main text or internal links exist only after JavaScript ran, the page fails: search engines that do not render see little of it. |
| 10 % | DEV-REN-01 |
From 10 % of the rendered main text or internal links that exist only after JavaScript ran, the page gets a warning. |
| 150 characters | DEV-REN-02 |
A click that adds at least 150 characters of new text opens a content panel, which is listed for review: content that appears only after a click may not be indexed. |
| 10 % | DEV-REN-04, DEV-REN-08 |
A render without the resources robots.txt blocks, or without WebGL, that lacks at least 10 % of the page's main text has lost content. |
| 100 characters | DEV-REN-04 |
A render without the resources robots.txt blocks whose main text is shorter than 100 characters is nearly empty, which risks a soft 404. |
| 90 % | DEV-REN-06 |
Two renders of the same page whose main texts share less than 90 % of their word sequences differ, so the content is not stable from one render to the next. |
| 30 % | DEV-REN-10 |
When an iframe from the same site holds at least 30 % of the page's text, the page gets a warning: Google may index that text for the iframe's own URL instead. |
| 2 items | DEV-URL-07 |
A list that gains at least 2 items when the page is scrolled or a load-more button is clicked loads its items on demand, so each of them needs a crawlable link or paginated URL. |
| 120 px | DEV-IMG-03 |
Text within 120 px of an image in the rendered layout counts as text next to it that can explain the image. |
| 3,000 ms | DEV-PRF-02 |
With the CPU slowed down four times, main text that reaches 80 % of its length later than 3,000 ms after navigation shows late. |
| 50 % | DEV-PRF-02 |
When more than 50 % of the rendered main text is missing from the raw HTML, the main content counts as generated by JavaScript, and its timing under a slowed-down CPU is what counts. |
| 120 characters | DEV-HTM-07 |
Styled text of at most 120 characters that paragraph text follows can act as a heading; longer text is not listed. Google gives no number; this one is Regensbot's own. |
| 1.2× | DEV-HTM-07 |
Text at least 1.2 times the size of the page's body text that is no heading element (h1 to h6) is listed as styled to look like a heading. Google gives no number; this one is Regensbot's own. |
| 600 | DEV-HTM-07 |
Text with a font weight of 600 or more counts as bold: outside a heading element it is listed as a possible heading, inside a paragraph without strong or b as possible emphasis. Google gives no number; this one is Regensbot's own. |
| 28 days | DEV-HTM-02, DEV-INT-11, DEV-URL-04, DEV-VID-02 |
Checks that read Search Console's performance data (Search Analytics) look at 28 days of it. |
| 3 days | DEV-HTM-02, DEV-INT-11, DEV-URL-04, DEV-VID-02 |
Those 28 days end 3 days ago, because Search Console's numbers for the latest days still change. |
| 63 days | DEV-MON-03, DEV-MON-10, DEV-MON-11 |
Checks over URL Inspection results read the results and closed fixes of the last 63 days (nine weeks), enough to compare weekly trends. |
| 5 URLs | DEV-CAN-05, DEV-CAN-08, DEV-URL-10 |
Each week Regensbot inspects up to 5 URLs per template with Search Console's URL Inspection. Checks over this sample say so; it is not the totals of Search Console's reports. |
| 10 % | DEV-MON-03 |
When the share of sampled URLs that Google crawled but did not index is 10 percentage points higher than the week before, the share is rising and gets a warning. |
| 5 URLs | DEV-MON-03 |
A week's share of URLs crawled but not indexed is compared only when at least 5 sampled URLs of that week have an indexing state. |
| 3 weeks | DEV-MON-11 |
When the median time from publishing a URL to Google's first crawl of it rises 3 weeks in a row, the site gets a warning. |
| 7 days | DEV-MON-11 |
A new URL that Google has not crawled 7 days after it was published counts as late. |
| 3 URLs | DEV-URL-10 |
A section of the site is ranked by how much of it Google indexed only once at least 3 of its URLs were inspected. |
| 80 % | DEV-URL-10 |
A section with at least 80 % of its inspected URLs indexed is strong in Google's index. |
| 50 % | DEV-URL-10 |
A section with less than 50 % of its inspected URLs indexed is weak and gets a warning. |
| 50 impressions | DEV-INT-11 |
Spellings of the same search query (for example with and without umlauts) are compared only when together they had at least 50 impressions. |
| 5 % | DEV-INT-11 |
A spelling with less than 5 % of its group's impressions gets almost none of them. |
| 50 % | DEV-INT-11 |
A spelling with at least 50 % of its group's impressions dominates it; the others are compared with it. |
| 10 impressions | DEV-HTM-02 |
For a template without target terms, a search query is proposed as a term only when the template's pages had at least 10 impressions for it in Search Console's performance data. |
| 5 items | DEV-HTM-02 |
At most 5 search queries are proposed as target terms per template, those with the most impressions first. |
| 30 days | DEV-SRV-01 |
When Google's last crawl of an inspected URL in the last 30 days was refused or failed (a server error, 403 or another 4xx), the check fails; an older one only warns. |
| 2 % | DEV-MON-08 |
The clicks in the BigQuery bulk export may differ from Search Console's own total for the same day by up to 2 %; more gets a warning. |
| 3 days | DEV-MON-08 |
When a day is still missing from the bulk export's ExportLog 3 days after it was due, the check fails; a day missing for a shorter time warns, because Search Console retries a failed day the next day. |
| 30 days | DEV-MON-08 |
The bulk export check reads the ExportLog of the last 30 days. |
| 2 days | DEV-MON-08 |
An exported day can arrive up to 2 days late, so the last 2 days never count as missing. |
| 3 days | DEV-MON-08 |
Clicks are compared for the latest exported day that is at least 3 days old, once Search Console's numbers for it have settled. |
| 7 days | DEV-MON-08 |
Whether a site is large enough to need the bulk export (more than one page of 25,000 rows of page and query data for one day) is asked again every 7 days. |
| 30 days | DEV-MON-08 |
For a site without a registered export, the answer to whether it is large is used for 30 days at most. |
| 14 days | DEV-SHP-01, DEV-SHP-03 |
The Merchant Center checks read the newest sample of up to 50 products, and only while it is at most 14 days old. |
| 24 hours | DEV-SRV-01, DEV-PRF-01, DEV-MON-04 |
Raw log lines that Cloudflare Logpush or a storage bucket sends are deleted at the latest 24 hours after they arrive; only counts per template and verified crawler are kept. Lines pushed with regensbot logs push are read at once and never stored. |
| 0.5 % | DEV-SRV-01 |
When more than 0.5 % of verified Googlebot requests get a 429 (too many requests), the server is slowing Google down and the check fails. |
| 1 % | DEV-SRV-01 |
When more than 1 % of verified Googlebot requests get a server error (5xx, or no answer at all), the check fails. |
| 1.5× | DEV-PRF-01, DEV-MON-04 |
When the slowest 5 % of answers to verified Googlebot (p95) take more than 1.5 times as long as the visitors' on the same templates, or than Googlebot's own p95 of the days before, you get a warning. |
| 100 requests | DEV-AIF-04, DEV-IDX-02, DEV-MON-04, DEV-MON-11, DEV-PRF-01, DEV-SHP-02, DEV-SRV-01, DEV-SRV-09, DEV-URL-07, DEV-URL-08 |
A server log check passes only on at least 100 verified crawler requests in its window; with fewer it shows the counts and asks for more data. A problem fails or warns at any count. |
| 30 days | DEV-AIF-04, DEV-IDX-02, DEV-MON-04, DEV-MON-11, DEV-PRF-01, DEV-SHP-02, DEV-SRV-01, DEV-SRV-09, DEV-URL-07, DEV-URL-08 |
The server logs count as a source of a site while they delivered a parsed batch in the last 30 days. |
| 28 days | DEV-AIF-04, DEV-IDX-02, DEV-MON-04, DEV-MON-11, DEV-PRF-01, DEV-SHP-02, DEV-SRV-01, DEV-SRV-09, DEV-URL-07, DEV-URL-08 |
The server log checks decide on the crawler requests of the last 28 days. |
| 20 requests | DEV-PRF-01 |
Googlebot's and the visitors' response times on a template are compared only when each side has at least 20 timed requests. |
| 50 % | DEV-PRF-01 |
When Googlebot's p95 response time is more than 50 % above last week's, you get a warning. |
| 40 % | DEV-PRF-01 |
When Googlebot made more than 40 % fewer requests yesterday than on a typical day (the median) while its answers got slower, Google may have lowered its crawl capacity: you get a warning. |
| 7 days | DEV-PRF-01 |
That typical day is the median of at least 7 days with Googlebot traffic. |
| 7 days | DEV-MON-04, DEV-AIF-04 |
A log alert of the last 7 days gives a warning: a higher share of 5xx or 429 answers, robots.txt answering 5xx, a jump in Googlebot's response time, or a verified AI agent refused with 403, 429, a block or a challenge. |
| 200 URLs | DEV-IDX-02 |
To see whether the parameter URLs Googlebot spends its requests on are worth it, one sample crawl fetches at most 200 of them, within the crawl limits of your plan. |
| 10 sources | DEV-MON-04 |
A site may have up to 10 log sources (CLI pushes, Logpush jobs, S3 or R2 buckets). |
| 20 requests | DEV-MON-04 |
A share or response-time alert is raised only for a day with at least 20 verified Googlebot requests (and a baseline of as many). |
| 7 days | DEV-MON-04 |
The response-time alert compares a day with Googlebot's p95 of the 7 days before it. |
| 6 hours | DEV-MON-04 |
Yesterday's log alerts are worked out from 6 hours after midnight UTC, because CDN logs arrive late. |
| 2 seconds | DEV-SRV-01, DEV-SRV-09, DEV-MON-04, DEV-AIF-04 |
A crawler whose address is not on its vendor's IP list is checked by reverse and forward DNS; one DNS query may take 2 seconds. |
| 60 seconds | DEV-SRV-01, DEV-SRV-09, DEV-MON-04, DEV-AIF-04 |
One log batch waits at most 60 seconds in all for DNS answers; claims left unchecked count as not verified. |
| 1,000 addresses | DEV-SRV-01, DEV-SRV-09, DEV-MON-04, DEV-AIF-04 |
One log batch looks up at most 1,000 different addresses in DNS; claims beyond them count as not verified. |
| 30 minutes | DEV-SDA-11 |
When GitHub reports a successful deployment and no release record from regensbot ci arrives for its commit within 30 minutes, the pipeline skipped the check and you get a warning. |
| 90 days | DEV-MON-02, DEV-SDA-11, DEV-SDA-12 |
The release pipeline counts as a source of a site while regensbot ci posted a release record for it in the last 90 days. |
| 50 releases | DEV-MON-02 |
One site takes at most 50 release records per day (UTC); more are refused until the next day. |
| 20 URLs | DEV-MON-10 |
The re-checks after a release audit at most 20 production URLs, the first templates' URLs, each once. |
| 100 URLs | DEV-MON-10 |
The re-checks of one site audit at most 100 production URLs per day (UTC); a URL already audited that day is not audited again, and a re-check beyond the budget waits for the next day. |
| 365 days | DEV-MON-02, DEV-MON-10 |
A release record and its re-checks are kept for 365 days after they arrived. |
| 30 days | DEV-SDA-11 |
A GitHub delivery is kept for 30 days so that a replay changes nothing; a delivery older than that is ignored. |
| 1 days | DEV-MON-10 |
A robots.txt change in a release is expected to show in Google Search within 1 day (about a day; an estimate said at Search Central Live). Its re-check is due when that window closes. |
| 21 days | DEV-MON-10 |
A noindex change in a release is expected to show in Google Search within 7 to 21 days (one to three weeks; an estimate said at Search Central Live). Its re-check is due when that window closes. |
| 21 days | DEV-MON-10 |
A canonical change in a release is expected to show in Google Search within 7 to 21 days (one to three weeks; an estimate said at Search Central Live). Its re-check is due when that window closes. |
| 14 days | DEV-MON-10 |
A structured data change in a release is expected to show in Google Search within 0 to 14 days (hours to two weeks; an estimate said at Search Central Live). Its re-check is due when that window closes. |
| 21 days | DEV-MON-10 |
A title and snippet change in a release is expected to show in Google Search within 1 to 21 days (a day up to several weeks, read as three; an estimate said at Search Central Live). Its re-check is due when that window closes. |
| 90 days | DEV-MON-10 |
A site-move change in a release is expected to show in Google Search within 30 to 90 days (one to three months; an estimate said at Search Central Live). Its re-check is due when that window closes. |
| 14 days | DEV-MON-10 |
A content change in a release is expected to show in Google Search within 0 to 14 days (hours to two weeks; an estimate said at Search Central Live). Its re-check is due when that window closes. |
| 1 days | DEV-MON-10 |
When URL Inspection says Google last crawled a production URL before the release, the re-check asks again after 1 day. |
| 14 days | DEV-MON-10 |
After the window closed, the re-check asks URL Inspection once a day for at most 14 days; a URL Google has not crawled again by then stays not yet processed. |
| 1,000 rows | DEV-CAN-10 |
regensbot ci requests at most 1,000 rows of a redirect map on staging per run. |
| 10 URLs | DEV-CAN-10 |
When at least 10 old URLs redirect to one target and they are more than half of the map's redirects, you get a warning: Google may treat such redirects as soft 404s. |
| 50 % | DEV-CAN-10 |
That share: more than 50 % of the redirect map's redirects onto one target. |
| 600 seconds | DEV-CAN-10 |
One run checks the redirect map for at most 600 seconds; rows left unchecked are listed as such. |
| 2,000 images | DEV-IMG-08 |
One run compares at most 2,000 of the pipeline's output images with their originals. |
| 8,000,000 bytes | DEV-IMG-08 |
Of each image file, regensbot ci reads at most 8,000,000 bytes for its metadata. |
| 5,000,000 bytes | DEV-CAN-10 |
regensbot ci reads at most 5,000,000 bytes of a redirect map file; a larger file is refused. |
| 2,000,000 bytes | DEV-MON-02 |
One release record holds at most 2,000,000 bytes; Regensbot refuses a larger one unread. |
| 100 templates | DEV-MON-02 |
One release record holds at most 100 template results; the redirect map and the image comparison take one each. |
| 200 findings | DEV-MON-02 |
One template result in a release record holds at most 200 findings. |
| 20 items | DEV-MON-02 |
A site's checklist has at most 20 items of its own for release records. Beyond that, the oldest release item that only machines made goes; one a person acted on or that still needs work stays, and the new release's result then goes to the site's own item. |
| 1,000,000 bytes | DEV-SDA-11 |
One GitHub webhook delivery holds at most 1,000,000 bytes; a larger one is refused unread. |