Google is not indexing your pages: 6 causes and how to fix them
The article went live three weeks ago, you type the exact headline into Google, and nothing comes back. This is the single most common complaint we hear when auditing small business websites, and almost every time the answer is already sitting in the Search Console page indexing report - the owner just does not know what that status line means. Here are the six most common causes and how to treat each one.
Quick summary: "Not indexed" is not one bug but six very different situations: the page is too new for Google to have crawled it, Google read it and judged it not worth indexing, the page was folded into a near duplicate or a canonical points elsewhere, it was accidentally blocked by noindex or robots.txt, it is an orphan with no internal links pointing at it, or a technical fault such as a soft 404 or a redirect. Each has its own fix, and treating the wrong one leaves the page stuck forever. The first step is always to open Search Console, run the URL through the inspection tool, and read the exact status name before touching anything.
First, separate crawling from indexing
These two are routinely treated as one thing, which is exactly why people fix the wrong problem. Crawling is Googlebot fetching the page to read it. Indexing is Google deciding to store that page so it can be ranked. A page can be crawled but never indexed, and conversely a page blocked from crawling can still show up in search results if other sites link to it.
That is why two nearly identical looking statuses in Search Console mean opposite things. Discovered - currently not indexed means Google knows the URL exists but has never fetched it, usually a matter of server speed and crawl priority. Crawled - currently not indexed means Google already read the content and chose not to index it, which points at content quality or distinctiveness. Misread one word and you spend a month heading the wrong way.
| Status in Search Console | What is actually happening | What to do |
|---|---|---|
| Discovered - currently not indexed | Google knows the URL but has not crawled it | Speed up the site, add internal links pointing at it, wait |
| Crawled - currently not indexed | Content was read but not selected for the index | Go deeper, add an original angle, merge overlapping posts |
| Duplicate without user-selected canonical | Google folded this page into a near identical one | Declare a clear canonical or rewrite for real difference |
| Excluded by noindex tag | The page declares it does not want to be indexed | Remove the noindex tag if this page should rank |
| Indexed, though blocked by robots.txt | Crawling is blocked but external links pulled it in | Unblock in robots.txt first, then apply noindex |
| Soft 404 | Returns a 200 code while the content is effectively empty | Add real content or return a proper 404 or 410 |
Status names follow the English interface of the page indexing report. The Vietnamese interface shows the same states as "Đã phát hiện - hiện chưa được lập chỉ mục", "Đã thu thập dữ liệu - hiện chưa được lập chỉ mục", "Trang trùng lặp, người dùng chưa chọn trang chính tắc", and so on.
Cause 1: the page is simply too new
This is the most benign case and the one that triggers the most unnecessary panic. On a young site with few backlinks, Google allocates crawl capacity very conservatively, so a freshly published post can sit at Discovered for weeks. Google commits to no timeline at all.
One detail is worth knowing: a major reason Google delays crawling is a slow server. Google deliberately throttles crawling on sites that respond slowly so it does not overload them, which means a sluggish site gets fewer pages visited and indexed. If you have a pile of URLs stuck at Discovered, check server response time before you blame the writing; the order of priorities is covered in website speed and Core Web Vitals: what to fix first.
The action list is short: make sure the URL is in sitemap.xml, give it two or three internal links from pages that are already indexed, then leave it alone. Requesting indexing once is enough - the tool only queues the URL and carries a daily quota, so pressing it ten times moves nothing.
"Crawled - currently not indexed" is the most frustrating line in Search Console. Stock photo (CC0).
Cause 2: Google read it and judged it not worth indexing
When the status reads Crawled - currently not indexed, Googlebot fetched the page, read the content, and Google's systems concluded it does not add enough value to earn a slot in the index. This is nearly always a quality issue rather than a technical one.
The content type that attracts this status most is what SEO practitioners call commodity content: writing that repeats what hundreds of other pages already say on the same topic, with no original data, no distinct viewpoint, no concrete example. On small business websites the three usual suspects are SEO filler written to hit a word count, category pages carrying nothing but product names and prices, and mass duplicated location pages where only the district name changes.
The fix is not to write longer but to write differently: add numbers you measured yourself, add real photographs from your own work, answer the question competitors avoid. If three posts cover the same topic and none of them gets indexed, the best move is usually to merge all three into one substantial piece and redirect the two old URLs to it.
Cause 3: duplication and canonicals pointing the wrong way
When Google sees several URLs with near identical content it picks one as the representative and skips the rest. If you never declared which one is primary, Google decides for you and the report shows Duplicate without user-selected canonical. A page dropped because its canonical points to another URL shows as Alternate page with proper canonical tag - usually normal and nothing to fix.
Common sources of duplicate URLs on small business sites: one product reachable through several category paths, filter and sort parameters spawning endless variants, versions with and without a trailing slash, http alongside https, and campaign URLs carrying UTM tags. That last one bites hardest during ad campaigns, which we cover in UTM tracking for SMEs: knowing where orders come from.
The fix: give every page a canonical pointing at its own clean URL, standardise on one URL shape across the site, and keep only canonical URLs in the sitemap. Do not use canonicals to link two genuinely different pages - Google is free to ignore a declaration that makes no sense.
Cause 4: accidentally blocked by noindex or robots.txt
This group does damage fastest because it typically happens right after a redesign or a server move. The classic scenario: the site is built on a staging domain with a site wide noindex so nothing leaks, and nobody removes it at launch. The whole website vanishes from Google and no one can explain why.
The second trap is far subtler, and Google's documentation states it plainly: for the noindex rule to work, the page must not be blocked by robots.txt. The logic is simple - if robots.txt blocks it, Googlebot never fetches the page, never sees the noindex rule, and the page can still appear in search results when other sites link to it. That is exactly the Indexed, though blocked by robots.txt status. Many owners react to it by tightening robots.txt further, which is precisely backwards.
- To keep a page out of Google: allow crawling in robots.txt and serve a meta noindex tag on the page.
- To reduce server load without hiding content: blocking a heavy directory in robots.txt is enough.
- To truly hide internal content: put it behind a login, never rely on robots.txt.
- Never apply a robots.txt block and a noindex tag to the same URL at once.
Google's own documentation also says robots.txt exists mainly to avoid overloading a site with requests, not as a mechanism for keeping a page out of search results. This is the single most misunderstood point in the whole indexing topic.
Cause 5: orphan pages nothing links to
Google mostly discovers new content by following links. A page that appears only in the sitemap, with no internal link pointing at it, sends a very weak signal: the sitemap tells Google the page exists, but nothing tells Google it matters. The usual outcome is a long stay at Discovered, or getting indexed and then quietly fading.
The pages most likely to end up orphaned are landing pages built for a single ad campaign, older posts pushed off the category listing by newer ones, and secondary service pages mentioned only in a dropdown menu. The free way to check is to compare the URL list in sitemap.xml against the Internal links report in Search Console: a URL present in the sitemap but absent from the links report is your prime orphan candidate. The three tier model for wiring a whole site back together is described in internal linking for small websites: an easy 3 tier structure.
Cause 6: technical faults that disqualify the page
The final group covers pages sending signals that contradict themselves:
- Soft 404. The page returns a successful 200 code while the content is effectively an empty page, an out of stock notice, or a no results found screen. Google treats it as worthless. Fix it by adding real content, or by returning a proper 404 or 410 if the page is genuinely gone.
- Page with redirect. The old URL redirects, so it is not indexed itself and the destination is stored instead. Normal, unless you accidentally redirected a page you meant to keep.
- Content that only appears after JavaScript runs. If the raw HTML is nearly empty and all the text is loaded by JavaScript, indexing depends on the rendering stage and can be slow or fail. Check it with live URL inspection in Search Console and read the rendered HTML tab.
- Server errors when Googlebot visits. Intermittent 5xx errors may never affect real users yet are enough to make Google postpone crawling. The Crawl stats report exposes those bursts.
Logging how many pages are indexed each week catches incidents far earlier than waiting for traffic to drop. Stock photo (CC0).
A 7 step self check when a page will not appear
- Run the URL through the inspection tool in Search Console and read the exact status name shown.
- If it says Excluded by noindex tag or involves robots.txt, fix the blocking first and leave everything else.
- Check that the page's canonical points at itself and that the URL is present in sitemap.xml.
- Count the internal links pointing at the page; if fewer than two, add some from the relevant pillar page.
- Open the rendered HTML tab to confirm the main content exists in the page Google actually sees.
- If the status is Crawled - currently not indexed, stop the technical work and rewrite the content for genuine difference.
- Only after fixing, request indexing once, note the date, and check back in 10 to 14 days.
One note on scope: being indexed is only a necessary condition. A page in the index can still get zero impressions if nobody searches that phrase, or if AI Overviews has taken the answer slot at the top of the results page. How to track impressions and clicks weekly is covered in reading Google Search Console: 4 reports to check every week. To sweep the technical and GEO signals of a page quickly, run the free SEO and GEO audit tool from Chạm AI.
Frequently asked questions
How long does Google take to index a new page?
There is no fixed timeline. A new page on an established site with good internal linking is usually indexed within a few days, while a new site or a page with few links pointing at it can take weeks. In Search Console, Discovered - currently not indexed means Google knows the URL exists but has not crawled it yet, whereas Crawled - currently not indexed means Google has already read the content and chose not to index it. If four weeks pass with no result, fix the underlying cause rather than pressing request indexing again and again.
Does blocking a page in robots.txt remove it from Google?
No. Google documentation states that robots.txt is mainly used to avoid overloading your site with requests, not as a mechanism to keep a page out of search results. Worse, if a page is both blocked in robots.txt and carries a noindex tag, Google can never read that noindex tag, so the page may still appear when other websites link to it. To remove a page from Google you must let Googlebot crawl it and serve a noindex tag, or put the page behind a login.
Does requesting indexing repeatedly make a page index faster?
No. The URL inspection tool in Search Console only places a URL in the crawl queue and carries a daily quota; resubmitting the same URL does not move it up the line. If the page is judged thin, duplicated or has no internal links pointing at it, resubmitting will not help at all. The effective route is to fix the real cause first and submit once afterwards.
Sources: Google Search Central documentation on blocking indexing with noindex and on robots.txt; Search Console help pages for the page indexing report; practitioner analyses of the Crawled and Discovered currently not indexed states from Search Engine Journal and Onely (2026).