GSC status

How to fix “discovered — currently not indexed”

Google has the address and has not retrieved the page. This is not a quality verdict after a fetch. If URL Inspection shows a last crawl date, you are in the wrong status — use the crawled page instead.

Discovered is not crawled

No fetch has happened

Inspection: discovered (or referred) date may be set; last crawl is empty. Until Googlebot gets a 200, none of the quality or duplicate tables apply.

What we can see without Googlebot

HTTP status, robots.txt Disallow, sitemap membership, and inlink count among pages we have fetched. Those are the three causes below.

Cause → check → fix (never-fetched, not declined-after-fetch)

Do not treat a 200 on our IndexNow page — or a 200 from the IndexNow endpoint — as proof this URL is indexed on Google. It is not.

Cause Check Fix
URL missing from the sitemap Fetch the sitemap you submitted in Search Console and look for this exact href. Diagnose does not parse your sitemap on this check; you have to. A URL that is only advertised via IndexNow is invisible to Google. Add the URL. Submit the sitemap once if you have not. lastmod updates can help discovery; they do not skip the crawl.
Zero internal links (orphan) Diagnose walks a shallow link graph of tracked pages. inlinks = 0 on a submitted URL produces the next action “add a contextual or hub link, then resubmit.” Link it from a page Google already crawls — a hub, nav, or related article. Then request indexing. Related: the indexing path.
robots.txt preventing the first fetch diagnose_robots_blocks() tests the path against the Googlebot group if present, otherwise *. An empty Disallow line is allow, not block. If this check is true, Google can discover the URL and still refuse to crawl it. Unblock the path. See blocked by robots.txt. Do not keep submitting a Disallowed URL.
Host is new, slow, or returning 5xx / timeouts on first fetch Diagnose fetch: HTTP 0 (unreachable) or 5xx. Googlebot that hits the same thing will leave the URL in discovered (or drop it later). Make a public 200 HTML response before asking for a crawl. Fix DNS, TLS, and origin errors first.

Get it fetched, then reassess

1

Unblock and list it

robots.txt allow + sitemap entry. Without both, discovery can stall indefinitely.
2

Give it a real inlink

Sitemaps are bulk discovery. A link from a crawled page is the stronger crawl hint.
3

Request a crawl, then wait for a last-crawl date

URL Inspection → Request Indexing, or the Indexing API. When last crawl is set and it still is not indexed, switch to crawled — currently not indexed.

Common questions

Related: All indexing issues · Duplicate without user-selected canonical · Alternate page with proper canonical tag · Crawled — currently not indexed · Soft 404 · Excluded by noindex tag · Blocked by robots.txt

What does “discovered” mean if it was never crawled?

Google learned the URL exists — usually from a sitemap or an internal link — and has not fetched it yet. There is no last-crawl date. That is the whole difference from crawled-not-indexed.

I submitted it with IndexNow. Why is Google still on discovered?

Google does not use IndexNow. A successful IndexNow POST tells Bing, Yandex, Seznam and Naver. It does not move a URL through Google's crawl queue. Our own IndexNow explainer is not evidence that any given URL is in Google's index.

Is an orphan page enough to cause this?

It is the most common cause we see. Diagnose counts inlinks among tracked pages; zero inlinks on a submitted URL is a concrete next action: add a contextual or hub link, then resubmit.

Can you guarantee Google will crawl it once I add the link?

No. We submit and measure. Nobody can guarantee Google indexing — and this status is about crawl, which is earlier than indexing.

Submit it, then see whether Googlebot ever arrived.

We record coverageState on a decaying schedule — including discovered vs crawled. 25 free, no card.

Start free