The short answer
Pages fail to get indexed by Google for one of two reasons: either you have technically blocked indexing yourself — one of the items covered by technical SEO optimization —, or Google decided the page is not valuable enough to deserve a slot in the index. The first group is a one-evening fix. The second takes weeks of work on content and structure.
The point that removes half the panic: indexing is not guaranteed. Google states plainly that it does not promise to index every page on a site — that is a normal operating condition, not a failure. The exact reason for each URL is shown in the Page indexing report in Search Console, and that is the only sensible place to start.
How to find the real cause instead of guessing
The order is exactly this:
- Open Search Console → Indexing → Pages. Below the chart is a list of reasons with the number of URLs against each one.
- Find your pages in that list and read the status wording. That wording is the diagnosis.
- For a specific URL use the URL Inspection tool at the top: it shows whether Google knows the address, when it was last crawled, which canonical Google chose and what the crawler sees.
- Inside URL Inspection, run the live test — it shows the rendered HTML. This matters when content is loaded by scripts and the crawler sees an empty page.
One piece of advice from practice: ignore the total count of indexed pages. It almost always differs from your mental model of the site's size, because technical URLs land there too, and on its own it tells you nothing. Read the report by reason instead.
What the Search Console statuses mean
| Status | What happened | Is it a problem? |
|---|---|---|
| Discovered — currently not indexed | URL is known but was not crawled | Yes, a priority and value issue |
| Crawled — currently not indexed | Page was read and left out of the index | Yes, a content quality issue |
| Page with redirect | URL returns 301 or 302 | No, if the redirect is intentional |
| Blocked by robots.txt | Crawling is disallowed | Yes, if the block is accidental |
| Excluded by noindex tag | Explicit indexing block | Yes, if you did not put it there |
| Alternate page with proper canonical tag | Google picked another URL as primary | No, if the canonical is correct |
| Duplicate: Google chose different canonical | Your canonical was overridden | Yes, a sign of weak uniqueness |
| Not found (404) | The page does not exist | No, if you removed it deliberately |
| Server error (5xx) | The server did not return the page | Yes, fix this first |
A note on the two most common lines. Discovered — currently not indexed and Crawled — currently not indexed are the ones that scare people most, yet they are precisely the statuses that mean there is no technical block. Google sees the URL and chooses not to spend resources on it. That is not a fault to hunt down, it is a judgement to change.
Technical causes: fixable in one evening
The list is short, but you have to walk through it before anything else — while a block is in place, no amount of content work will help.
- The noindex meta tag. The classic story: the site was built on staging with indexing switched off, went live, and nobody unchecked the box. In WordPress it is the reading setting that asks search engines not to index the site. Check by searching the page source for
noindex. - A block in robots.txt. Open
your-site.ee/robots.txtand make sure there is noDisallow: /. And remember the trap: a page disallowed in robots.txt will not be crawled, so Google will never see a noindex tag you placed on it. - A canonical pointing to another URL. If the page carries a
rel="canonical"with a different address, you have told Google yourself that it is secondary. On large sites this is often a template misconfiguration where an entire section canonicalises to its category. On multilingual sites the same template canonicalises secondary language versions onto the primary one - a scenario I unpacked in the article on hreflang setup and common mistakes. - HTTP status. The page must return 200. Check for redirect chains, 404s on live content and intermittent 5xx errors under load.
- Missing from the sitemap and internal links. A page with no inbound links from the site and no entry in the sitemap barely exists as far as the crawler is concerned.
- Content that lives only in JavaScript. Google can render JS, but it does so as a second pass and not always completely. If the rendered HTML shows emptiness where the text should be, indexing suffers.
Server stability deserves its own line. Google states that it reduces crawl frequency when responses are slow or errors appear. I covered the same mechanism in my breakdown of whether site speed affects rankings: for a small site it barely matters, for a store with tens of thousands of URLs it is critical. Moving servers, on the other hand, is nothing to fear: changing hosting does not hurt SEO when the migration is done properly and the redirects are in place.
Quality causes: fixable in weeks
If there is no technical block and pages sit in Discovered — currently not indexed, the conversation is about value. What actually works:
- A unique point, not unique wording. A page that restates what is already in the index in twenty variations gives Google no reason to add a twenty-first. It needs its own angle: your data, your experience, your way of structuring the answer.
- Internal links. A page with no inbound links reads like a draft. Give it a link from a relevant section or article — often that alone moves a URL out of discovered and into the index.
- Fewer pages, denser ones. Ten thin pages built around near-synonyms perform worse than one thorough page. It also removes the cannibalisation risk that proper SEO work is meant to prevent, where two pages compete for the same query and both lose ground.
- Control over generated URLs. Filters, sorting, pagination and parameters spawn thousands of addresses that eat your crawl allowance. Block them with noindex or canonicalise them, and the crawler reaches the pages you care about sooner.
- Overall site freshness. On sites that are updated regularly, new pages get indexed noticeably faster than on dormant ones. The same pattern is easy to see on multilingual projects — I wrote about it in which language to target for SEO in Estonia.
How to speed up indexing for a new page
Discovery can genuinely be accelerated, but the boundary matters: every acceleration tool affects how quickly Googlebot reaches the page, not the decision to keep it in the index. On a weak page, speeding things up just gets you to the refusal faster.
Manual URL submission in Search Console. The simplest free option. Open the URL Inspection tool, paste the address and hit Request indexing — Google puts the URL into a priority crawl queue, and the recrawl usually happens within hours or days instead of weeks. This is the standard step after publishing a new page and after any substantial edit to an old one. The limits: a daily quota on requests, and resubmitting the same URL adds nothing — there is only one queue.
The Telegram bot @BoostIndexBot. It works through Google's Indexing API: you hand the bot a list of URLs, it pushes them straight into the crawl queue and reports the status of each link. In my experience, quality new pages land in the index within 24 hours after such a submission — noticeably faster than waiting for an ordinary crawl. The operative word is quality: pages Google was never going to take will not be forced in by a bot. It accelerates crawling, it does not override the judgement.
In practice the most convenient setup is a combination: bulk-submit new URLs through @BoostIndexBot and keep Search Console for spot-checking and diagnosing individual addresses — that is where you see what Google actually decided.
What acceleration does not do: it does not lift rankings, does not replace internal links and does not rescue thin pages. If a page entered the index within a day and dropped out a month later, the problem was the content, not the crawl speed.
What I see on my own projects
Most of my income comes from my own sites in competitive niches, and the indexing picture there is fairly monotonous: on live projects that get updated regularly, new material enters the index on its own and quickly, while on abandoned sites the very same texts can sit in discovered status for months. The difference is not in the texts, it is in whether the crawler visits the site at all.
The second observation concerns mass-produced pages. Every time I generated a large batch of near-identical pages targeting low-volume queries, Google simply declined to take some of them. No penalty, nothing removed from what was already indexed — the new URLs were quietly ignored. The practical conclusion I drew: page count is worth growing more slowly than the technology allows.
Honest limits. Everything above applies to service sites, small stores and content projects — meaning the typical Estonian small business and my own projects. On sites with hundreds of thousands of URLs, crawl budget logic moves to the foreground and priorities are different: server logs, crawl rate limits, faceted navigation handling. I have no first-hand data at that scale, so I do not write about it.
And honestly about timing. Crawling can be accelerated, and the tools above do exactly that. What cannot be done is forcing Google to index a page it does not want. The distinction is fundamental: submitting a URL cuts the wait from weeks to a day for a page that would have passed anyway, but it does not change the verdict on a weak one. So if someone promises guaranteed indexing of any page for money, they are either selling you something that would have happened anyway or a scheme the site pays for later.
What to do when a page is not indexed
- Check the specific URL's status in the URL Inspection tool in Search Console.
- If the status names a block, remove it: strip the noindex, fix robots.txt, correct the canonical.
- Confirm the URL returns 200 and that all the main content is visible in the rendered HTML.
- Add the page to your sitemap and give it 2–3 internal links from relevant pages.
- If there is no block and the status is Discovered — currently not indexed, rework the content: add what competitors do not have and cut the templated paragraphs.
- Resubmit the URL for crawling: through the inspection tool in Search Console, or as a list through @BoostIndexBot. Once, not every day.
- Wait two to three weeks and check the status again. Drawing conclusions earlier is pointless.
If the page is still out of the index after that, the problem is almost certainly not the page alone but how the site is built as a whole — and that is a web development level task rather than a single-URL fix.
