7-Day Indexed Recheck
Re-inspects every Indexed URL every 7 days through URL Inspection.
Deindex Watch
Pages drop out of Google's index, and you rarely know which ones until traffic falls. Deindex monitoring in SearchAnalysis.io re-inspects every indexed URL every 7 days through Search Console URL Inspection. The deindex watch flags a dropped page in amber as Not indexed. Monitoring for deindexed pages keeps the date of the check that found each drop.
recheck: every 7 days, for as long as the site is connected
Definition
Deindex monitoring is the practice of re-inspecting pages Google has already indexed so you know when Google drops one. In SearchAnalysis.io, deindex monitoring re-inspects every Indexed URL every 7 days through the Search Console URL Inspection API, marks a URL that a recheck finds not indexed as amber Not indexed, and stores the date of the check that found the drop.
A deindexed page is a URL that was in Google's index and is no longer there. Indexed by Google means the page is in Google's index, and SearchAnalysis.io counts a URL as indexed only when URL Inspection returns a PASS verdict or a coverage state that says indexed.
SearchAnalysis.io calls a drop a deindex event: the moment a URL moves from green Indexed to amber Not indexed. The Google index checker confirms pages first, and the deindex watch takes over once they are green.
PLANNED: alerts by email and Slack, and weekly digest reports, will tell you about deindex events without opening the dashboard.
7days
Recheck interval for indexed URLsDeindex monitoring re-inspects every indexed URL every 7 days, so a drop surfaces at the next weekly check.
2,000inspections a day
URL Inspection quota per propertyDeindex monitoring runs its rechecks inside the 2,000 URL Inspection calls a day that Google allows per property.
30days
Trend line on the Google index cardDeindex monitoring draws a 30-day trend line of verified indexed pages, so a month of drops and gains shows at a glance.
Old Way vs. New Way
Most people learn about a deindexed page after the fact.
site: search shows a listing or no listing, with no reason.What Is Inside
Five shipped parts and one PLANNED part make up the deindex watch.
Re-inspects every Indexed URL every 7 days through URL Inspection.
Marks a URL amber when a recheck finds it not indexed after it was Indexed.
Amber Not Indexed StateRecords each inspection with its time, state, coverage state and source.
Check History With Drop DateShows verified indexed pages with 24-hour and 7-day change and a 30-day trend.
Google Index Card DeltasFilters the Monitor by live state and exports the list to CSV.
Live State Filter and CSV ExportWill notify you by email or Slack when a page drops, with weekly digests. PLANNED.
Deindex Alerts by Email and SlackProcess
A URL joins the watch the day Google confirms it.
Get a URL Verified
A URL enters the watch when URL Inspection returns PASS or an indexed coverage state, and its Search Console row turns green.
Recheck Every 7 Days
SearchAnalysis.io inspects the URL again every 7 days for as long as the site is connected. Each recheck is saved with the source monitor recheck.
Flag the Drop
If a recheck finds the URL not indexed, it turns amber Not indexed, and the history row keeps the date and Google's coverage state.
Read the Fields
The URL detail page shows the latest verdict, coverage state, robots.txt state, indexing state, canonical and last crawl time.
Export the List
Filter the Monitor by live state and export the Not indexed URLs to CSV for the people who fix them.
Advantages
Deindex monitoring advantages are a dated record of each drop, Google's own fields for every dropped page, and a list of dropped URLs you can hand to whoever fixes them.
The check history keeps the date of the check that found the drop, so you can line it up with releases, redirects or template changes.
Google index checkerEach recheck stores Google's verdict, coverage state, robots.txt state, indexing state, Google-selected canonical and last crawl time.
Crawled, currently not indexed guideThe Google index card shows 24-hour and 7-day change and a 30-day trend, with coverage printed with its denominator.
SearchAnalysis.io product overviewFilter the Monitor by live state and export to CSV, so the people who fix pages get the exact URLs.
REST API for per-URL stateThe sitemap monitoring inventory marks a URL Removed when it leaves the sitemap, and the free indexability checker tests a dropped page for blockers you control.
Picture a Tuesday recheck catching three amber pages, reading the coverage state and drop date on each, and sending your developer a CSV before lunch.
Limits
Deindex monitoring reports Google's answers. These are the limits we publish.
Google Decides
Google decides what it crawls and indexes, and nobody can guarantee a page stays indexed. SearchAnalysis.io records what Google reports and does not know Google's private reasons.
Up to 7 Days to Notice
A page that drops right after a recheck shows Not indexed at the next one, up to 7 days later.
Inspection Quota
Rechecks count against the 2,000 URL Inspection calls a day and 600 a minute that Google allows per property.
Alerts Are PLANNED
Email and Slack alerts and weekly digests are PLANNED. Until they ship, drops show in the dashboard, the Monitor and the check history.
Drop Reasons
When a recheck finds a page not indexed, Google reports a state for it. These are the states you can observe after a drop, in Google's wording, with what you can check and what SearchAnalysis.io records. Google's reasons beyond what it reports stay private.
(Select a reason to read more)
A deindexed page with the reason “URL marked 'noindex'” carries an indexing directive that tells Google to keep it out. The directive lives on your side, in the page or in the response headers, which makes this one of the clearest drops to trace.
| Where Google reports it | What you see |
|---|---|
| Page indexing report | URL marked 'noindex' |
URL Inspection indexingState | BLOCKED_BY_META_TAG or BLOCKED_BY_HTTP_HEADER |
URL Inspection verdict | A value other than PASS |
noindex or none in meta robots and in the X-Robots-Tag header.The recheck that found the drop is saved as a check history row with its time, the state NOT_INDEXED, the coverage state and the source monitor recheck. The health snapshot stores the indexing state, so the row shows whether the block came from the meta tag or the HTTP header. The URL turns amber Not indexed, and the verified indexed count on the Google index card goes down by one.
A cleared directive does not force Google to index the page again. It removes the reason Google reported.
“URL blocked by robots.txt” means a robots.txt rule stops Google from crawling the page. For a page that dropped, deindex monitoring shows the robots.txt state Google reported at the recheck. Google lists a separate warning, “Indexed, though blocked by robots.txt”, for pages that stay indexed while blocked, so a block and a drop do not always arrive together.
robotsTxtState: DISALLOWEDindexingState: BLOCKED_BY_ROBOTS_TXTTest the URL in the indexability checker. It reads robots.txt with three rules: the Googlebot group wins over *, the longest matching rule decides, and Allow wins a tie. A broad Disallow added during a release is a common thing to look for.
User-agent: *
Disallow: /
User-agent: Googlebot
Allow: /In this example, Googlebot follows its own group and is allowed, even though every other crawler is blocked. Delete the Googlebot group and the * rule applies to Google too.
The check history row for the drop stores robotsTxtState and the indexing state with the date of the recheck. Earlier rows keep ALLOWED, so the first DISALLOWED row dates the block as SearchAnalysis.io saw it. The block may have started any time in the 7 days before that recheck, so check your deploy log for that window.
“Not found (404)” means Google requested the page and the server answered that it does not exist. Common causes to test for a deindexed page in this state are a deleted page, a changed slug and a broken route, and every one of those is on your side.
pageFetchState: NOT_FOUND, a field the API returns.The recheck is stored as a NOT_INDEXED row with the coverage state, the verdict and the last crawl time. The sitemap monitoring inventory adds a second record: when the URL leaves your sitemap, the inventory marks it Removed and keeps its first seen and last seen dates. Set the last seen date beside the drop date and you can tell whether the page left the sitemap before or after Google dropped it.
“Server error (5xx)” means your server answered Google's request with a 5xx status. For a deindexed page, the places to look are hosting, application errors and origin load at the time Google crawled. The URL Inspection API returns pageFetchState SERVER_ERROR for the same condition.
| Where the 5xx came from | What SearchAnalysis.io shows |
|---|---|
| Your page, when Google crawled it | A NOT_INDEXED row with Google's coverage state, and amber Not indexed |
| Google's API, when SearchAnalysis.io asked | An ERROR row, then a retry after 30 minutes |
An ERROR row is a failed inspection, and SearchAnalysis.io does not treat it as a drop. Transient errors (429, 5xx and network failures) retry after 30 minutes. Repeated failures back off exponentially:
Load the page through the free indexability checker. It fetches as SearchAnalysisBot/1.0 with a 10-second timeout, and a non-2xx status fails the first check. A pass now does not prove the server answered Google at crawl time, so compare the stored last crawl time with your server logs and uptime history for that window.
The check history keeps the row with its date, coverage state and last crawl time, which gives you the window to search in your logs.
“Page with redirect” means the URL now redirects somewhere else. Google indexes the destination, so a page that was indexed and now redirects drops out by design, and the destination takes its place if Google indexes it. Deindex monitoring shows the drop on the old URL.
| Report or field | Value |
|---|---|
| Page indexing report | Page with redirect |
| Related reason | Redirect error |
pageFetchState for a failed redirect | REDIRECT_ERROR |
noindex and has a self-referencing canonical.The old URL gets a NOT_INDEXED row with the coverage state and the date of the recheck, and it turns amber. The destination is a new URL to SearchAnalysis.io. Once you submit it, the destination climbs the inspection ladder and, when Google confirms it, enters the 7-day watch. The 30-day dedup applies to URLs already tracked inside 30 days, which matters if the destination was submitted recently.
A planned migration produces a wave of these rows. The Monitor's live state filter collects them in one list, and the CSV export gives you the old URLs to check against your redirect map.
“Duplicate without user-selected canonical” means Google treats the page as a duplicate of another URL and the page declares no canonical of its own. A deindexed page in this state has lost its place to a URL Google picked. Google lists a related reason, “Alternate page with proper canonical tag”, for pages that point their canonical at another URL on purpose.
googleCanonical: “The URL of the page that Google selected as canonical”.userCanonical: the canonical the page declares, a field the API returns. For this reason, Google found none.Run the page through the indexability checker. Its fifth check warns when the canonical is missing, passes when it references the page itself, and warns when it points elsewhere. Then open the stored Google-selected canonical and compare the two pages.
| If Google's choice is | Then |
|---|---|
| The page you want in search | Track that URL and let the dropped one go. |
| A parameter or print version | Add a self-referencing canonical to the page you want. |
| A near copy on your site | Merge or differentiate the content. |
Each recheck stores the Google-selected canonical in the health snapshot. The row that found the drop shows the URL Google chose that day, next to the coverage state and the date.
“Duplicate, Google chose different canonical than user” means your page declares a canonical and Google picked a different URL. The page drops because Google decided another URL represents it better. Deindex monitoring shows the drop and the URL Google picked; it does not know why Google chose it.
| Field | Whose choice | In SearchAnalysis.io |
|---|---|---|
googleCanonical | Google's | Stored with every inspection |
userCanonical | Yours, declared on the page | Returned by the API |
Each check history row stores the Google-selected canonical as it was on that day. Earlier rows, from when the page was indexed, show the canonical Google picked then, so you can see the recheck where Google's choice moved and compare it with your own change log.
If Google's choice is a page you are glad to see in search, submit it so the Google index checker confirms it and the 7-day watch moves to that URL.
Google describes “Crawled, currently not indexed” in one line: “The page was crawled by Google but not indexed.” Google fetched the page and decided to leave it out of the index, and deindex monitoring reports that decision without knowing Google's private reasons.
Rule out the causes you control with the free indexability checker: status, redirects, robots.txt, directives and canonical. Its sixth check warns when the page has under about 100 words of visible text. After that, the page itself is the variable: its content, its purpose and the links that point to it. The guide to Crawled, currently not indexed covers this state in depth, with the checks to run before you change the page.
The recheck row stores this coverage state with the date, the verdict and the last crawl time. Read the last crawl time against the drop date: a recent crawl means Google saw the current version of the page before it left the index, so changes to that version are the place to start.
“Soft 404” is a reason in the Page indexing report. Google applies it from its own reading of the page, so a deindexed page in this state carries Google's label, and deindex monitoring stores the label without guessing at the judgment behind it. The URL Inspection API returns pageFetchState SOFT_404 for the same condition.
| Record | Content |
|---|---|
| Check history row | Time, NOT_INDEXED, coverage state, source monitor recheck |
| Health snapshot | Verdict, coverage state, robots.txt state, indexing state, canonical, last crawl time |
| Status | Amber Not indexed |
| Google index card | One fewer verified indexed page, counted in the 24-hour and 7-day change |
Pages on ecommerce sites with out-of-stock or retired products are worth filtering in the Monitor after each weekly cycle, since a retired product page may show little visible content.
Records
Deindex monitoring is only as useful as its records. These are the records the deindex watch keeps today, and the alerts that are PLANNED.
(Select a record to read more)
The check history is the core record of deindex monitoring. Every inspection of a URL is stored as a row, from the first check after submission to the latest 7-day recheck, so the history of a dropped page shows when it was confirmed and when it left.
| Column | What it holds |
|---|---|
| Time | When the inspection ran |
| State | INDEXED, NOT_INDEXED or ERROR |
| Coverage state | The coverage state Google returned |
| Source | Inspection, daily check or monitor recheck |
state: INDEXED | NOT_INDEXED | ERROR
source: inspection | daily check | monitor recheckEach row comes with Google's health snapshot: verdict, coverage state, robots.txt state, indexing state, Google-selected canonical and last crawl time. An ERROR row records a failed inspection (429, 5xx or network), retried after 30 minutes, and does not count as a drop.
You read the full history on the URL detail page. The Google index checker page explains each stored field.
Read a dropped page's history from the bottom up. You see the inspection that first confirmed it, the run of monitor rechecks that kept it green every 7 days, and the single NOT_INDEXED row that turned it amber. That last row's date is the date you work from when you look for the change that caused the drop.
Deindex monitoring tracks live index state, which is separate from the submission lifecycle. Every submitted URL gets three channel rows: Google Indexing API, Search Console and Bing (IndexNow). Only the Search Console row carries index confirmation, and only that row turns green.
| Label | Meaning |
|---|---|
| Queued | Received, waiting for a worker |
| Sending | A worker is sending it |
| Processing | The engine accepted it; for Search Console, inspection has not confirmed yet |
| Indexed | Verified by URL Inspection |
| Failed | An error that needs a person, with the error text shown |
| Dropped | Filtered out before sending: outside the site's domain, duplicate or invalid format |
| Cancelled | Cancelled |
Amber Not indexed is the deindex state: a URL that was Indexed and a later recheck found not indexed. It differs from Dropped, which describes a URL filtered out before it was ever sent. Green means verified and nothing else.
Accepted notifications to the Google Indexing API and IndexNow show Processing and never Indexed, because a notification does not confirm indexing. A deindexed page can still show Processing on those two rows while its Search Console row is amber.
Read the two together this way: the lifecycle label tells you what happened to the submission, and the live state tells you what Google reports about the page today. A URL can finish its lifecycle as Indexed and later carry amber Not indexed after a 7-day recheck.
Each site has a Google index card, and deindex monitoring feeds its numbers. When a recheck finds a page not indexed, the verified indexed count falls and the change shows in the deltas.
coverage = verified indexed ÷ trackedA coverage figure without its denominator hides how many pages are tracked. The card prints both numbers, so a coverage change from new submissions reads differently from one caused by drops.
Appearing in search is an independent whole-site signal. It comes from Search Analytics impressions and does not depend on URL Inspection, so read it as a second view next to the verified count. Search performance beyond appearing in search (queries, clicks, positions) is PLANNED. See the SearchAnalysis.io product overview.
Read the 24-hour and 7-day change after each round of rechecks. A negative change with no new submissions points to drops, and the Monitor's live state filter lists the URLs behind the number.
The Monitor is where deindex monitoring turns into a work list. It shows every URL with its per-channel statuses and updates by live polling.
| Filter | Use it to |
|---|---|
| All, Indexed, Pending, Failed | Split URLs by status |
| By site | Work one property at a time |
| By live state | List URLs that are amber Not indexed |
Developers get the same data by API. GET /api/v1/submissions/{batchId} returns a batch with per-URL, per-channel state, and the check_url_index_status MCP tool answers for one URL. The SearchAnalysis.io developer surface lists every endpoint, and the OpenAPI 3.1 document is public at /openapi.json.
Agencies that manage client sites can filter by site and export one CSV per client. Workspaces above sites and shareable status pages for clients are PLANNED and will group sites by client when they ship.
Each CSV row comes from the same records the dashboard shows, so the list you hand off matches what you see on the URL detail pages.
Deindex alerts are PLANNED. SearchAnalysis.io will send alerts by email and Slack when deindex monitoring finds a drop, and it will send weekly digest reports. Until they ship, drops show in the dashboard, the Monitor and each URL's check history.
| Item | Status |
|---|---|
| 7-day recheck of every Indexed URL | Shipped |
| Amber Not indexed state and drop date in check history | Shipped |
| Google index card deltas and 30-day trend | Shipped |
| Monitor live state filter and CSV export | Shipped |
| Email “Indexed: <url>” when a URL is confirmed | Shipped |
| Email “Submission failed: <url>” with the error | Shipped |
| Deindex alerts by email and Slack | PLANNED |
| Weekly digest reports | PLANNED |
Waitlist members get an invite before public launch, launch pricing locked and an extended free trial. Join the SearchAnalysis.io waitlist to get access when invites go out.
The alerts will use the same check that powers the amber state today, the 7-day recheck through URL Inspection. Nothing about how a drop is found will change when they ship; they will add a way to hear about it without opening the dashboard.
FAQ
Deindexed means a page that was in Google's index is no longer there. SearchAnalysis.io shows a deindexed page as amber Not indexed when a 7-day recheck finds it out of the index.
Indexed by Google means the page is in Google's index. SearchAnalysis.io counts a page as indexed only when URL Inspection returns a PASS verdict or a coverage state that says indexed.
Your page got deindexed for a reason only Google can fully explain. The Page indexing report and the coverage state name the reason Google reports, like URL marked 'noindex', Not found (404) or Crawled, currently not indexed. SearchAnalysis.io stores those fields with the check that found the drop.
You know a page was removed from Google's index when URL Inspection stops confirming it. SearchAnalysis.io re-inspects every indexed URL every 7 days and marks a drop amber Not indexed, with the date of that check.
You see what pages are not indexed in the Page indexing report, grouped by reason. In SearchAnalysis.io, filter the Monitor by live state and export the list to CSV.
SearchAnalysis.io rechecks indexed pages every 7 days for as long as the site is connected. Rechecks run inside the 2,000 URL Inspection calls a day Google allows per property.
Email alerts for deindexed pages are PLANNED, along with Slack alerts and weekly digests. Today, drops show in the dashboard, the Monitor and the check history.
You can export a list of deindexed pages from the Monitor as a CSV. Filter by site and live state first to keep only the amber Not indexed URLs.
Waitlist
SearchAnalysis.io is invite-only today. Join the waitlist with your email and an invite comes to you from the list.
Picture your next weekly recheck flagging a dropped page with its date and coverage state before anyone asks where the traffic went.
An Invite Before Public Launch
Invites go out from the waitlist before SearchAnalysis.io opens to the public.
Launch Pricing Locked
Your launch price stays locked for as long as you stay subscribed. The price is announced at launch.
An Extended Free Trial
Waitlist members get a longer free trial. Its length is announced at launch.
7-Day Recheck of Every Indexed URL
Every Indexed URL is inspected again every 7 days, and a drop turns amber Not indexed.
Check History With the Drop Date
Every inspection is a dated row with state, coverage state and source.
Index Card, Monitor Filters and CSV Export
24-hour and 7-day change, a 30-day trend, a live state filter and CSV export.