A page that is not in Google's index cannot rank for anything, no matter how good it is. Before you touch anything, confirm the page is actually unindexed, then walk this list from the top. It is ordered by how often each cause turns out to be the real one.
Open Google Search Console, paste the full URL into the URL Inspection bar at the top, and read the verdict. That is the authoritative answer, straight from Google's index. The site: search operator is a rough approximation at best; it misses indexed pages and shows stale ones, so never diagnose from it alone.
Search Console will usually name the status directly, and two of them are so common they have their own guides: "Crawled - currently not indexed" (Google read the page and declined, a content problem) and "Discovered - currently not indexed" (Google has not even crawled it, a priority problem). If you see either, go to those guides; otherwise, continue here.
Google discovers pages by recrawling links and sitemaps on its own schedule. A new page on a small site can wait weeks just to be noticed. Fix: submit it: URL Inspection tool for one page, sitemap with an accurate lastmod for the site, or an automatic indexing service that submits every new page within minutes of publishing.
Google read the page and decided it adds nothing the index does not already have. This is the #1 verdict-type cause. Fix: add unique substance or consolidate weak pages into one strong one. Details in the Crawled-not-indexed guide.
If nothing on your own site links to the page, you have told Google it does not matter. Fix: link to it from your homepage or strongest relevant pages with descriptive anchors.
One meta tag, <meta name='robots' content='noindex'>, silently removes a page from consideration. Theme settings, SEO plugins, and staging leftovers plant these constantly. Fix: view source, search for "noindex", remove it, resubmit. URL Inspection reports this explicitly as "Excluded by noindex tag".
A Disallow rule stops Googlebot from crawling the page at all. Fix: check yourdomain.com/robots.txt and Search Console's robots.txt report. Note the trap: robots.txt blocks crawling, not indexing, so a blocked URL can appear in results with no description; for true exclusion use noindex, and for inclusion remove the block.
If the page's canonical tag names a different URL, you asked Google to index that one instead. CMSs and page builders set stray canonicals more often than people think. Fix: make the canonical self-referencing on pages you want indexed. URL Inspection shows "Google chose different canonical" when Google overrode you.
A URL that redirects, returns an error, or renders a near-empty "nothing here" page will not be indexed as itself. Fix: make the URL return a real 200 page with substance; URL Inspection's live test shows what Googlebot actually received.
Brand-new domains index slowly across the board because nothing links to them yet. Fix: a few legitimate external links (business profiles, directories, partners, social profiles) plus direct submission accelerate the cold start dramatically.
Faceted navigation, filters, and parameter pages can generate millions of URLs that soak up Googlebot's time on large sites. Fix: block the generators in robots.txt, noindex the leftovers, keep the sitemap canonical-only. See the Discovered-not-indexed guide.
If the page is blank until a JS app boots, indexing depends on Google's second rendering pass, which is slower and less forgiving. Fix: server-side render or pre-render pages that matter for SEO; test with URL Inspection's "View crawled page" to see the HTML Google got.
Googlebot backs off from sites that respond slowly or error under crawl load, delaying everything. Fix: get response times into the low hundreds of milliseconds; check Crawl Stats in Search Console for average response time and error trends.
Rare, but terminal until resolved. Fix: Search Console's Manual actions and Security issues reports tell you if this is the case. If they are clean, your issue is on this list somewhere above.
Zeneth Indexer handles causes #1 and the verification loop end to end: it watches your sitemap every 10 minutes, submits new and changed pages through the official Google Indexing API (plus Bing, Yandex, Naver, and Seznam free via IndexNow), verifies each page against Google Search Console data, and alerts you when a page indexes or gets stuck for 7 days. The content and technical fixes above stay your job; everything mechanical becomes ours.
Auto-submit in 10 minutes, verify with Search Console data, get alerted on stuck pages. Credits from $3, no subscription.
Get Started →