Features/Indexing Checker

Find Out Which Sitemap URLs Google Left Out of Its Index

`seoagent indexing` fetches your live sitemap.xml, asks Google Search Console for a URL Inspection verdict on each URL, and writes `.seoagent/audit/indexing.md` with the indexed pages, the not-indexed pages and the coverage state Google gave for each one.

See pricing
Verdicts come from Search Console, not a guessRead-only: nothing is changed on your siteWorks on the free account that connects GSC
01 — The problem

Why Not-Indexed Pages Go Unnoticed

A page that Google never indexed produces no impressions, no clicks and no error. It looks exactly like a page that nobody searches for, so the fix you reach for is more content rather than the reason the page is missing.

Problem 01

Search Console Shows You One URL at a Time

The URL Inspection box in Search Console answers for a single page. Checking forty pages means forty pastes and forty waits, so in practice nobody checks more than the handful they already suspect.

Problem 02

Zero Impressions Reads as a Content Problem

A page with no impressions gets rewritten, re-optimized and given new keywords. If Google never indexed it, none of that work changes anything, because the page was never eligible to rank.

Problem 03

"Discovered" and "Crawled" Are Not the Same Failure

Discovered - currently not indexed means Google has the URL and has not fetched it. Crawled - currently not indexed means it fetched the page and declined to index it. The first is a crawl budget or linking problem, the second is a page quality one, and they need opposite fixes.

02 — What SEOAgent does

How SEOAgent Checks Indexing Coverage

One command over the whole sitemap, with Google as the source of every verdict, written to a file your coding agent can read.

01

The Whole Sitemap, One Command

`seoagent indexing` downloads your live /sitemap.xml and inspects the same-origin public URLs it lists, homepage first. The default run covers 30 URLs; `--max` raises it to 200, which is the per-run ceiling because URL Inspection has a daily API quota.

02

Verdicts Come From Search Console

Each URL gets an authoritative Search Console URL Inspection result: the index status, the coverage state in Google’s own words, the canonical Google picked, the last crawl time, and the robots and fetch state. None of it is inferred from crawling your site.

03

The Report Lands in Your Repo

Results are written to `.seoagent/audit/indexing.md`, grouped into not indexed, indexed, inspection errors and not inspected. Your coding agent reads that file the same way it reads the rest of the audit.

04

Uninspected URLs Are Never Given a Verdict

When the sitemap holds more URLs than the run’s cap, the remainder are listed under "Not inspected" and carry no claim either way. A finding is only stated for a URL Google actually answered for.

05

Single Pages, Including From Chat

One-off URL inspection answers for a single page and is available in the CLI, in cloud chat and to autopilot, so you can check a page you just deployed without re-running the sitemap pass.

06

It Feeds the Audit

The Phase 1 audit folds the indexing findings into `.seoagent/audit/latest.md`, so a not-indexed page shows up beside the technical and content findings instead of in a separate report you have to remember to open.

03 — How it works

How the Indexing Check Runs

1/ 4

Connect Search Console

`seoagent login` creates the free cloud account and connects Google Search Console. The verdicts come from your own GSC property, so this step is required — the indexing check is the one part of the audit that cannot run offline.

2/ 4

Run the Check

`seoagent indexing` resolves your origin from `.seoagent/project.md`, fetches the live sitemap and inspects the URLs in batches. `--url` points it at a different origin or sitemap, `--max` sets how many URLs to cover, and `--json` prints the same result for scripting.

3/ 4

Read the Coverage States

Open `.seoagent/audit/indexing.md`. The not-indexed table gives Google’s coverage state per URL, which is what tells you whether the page was never fetched, was fetched and passed over, or was blocked.

4/ 4

Fix, Then Re-run

Your coding agent makes the change in your repo — internal links to an orphaned page, a robots or canonical correction, a rewrite of a thin one — and you approve it before anything is written. Re-run the command after the deploy to see whether the verdict moved.

04 — Use cases

Indexing Checker Use Cases

SaaS

A New Section Gets No Traffic

Before rewriting twenty new pages, check whether Google indexed any of them. "Discovered - currently not indexed" across the set points at internal linking, not at the copy.

Developer Tools

Post-Deploy Sanity Check

Inspect the page you just shipped instead of waiting a week for it to appear in the performance report.

Startups

After a Migration

Confirm the new URLs are being indexed and see which canonical Google chose for each one, which is where a migration quietly goes wrong.

Agencies

Auditing a Client Site

Open an audit with a coverage number backed by Search Console rather than a site: query, and hand over the per-URL table as evidence.

Content

Large Content Libraries

Run the check across the sitemap in batches to find the share of the archive Google has quietly dropped.

Marketing

Before Asking for More Content

If a meaningful share of what you publish never gets indexed, publishing more is not the next move. The coverage report is the number that settles that argument.

05 — FAQ

Frequently asked questions

Do I need a paid plan to check indexing?

No. It needs the free account, because the verdicts come from Google Search Console and that requires a connected GSC property. Run `seoagent login`, connect Search Console, then `seoagent indexing`. Unlike the sitemap and robots checks, this one cannot run fully offline.

How many URLs does one run cover?

Thirty by default, and up to 200 with `--max`. The ceiling is there because Search Console’s URL Inspection API has a daily quota per property. URLs beyond the cap are listed in the report as not inspected rather than being given a verdict.

Where do the URLs come from?

Your live sitemap.xml, so the check covers the pages you are actually asking Google to index. Same-origin public URLs are inspected, homepage first, otherwise in sitemap order. If no sitemap can be parsed, the command inspects the homepage and says so.

What does "Crawled - currently not indexed" mean?

Google fetched the page and decided not to index it. That is Google’s own coverage state, passed through unchanged. It usually points at the page itself — thin or duplicated content, or a near-identical page Google preferred — rather than at a crawling problem.

Can SEOAgent submit my pages for indexing?

No. It reads Search Console verdicts; it does not push URLs to Google for indexing. What it gives you is the list of pages that are not indexed and the reason Google recorded, so the fix goes into the repo.

Does it change anything on my site?

The check is read-only. It fetches your sitemap, reads verdicts from Search Console and writes one report file into your working tree. Any fix that follows is a diff you review, approve, commit and deploy yourself.

Can I run it in CI?

`--json` prints the coverage summary and per-URL results, so you can run it on a schedule and act on the output. Keep an eye on the daily URL Inspection quota if you point it at a large sitemap.

Find Out How Much of Your Site Google Indexed

Install the SEOAgent Skill, connect Search Console with the free account, and run `seoagent indexing`.

~/your-site $npx -y @seoagent-official/seoagent init
See pricing