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.
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.
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.
"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.
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.
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.
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.
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.
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.
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.
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.
How the Indexing Check Runs
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.
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.
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.
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.
Indexing Checker Use Cases
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.
Post-Deploy Sanity Check
Inspect the page you just shipped instead of waiting a week for it to appear in the performance report.
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.
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.
Large Content Libraries
Run the check across the sitemap in batches to find the share of the archive Google has quietly dropped.
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.
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.
More of the SEO engine
Every feature runs from the same Skill in your repo — install once, get all of it.
Find Out How Much of Your Site Google Indexed
Install the SEOAgent Skill, connect Search Console with the free account, and run `seoagent indexing`.