Need index status for any list of URLs, including backlinks? Check Google index status with SpeedyIndex.
Index check field guide

How to check Google index status without the Custom Search API

For years, many index checkers answered one question — is this URL in Google? — by sending queries through the Custom Search JSON API. That route is closing. If you need to check Google index status without the Custom Search API, the right replacement depends on whose pages you are checking and how many of them there are.

Short version. The Custom Search JSON API is closed to new customers, and existing customers can use it until January 1, 2027. For pages in your own Search Console property, the URL Inspection API is the official source. For backlinks and other pages on sites you do not control, you need a dedicated index checker. The site: operator is a quick look, not proof.

What changed with the Custom Search JSON API

Google's overview page for the Custom Search JSON API now states that the API is closed to new customers. Teams that already use it have until January 1, 2027 to move to an alternative. The page names Vertex AI Search as the option for searching across up to 50 domains, and the API itself still lists 100 search queries per day for free for existing customers.

That matters for index checking because many scripts, spreadsheets and SaaS tools built their "indexed / not indexed" column on top of this API. They sent a query for the exact URL, looked at whether the result came back, and wrote the answer into a report. Once the API stops answering, those reports stop updating — often silently, with every row showing an error or an empty value.

Comparison of four ways to check Google index status: Custom Search JSON API, URL Inspection API, site: operator and a dedicated index checker
The four methods most teams look at after the Custom Search JSON API change.

The four options, side by side

1. URL Inspection API — for your own property

The Search Console URL Inspection API returns Google's own view of a URL: whether it is indexed, the coverage state, the last crawl and more. It is the most authoritative answer you can get, but it has two limits that rule it out for many jobs. First, the inspected URL must belong to the Search Console property you pass as siteUrl. Second, the quota is 2,000 inspections per day and 600 per minute for each site. The details and a planning method are on the page about URL Inspection API limits.

2. Vertex AI Search — for search over domains you configure

Google points Custom Search users to Vertex AI Search when they need search across up to 50 domains. That is a replacement for a search box, not for an index report: it answers queries over content you set up, and it does not tell you whether a page on someone else's site is in Google's index. See Vertex AI Search for index checks for where it fits.

3. The site: operator — for a quick look

Typing site:example.com/page into Google is the oldest manual check there is. Google's documentation is clear that the results of a site: query are not guaranteed to be complete, so an empty result is not proof that a page is missing from the index. The page on the site: operator as an index check explains how to use it without drawing the wrong conclusion.

4. A dedicated index checker — for backlinks and large lists

When the URLs belong to other sites — guest posts, profiles, Web 2.0 pages, links bought or earned — Search Console cannot help, because you cannot add someone else's domain to your account. This is the job dedicated checkers are built for: you upload a list, they return a status per URL. If you prefer to automate it, the guide to a bulk index check in Python shows a script structure that works with any provider.

Choose by the job, not by the tool

Migrating an existing checker

If you maintain a script or an internal tool that depends on the Custom Search JSON API, plan the move before the deadline rather than after the first failed run.

  1. Inventory the calls. Find every place that sends a query to the API: cron jobs, spreadsheet add-ons, dashboards, client reports.
  2. Split the URL lists by owner. URLs in properties you control can move to the URL Inspection API. URLs on third-party sites need another checker.
  3. Swap the data source behind one function. Keep the rest of the pipeline — input lists, storage, alerts — unchanged, so the switch is a small, testable change.
  4. Run old and new side by side on the same sample while you still can, and compare the results.
  5. Remove the old key once the new source has run cleanly for a few cycles.

A longer walkthrough of the API side, including request and response shapes, is collected in this hub on the index checker API after the Custom Search shutdown. For a non-technical view of the same move, there are step-by-step migration notes written for teams that rely on reports rather than code.

What to do when a URL is not indexed

An index check is only useful if it leads to an action. When a page you care about comes back as not indexed, work through the usual causes before you resubmit anything:

Fix the cause first, then check again after a reasonable interval. Rechecking the same URL every hour adds load without adding information.

Guides on this site

FAQ

When does the Custom Search JSON API stop working?

It is already closed to new customers. Google says existing customers have until January 1, 2027 to transition to an alternative.

Can the URL Inspection API check backlinks?

No. The URL you inspect must be under the property you pass as siteUrl, so pages on other domains are out of scope.

Is an empty site: result proof that a page is not indexed?

No. Google states that site: results are not guaranteed to be complete. Use it as a hint and confirm with a dedicated check.

Sources