Discovered currently not indexed: causes and checks
Sites with thousands of unindexed URLs usually have one dull cause. This table lists the usual ones in the order we would check them.
Symptom, likely cause, first check
| Symptom in Search Console | Likely cause | First check |
|---|---|---|
| Discovered, not indexed on many new URLs | Google knows the URL but has not spent crawl time on it | Count internal links to the page; deep pages get skipped |
| Crawled, not indexed | Page seen and judged low value or duplicate | Compare against the page ranking for the same query |
| Google chose a different canonical | http and https, or www and non-www both live | Fetch both versions and look for a 301 |
| Staging site appears in results | Staging was never blocked or authenticated | Search site:staging.yourdomain.com |
| Sudden spike of excluded URLs | Parameters or faceted navigation generating URLs | Look at sample URLs in the report |
| Googlebot errors on only one subdomain | Firewall or rate limiting by the host or Cloudflare | Read the server log for 429 and 403 responses |
Where backlinks fit in
A link from another site is a discovery path. Google follows it, which can pull a page out of the discovered queue sooner.
That does not make a link an indexing switch. A page with no internal links and one stray backlink is still a weak candidate, and Google has said plainly that it does not index everything it finds.
Use toppages to see which of your URLs attract links, then confirm those exact URLs are indexed. Linked yet missing from the index is a flag worth a day's work.
How to tell link depth from quality
A page that is discovered but not crawled is usually a priority problem. Google has the address but sees little reason to hurry, often because few internal paths lead there.
A page that is crawled but not indexed is a judgement. Google read it and did not want it, so more links will not fix thin or duplicate text.
Frameworks add a third cause. Next.js and React sites sometimes ship text that only appears after JavaScript runs. Fetch the raw HTML with cURL and see whether your text is in it. If not, server-side rendering or prerendering is the fix, and the recipe for keeping URLs stable applies when you change stacks.
Bing and Yandex have their own queues, so check Bing Webmaster Tools before assuming the problem is yours alone.
Order of work
- Inspect one affected URL and note whether it says 'URL is on Google'.
- Open the sitemap and confirm it returns HTTP 200 on the canonical host.
- Check robots.txt as Googlebot would see it, not as your browser does.
- Count internal links in, and keep important pages within three clicks of home.
- Remove thin template pages that exist only to be indexed.
- Wait a few weeks after fixes; indexing rarely settles overnight.
Hosting and bot-blocking traps
Hostinger, Cloudflare and similar layers sometimes rate-limit Googlebot while serving humans perfectly. The site looks fine to you and flaky to the crawler.
Read the raw access log for 403, 429 and 5xx responses to user agents containing Googlebot. Verify those hits by reverse DNS, since many scrapers fake the name.
AI crawlers are a separate decision. Blocking GPTBot or ClaudeBot in robots.txt does not touch Googlebot, but a careless wildcard rule can. Test the file after each edit.
Staging copies need care. When one is the problem, put it behind a password and request removal in Search Console. A noindex tag alone can be undone by one deploy. See the recipe on redirects before consolidating hosts.
Which linked URLs are you missing?
Two credits returns up to 1,000 rows.
curl "https://rankbrainmarketing.link/api.php?action=toppages&q=yourdomain.com&per=1000&key=sk_live_..."Fixes can take weeks to show. Index status and our monthly link refresh will not move on the same day, so compare like with like.