Why is my website not showing up on Google?

·7 min read

Your website is not showing up on Google for one of two reasons. Either Google has not indexed it, or it has and the pages rank too low for anyone to find. A site: search and the URL Inspection tool in Google Search Console tell you which within a few minutes, and URL Inspection usually tells you why. A site that is not indexed is usually new, still carries a noindex or robots.txt block from staging, has a canonical tag pointing at another URL, or answers Googlebot with an error.

The checks below run fastest first. Leave page speed and keyword tweaks alone until you know Google can index the page at all.

Is your site not indexed by Google, or just not ranking?

A site: search answers it for the whole domain and URL Inspection answers it for one page. Run both before you change anything.

Type site:example.com into Google with your own domain. Any result means Google has indexed part of the site. No results means it has nothing from that domain. Read it as a yes or no, since Google says the site: operator does not necessarily return every indexed URL.

Inspect the URL

Verify the site in Search Console, then paste a URL into the inspection bar at the top. "URL is on Google" means the page is indexed. "URL is not on Google" comes with a reason.

Five fields narrow it down. "Crawl allowed?" reflects robots.txt. "Page fetch" says whether Google got the page from your server. "Indexing allowed?" reflects noindex. "User-declared canonical" and "Google-selected canonical" show whether Google accepted yours. Test live URL shows what Googlebot gets today rather than at the last crawl.

For the whole site, open Indexing > Pages. The "Why pages aren't indexed" table groups every known URL by reason.

Reason in the Page indexing report Usual cause
URL marked 'noindex' A robots meta tag or X-Robots-Tag header left from staging
URL blocked by robots.txt A Disallow rule that matches the path
Alternate page with proper canonical tag The canonical names a different URL
Server error (5xx), Redirect error, Blocked due to unauthorized request (401) The server answers Googlebot with an error, a loop or a login
Discovered - currently not indexed Google knows the URL but has not crawled it yet

How to get a new website on Google

If the site went live recently and a site: search returns nothing, Google has probably not found it yet. Google says it can take a few weeks to notice a new site, and most sites get found without being submitted. You can shorten the wait.

  1. Verify the site in Search Console.
  2. Submit your XML sitemap under Indexing > Sitemaps.
  3. Inspect the home page and click Request indexing. Google limits these requests per day and says a request does not guarantee indexing, so spend them on your main pages.
  4. Get a link from a site Google already crawls, such as a supplier, a client or an industry directory. Do not buy links, which can break Google's spam policies.

If the report shows your URLs as discovered but not crawled, Google has postponed the visit. Here is how to fix pages Google discovered but has not indexed.

A noindex tag or header left over from staging

A noindex meant for staging that ships with the launch keeps a finished site out of Google until someone notices. It hides in two places. One is a meta tag in the HTML head.

<meta name="robots" content="noindex, nofollow">

The other is an HTTP response header, which never appears in the page source.

HTTP/2 200
x-robots-tag: noindex

Check for both from a terminal.

curl -s https://example.com/ | grep -io '<meta[^>]*robots[^>]*>'
curl -sI https://example.com/ | grep -i x-robots-tag

On WordPress, the usual culprit is the "Discourage search engines from indexing this site" box under Settings > Reading, which adds a noindex meta tag to every page. Our WordPress robots.txt guide explains what that box does and does not change. On other stacks, look for an environment flag that turns noindex on for staging, or a server or CDN rule that adds the header to every response.

Search Console lists these pages as "URL marked 'noindex'", and URL Inspection shows "Indexing allowed?" as No. Remove the directive, confirm it is gone with Test live URL, then request indexing for your main pages. Left alone, Google says it can take months to revisit less important pages.

Is robots.txt blocking Googlebot?

Open yourdomain.com/robots.txt. If it contains these two lines, Google may not crawl any page on the site.

User-agent: *
Disallow: /

Search Console lists the pages under "URL blocked by robots.txt", and URL Inspection shows "Crawl allowed?" as No.

