← All posts

Why Is My Page Not Getting Indexed? 12 Real Reasons

Why Is My Page Not Getting Indexed? 12 Real Reasons

A page that refuses to appear in Google feels like one problem with one fix. In practice, “why is my page not getting indexed” has at least twelve honest answers, and they call for different fixes. Some are instructions you gave Google without noticing. Some are judgements Google made after fetching the page. Some only mean Google has not properly looked yet. The quickest way out is not to try remedies at random. Work out which of the three families your page sits in, then test the handful of reasons inside that family. Here are all twelve, grouped exactly that way.

Reasons 1 to 4: you told Google not to index it

These are the mechanical causes. They are also the most common, because they are easy to set and easy to forget.

1. A noindex meta tag. One line in the head of the page, often left over from a staging build or set by a plugin default, and Google will keep the page out of the index reliably. Google’s documentation on blocking indexing with noindex is unambiguous: the instruction is honoured. Check the rendered source, not the template you think is deployed.

2. An X-Robots-Tag header. The same instruction, delivered by the server instead of the HTML, so nothing in the page source reveals it. Inspect the response headers with curl or your browser’s network tab. CDNs and reverse proxies sometimes attach it to whole path patterns without anyone remembering why.

3. A robots.txt disallow. Subtler than it looks. A disallow does not remove a page from the index; it stops Google fetching the page at all, which means Google cannot see the content or any noindex tag on it. The full shape of that trap is in the robots.txt disallow post.

4. A canonical pointing elsewhere. If your page declares another URL as canonical, you have asked Google to index that other URL in its place. Consolidation is the designed behaviour, as Google’s guidance on duplicate URLs sets out. Read the tag carefully on parameterised, paginated and localised pages, where templates get it wrong quietly.

Reasons 5 to 8: Google looked and declined

Here Google fetched the page, evaluated it, and decided against indexing it, at least for now.

5. Google chose a different canonical. Even with no canonical tag, Google groups pages it considers duplicates and indexes one of them. If your page is near-identical to another, yours can be the one left out. Canonicalization covers how the choice is made and how to influence it.

6. A soft 404. The page returns a 200 status but reads like an error to Google: an empty search-results page, a placeholder, a listing with nothing left on it. Google treats it as a 404 in practice and excludes it.

7. The content is thin. Google indexes pages it considers worth returning to a searcher. A heading, two sentences and a sign-up button give it little reason. The register Google describes in creating helpful content is the bar; a page that exists mainly to hold a keyword rarely clears it.

8. The URL does not actually return the page. An intermittent 5xx, a redirect chain, a page that expired last month. Google indexes what a URL serves, and a URL that serves errors or forwards traffic elsewhere gives it nothing to keep.

Reasons 9 to 12: Google has not properly looked yet

Nothing is blocked and nothing was rejected. The visit has not happened, or has not finished.

9. No internal links point to it. An orphan page can be discovered through a sitemap, but a page the site itself does not link to looks unimportant, and Google prioritises accordingly.

10. The site is new. A young domain has no crawl history, so Google explores it cautiously. This is not a penalty. It is an absence of evidence, and it resolves as the site accumulates pages, links and visits.

11. The content needs JavaScript. If the meaningful content only exists after scripts run, indexing waits on Google’s rendering queue, and a rendering failure can leave Google seeing an empty shell.

12. It is simply not yet. Google is explicit in How Search works that not every page gets crawled promptly and not every crawled page gets indexed. Submitting asks Google to look. It does not oblige Google to act on a timetable, and a quiet page on a quiet site can sit in the queue for weeks.

Finding out why your page is not getting indexed

The reasons above suggest an order of checks that takes minutes, not days. Read the rendered source for a noindex tag. Read the response headers for X-Robots-Tag. Test the URL against robots.txt. Read the canonical tag. Confirm the URL returns 200 with the content visible. If the site is verified in Search Console, the Page indexing report will name the state Google has assigned, which usually narrows twelve reasons to two.

Then verify against live results rather than trusting a submission receipt. This is the distinction AIndexify is built on: it records submitted and indexed as separate events, rechecks each URL against live Google results on a schedule, and its preflight catches noindex, robots blocks and 404s before a check is billed, marking the URL Couldn’t check and refunding the credit. A blocked page reported honestly is worth more than a green tick that only means delivery happened.

If several reasons seem to apply at once, fix the explicit blocks first, then the content judgements, then wait out the queue. For the wider map, from discovery through crawling to the index itself, the ultimate guide to Google indexing walks the whole pipeline in order.

Guesswork is the expensive part of this problem. See where your pages actually stand: submit your URLs and read back, with dates, what Google has done with each one.

Sources