lintpage
~/not-showing-up-on-google
§ indexing · 3 checks, in masking order

Why is my website not showing up on Google?

Almost always one of three things: a robots.txt rule blocking the crawl, a noindex directive telling Google to stay out, or a URL Google has never found. They are easy to tell apart once you check them in the right order, and you do not need Search Console open to do it.

§ find the cause

Check the page that is missing.

This runs the three checks that account for almost every page missing from Google, in the order that one masks another, and stops at the first real blocker. You do not need Search Console open.

  1. 01Is robots.txt blocking the crawl?
  2. 02Is the page telling Google not to index it?
  3. 03Does Google know this URL exists?
what this proves

What your server returns right now to a request carrying Googlebot’s user agent: whether robots.txt allows the URL, whether a noindex directive is present in the HTML or the headers, and whether the URL is reachable from your sitemaps or homepage.

what it cannot prove

That Google will index the page. We cannot request from Google’s IP ranges, so an edge rule that blocks the real Googlebot can still be invisible here, and we cannot see what Google decided or when it last crawled. A clean result means nothing technical is in the way, not that indexing is coming.

§ indexed vs ranking

First, which problem do you have?

Search Google for site:yourdomain.com/the-page-that-is-missing, with the full path of the page you are looking for. This one query splits the problem in two, and the two halves have nothing in common.

Nothing comes back. That URL is not in the index. Something is either blocking Google or Google has never found it, and that is what the check above diagnoses.

The URL comes back, but not for the terms you want. It is indexed and you have a ranking problem instead. That is a different discipline with different fixes, and nothing on this page will move it.

Ask the same question about the bare domain (site:yourdomain.com) only to find out whether Google has anything from the site at all. It cannot answer the question above: a domain that returns plenty of results still tells you nothing about the one page that is missing from them.

The rest of this page assumes the first case.

§ the order

Why the order of these checks matters.

Checking for a noindex tag first seems like the obvious move, and it produces a confidently wrong answer often enough to be worth explaining.

A robots.txt block stops Google fetching the page at all. If the page cannot be fetched, its noindex cannot be read, by Google or by anyone else. So a noindex check run against a blocked URL reports “no directive found” and means nothing by it. Worse, the two failure modes look identical from outside and have opposite fixes: a URL blocked in robots.txt can sit in Google as a bare link with no description precisely because the noindex you added was never seen.

So robots.txt is ruled out first, noindex second, and discovery last, because discovery is only a real question once you know the page can be fetched and is allowed to be indexed. The check stops at the first blocker it reproduces, since everything after it would be measured through the thing already in the way.

§ every reason google gives

If Search Console already named it.

The check above finds the cause when you have nothing to go on. If you do have Search Console open, skip the diagnosis and go straight to the reason it printed. Every label below is copied verbatim from the report.

01Excluded by 'noindex' tagGoogle found this page, crawled it, and was told not to index it. Here is where that instruction comes from, the four places it hides, and how to confirm it is gone.blocking02Blocked by robots.txtGoogle was told not to fetch this URL at all. Here is which line of your robots.txt is doing it, why the page can still appear in search anyway, and how to fix it correctly.blocking03Redirect errorGoogle followed a redirect from this URL and never arrived anywhere usable. Here is what breaks a redirect chain, and how to see the whole chain the way a crawler does.blocking04Blocked due to access forbidden (403)Your server let Googlebot ask, then refused to answer. Usually a bot-management rule rather than anything you configured on purpose. Here is how to tell.blocking05Server error (5xx)Google asked for the page and your server failed to produce it. Often intermittent, often only under crawl load, and the most urgent of the indexing errors.blocking06Page with redirectUsually not a problem. Google is telling you the redirect worked and it indexed the destination instead. Here is how to tell the harmless case from the one worth fixing.usually fine07Alternate page with proper canonical tagThe clearest good news in the Page indexing report. Google found your canonical tag, agreed with it, and indexed the page you nominated. Here is when it is worth a second look anyway.usually fine08Duplicate without user-selected canonicalGoogle found several URLs with the same content, you did not say which one counts, so it picked for you. Here is how to take the decision back.blocking09Duplicate, Google chose different canonical than userYou declared a canonical and Google overruled it. That only happens when your other signals disagree with your tag. Here is how to find the contradiction.blocking10Soft 404Your server says 200 and your page says the content is gone. Google believes the page, not the status code, and refuses to index either.blocking11URL is unknown to GoogleGoogle has never seen this URL. Nothing is broken and nothing is blocked; there is simply no route to it. Here is how to build one.blocking12Crawled - currently not indexedThe most common and least actionable row in the report. Google fetched the page, read it, and decided not to index it. No tool can verify a fix for this one, including ours.judgement call13Discovered - currently not indexedGoogle knows this URL exists and has not fetched it yet. Unlike its near-namesake, this one usually has a measurable cause: your server is slow, or you are asking for more crawling than you have earned.blocking
§ faq

Questions, answered.

How do I check whether my site is indexed by Google at all?
Search Google for site:yourdomain.com. If results come back, Google has indexed something. If nothing comes back, either the whole site is excluded or Google has not crawled it yet. The site: operator is a rough instrument and its counts are estimates, but the difference between "some results" and "no results at all" is reliable, and it is the fastest question to answer before anything else.
My site is brand new. Is something wrong?
Probably not. A new site with few inbound links can take days to weeks to appear, and there is no way to buy your way to the front of that queue. Submit a sitemap in Search Console, make sure the pages are linked from somewhere Google already crawls, and check that nothing on this page reports a blocker. If the checks come back clean on a two-week-old site, waiting is the correct action.
Why does this check robots.txt before the noindex tag?
Because a robots.txt block hides a noindex. If you disallow a URL, Google cannot fetch the page to see the noindex on it, so the URL can stay in the index as a bare link with no description, and a noindex check run on its own would report "no directive found" on a page it was never allowed to read. Ruling out the robots.txt block first is what makes the noindex result trustworthy.
The check says nothing is wrong, but I am still not in Google.
Then the cause is not a technical blocker, and that is a real answer rather than a failure. The remaining possibilities are that Google has crawled the page and decided it is not worth indexing, or that it has not got to it yet. The first is a judgement call about the page itself that no external tool can verify, ours included. Start with "Crawled - currently not indexed", which explains what that state means and what actually moves it.
Is this the same as the Search Console pages?
No, it is the step before them. The Search Console pages answer "Google gave me this exact error, what is it?" and each one goes deep on a single cause. This page is for when you have no error string to look up: it finds which cause applies and then sends you to the page that explains it in full.
Does ranking badly count as not showing up?
They are different problems with different fixes, and it is worth knowing which you have. Not indexed means the page is absent from Google entirely: a site: search for the exact URL returns nothing. Ranking poorly means the page is indexed and appearing, just far enough down that nobody sees it. This page diagnoses the first. If a site: search finds your URL, you have a ranking problem and nothing here will move it.
§ before the next deploy

A stray noindex is a deploy away, every deploy.

This page finds it after the fact. LintPage runs 60 checks against a URL in about 30 seconds, so the next one gets caught in review instead. Free, no signup.

run a full scan →