A blocked URL can still be indexed without its content when other pages link to it, so it appears in a site: search with no description. When robots.txt blocks a page that also has a noindex, Google never reads the noindex, so "Indexing allowed?" reads Yes. To get a page in, delete the Disallow. To keep it out, allow crawling and use noindex.

The file's own status code matters too. If robots.txt returns a 5xx error, Google stops crawling the whole site for 12 hours while it retries, then uses the last good copy for up to 30 days. A 404 is harmless, because Google treats a missing robots.txt as no restrictions.

Does your canonical tag point to another URL?

A canonical tag names the URL you want indexed, and when it names a different page, Google usually indexes that page and leaves this one out. Watch for three versions of the bug.

  • A theme or plugin sets every page's canonical to the home page.
  • After a migration, canonicals still point at the old domain or the staging host.
  • An https page canonicalizes to its http version.
<!-- on https://example.com/pricing -->
<link rel="canonical" href="https://staging.example.com/pricing">

The canonical can also arrive in an HTTP Link header. In URL Inspection, compare User-declared canonical with Google-selected canonical. A page that followed its canonical sits under "Alternate page with proper canonical tag", which is right for a real duplicate and a bug for a page you want ranked. When Google picks a different URL than the one you named, read how Google chooses between duplicate URLs.

Googlebot gets an error, a redirect loop or a login page

A page that loads in your browser can still fail for Googlebot. Google's Search Essentials require a page that returns HTTP 200, has indexable content and does not block Googlebot.

  • Server errors under crawl load appear as "Server error (5xx)".
  • Redirect loops appear as "Redirect error". An http-to-https rule fighting a www rule is the classic case, and our guide covers finding and breaking a redirect loop.
  • A staging password left on after launch appears as "Blocked due to unauthorized request (401)" or "Blocked due to access forbidden (403)".
  • A firewall or bot protection rule that challenges unfamiliar crawlers can catch Googlebot, and so can a coming-soon plugin left switched on.

To see what Googlebot received, run Test live URL and open View tested page, which shows the HTTP headers, the HTML and a screenshot. For patterns across the site, Settings > Crawl stats groups Googlebot's requests by response type.

Has Google taken a manual action against your site?

Occasionally Google has removed the site on purpose. Open Security & Manual Actions > Manual actions. A manual action means a human reviewer found pages that break Google's spam policies, and some or all of the site may be left out of results. Fix every affected page, then click Request Review and explain what you changed.

Security issues, in the same menu, lists hacked content, malware and social engineering, and affected pages can carry a warning label in results. A site: search that turns up pages you never wrote, often in another language or selling pills, is the usual sign of a hack.

Why is my website not showing up on Google when it is indexed?

When URL Inspection says "URL is on Google" and you still cannot find the site, Google ranks it too far down, usually because the page has too few links and too little substance for the query.

Open Performance > Search results and sort queries by impressions. An average position of 40 means you are on page four, and the work ahead is ranking.

Google lists a site that is not well linked from other sites among the reasons it may not appear. Five thin service pages on a new domain will not outrank established guides, however clean the setup. Write pages that answer the query better than the current top results, with prices and examples a competitor cannot copy. Then earn links from suppliers and local press who already know the business.

Check whether Google can index a page

The Indexing & Canonical Checker runs the technical checks from this post against one URL. It follows redirects to the final status or a loop, matches the path against your robots.txt rules for Googlebot, and reads the meta robots tag and X-Robots-Tag header for noindex, including a noindex that robots.txt hides. It loads the canonical target to catch one that redirects, errors, carries its own noindex or loops back, and reads snippet controls such as nosnippet and max-snippet for Google and Bing.

You get a verdict for indexability, canonical and snippets, and one list of findings that names the rule, tag or URL at fault and how to fix it. It cannot confirm a URL is in Google's index, which URL Inspection does, and it does not run JavaScript. A run costs 8 credits.

The website check runs the same indexing checks on your home page, along with robots.txt, redirects, on-page SEO and structured data. That home page preview needs no credits.

Keep reading