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.
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.
- 01Is robots.txt blocking the crawl?
- 02Is the page telling Google not to index it?
- 03Does Google know this URL exists?
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.
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.
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.
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.
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.
Questions, answered.
How do I check whether my site is indexed by Google at all?
My site is brand new. Is something wrong?
Why does this check robots.txt before the noindex tag?
The check says nothing is wrong, but I am still not in Google.
Is this the same as the Search Console pages?
Does ranking badly count as not showing up?
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 →