SEO & Performance9 min read

Why Google says "Discovered – currently not indexed" (and how I fixed 19 pages)

Search Console had found every URL on my portfolio and refused to index nineteen of them. The cause turned out to be one line of build configuration. Here is how to diagnose it properly instead of guessing.

Muhammad Qasim, author

Muhammad Qasim

Full Stack Developer · Rawalpindi, Pakistan

About the author

Short answer

It means Google knows the URL exists but has not spent crawl budget on it. Nine times out of ten the page renders empty, duplicates another page's metadata, or has no internal links pointing at it.

01What the status actually means

Google Search Console separates two very different problems under similar-sounding names. "Crawled – currently not indexed" means Googlebot fetched the page, looked at it, and decided it was not worth indexing. That is a content quality signal. "Discovered – currently not indexed" means Googlebot never really crawled it at all — it found the URL in a sitemap or a link and put it in a queue it has not committed budget to.

The distinction matters because the fixes are opposite. The first is a content problem. The second is almost always a technical or architectural one, and no amount of rewriting will move it.

Discovered but not crawled is a crawl-budget decision. Google is telling you it does not think the URL is worth the request.

02The four causes worth checking, in order

I work through these in sequence because the first one invalidates the rest. There is no point auditing content on a page that returns nothing.

  • The page renders empty without JavaScript. Client-rendered single-page apps ship an empty container and rely on Google executing the bundle. Google will do that, but it queues rendering separately and deprioritises it for domains with little authority.
  • Assets fail to load. This is the one people miss. If the bundle 404s, the page is blank even to a crawler that executes JavaScript — and it looks identical to a working page in the HTML source.
  • Metadata is duplicated. If twenty URLs return the same title and description, Google reasonably concludes they are the same document and picks one.
  • No internal links point at the page. A sitemap tells Google a URL exists. Internal links tell Google it matters. Sitemap-only URLs sit in the discovered queue for a long time.

03How to diagnose it in two commands

Stop looking at the page in your browser. Your browser is not the crawler. Fetch the URL the way a crawler does and read what actually comes back.

The first command shows you the raw HTML. If the body is an empty container, cause one applies. The second command extracts the script tag and checks whether that asset actually resolves — this is the step that catches broken asset paths.

On my own portfolio the second command returned a 404. Every project URL was loading its bundle from a relative path, so from a nested route like /projects/some-slug the browser resolved it to /projects/assets/index.js, which did not exist. Nineteen pages were blank white screens in production and had been for weeks. The HTML source looked perfectly healthy.

A relative asset base path is invisible on your homepage and fatal on every nested route. Check the deep pages, never just the root.

04The fixes that actually moved the needle

Absolute asset paths first — that turned nineteen blank pages into working ones. Then static rendering, so every URL returns complete HTML with its own title, description and canonical, and Google never has to queue a render. Then internal linking: a hub page listing every case study, a link-rich footer on every page, and related-work blocks on each detail page.

That last one is underrated. Before the change, my project pages were only reachable through a tabbed interface that rendered a link to one project at a time. Eighteen of nineteen case studies had zero inbound links from anywhere on the site. Adding a proper hub page and cross-links took each one from zero to between three and thirty inbound links.

  • Set the build base path to absolute so nested routes resolve their assets.
  • Statically generate or server-render every route — complete HTML, no rendering queue.
  • Give every URL a unique title, description and canonical.
  • Build hub pages and related-item blocks so nothing is orphaned.
  • Return real 404 status codes. A rewrite that serves your 404 page with a 200 creates soft 404s.

05What to expect afterwards

Once the pages return real HTML and you request indexing in Search Console, individual URLs typically get indexed within one to seven days. A full site-wide recrawl settles over two to six weeks depending on your crawl budget.

Be honest with yourself about what this buys you. Technical SEO removes blockers. It does not create rankings. Once the pages are indexed, competing for commercial terms comes down to content depth and backlinks — and for a new domain, backlinks are the constraint.

TopicsTechnical SEOSearch ConsoleIndexingViteNext.js

Found this useful?

I write these from live project work. Follow along or get in touch if you want this kind of thinking applied to your product.

Quick answers

How long does "Discovered – currently not indexed" take to resolve?+

If the underlying cause is fixed and you manually request indexing, individual URLs are usually indexed within one to seven days. A full recrawl of a small site takes two to six weeks. If nothing changes after a month, the cause has not actually been fixed.

Does requesting indexing in Search Console help?+

Yes, but only after the technical cause is fixed — otherwise you are asking Google to re-look at the same broken page. Google rate-limits manual requests to roughly ten to twelve per day, so prioritise hub pages first since they pass authority to everything below them.

Can a React SPA rank in Google at all?+

Yes, provided each URL returns real HTML through static generation, server-side rendering or build-time prerendering. A purely client-rendered SPA gives Google an empty shell and depends on a rendering queue that low-authority domains often do not clear.

Is a sitemap enough to get pages indexed?+

No. A sitemap tells Google a URL exists; internal links tell Google it matters. Pages that appear only in a sitemap with no inbound links commonly sit in the discovered-not-indexed queue indefinitely.

Keep reading

All articles

Projects behind this article

The production systems where these decisions were made.

All case studies
  • Muhammad Qasim Developer Portfolio — Developer portfolio project preview
    Developer portfolioSEO portfolio

    Muhammad Qasim Developer Portfolio

    A developer portfolio for Muhammad Qasim showcasing SaaS, CRM, dashboard, AI automation and production work

    Read case studyLive
  • CareWinners Care Service Platform — Caregiver marketplace project preview
    Caregiver marketplaceSaaS platform

    CareWinners Care Service Platform

    A US care service SaaS connecting care seekers with caregivers for childcare, elderly and home support, with

    Read case studyLive
  • CallLoom Landing Page — Landing page project preview
    Landing pageSaaS marketing website

    CallLoom Landing Page

    A Next.js marketing landing page for an inbound call tracking system, covering features, pricing and convers

    Read case studyLive
  • Keynou Tools All-in-One Utility Platform — Online tools platform project preview
    Online tools platformSaaS utilities

    Keynou Tools All-in-One Utility Platform

    An all-in-one online tools platform with image, PDF, video, converter, compressor and QR utilities, built wi

    Read case studyLive

Related services

If this describes a problem you have right now, these are the ways I can help.

All services
  • Performance & SEO

    A site that Google cannot render is a site Google will not rank. Most technical SEO failures I find are not content

    Explore service
  • React Development

    Most React problems are not React problems — they are structure problems. I build frontends with a component system,

    Explore service
  • SaaS Development

    Taking a SaaS idea to paying customers means solving multi-tenancy, billing, permissions and analytics before you wr

    Explore service
  • CRM Development

    Off-the-shelf CRMs force your team to work the way the software wants. I build CRM systems around the workflow you a

    Explore service