Short answer: an empty site:yourdomain.com search means one of three things: the site is new and Google has not indexed it yet, something is telling Google not to index it (a noindex tag, a robots.txt block, an X-Robots-Tag header or a WordPress setting), or you typed the query wrong. Check the URL Inspection tool in Search Console first. It gives you a definite answer, which the site: operator does not.
Is an empty site: search proof that Google has removed my site?
No. Google describes site: as a way to limit results to one domain, not as an audit of your index. The counts it shows are approximate and can differ from what Search Console reports. An empty result is a signal to investigate, not a verdict.
Before you worry, rule out the boring causes:
- A space after the colon. Use
site:example.com, notsite: example.com. - A typo, or the wrong version of the domain (www versus non-www, http versus https).
- A brand new domain. Pages can take days or weeks to appear, especially with no links pointing to them.
- A filtered or personalised results page. Try a private window.
How do I check whether Google has the page or not?
Open Search Console, paste a real URL from the site into the URL Inspection tool, and read the verdict. The Page indexing report then shows why pages are excluded, with labels such as "Excluded by 'noindex' tag" or "Blocked by robots.txt".
| What you see | What it usually means |
|---|---|
| URL is on Google | Indexed. The site: search was misleading or mistyped. |
| Discovered, currently not indexed | Google knows the URL but has not crawled it. Common on new sites. |
| Excluded by 'noindex' tag | A meta tag or header is telling Google to skip the page. |
| Blocked by robots.txt | Google is not allowed to crawl the page. |
| No Search Console access | Check the page source and headers yourself, as below. |
What are the usual blockers on a client site?
On agency sites, the cause is almost always something that was switched on during the build and never switched off. These are the ones to check, in order:
- WordPress "Discourage search engines". Under Settings, Reading, the box "Discourage search engines from indexing this site" adds a noindex robots meta tag to every page. It is easy to leave ticked after a launch from staging.
- An SEO plugin setting. Plugins can set noindex per post type, per page, or site-wide.
- robots.txt. A leftover
Disallow: /from staging stops crawling entirely. - An X-Robots-Tag header. This is set at the server, CDN or host level and does not show up in the page source.
- Cloudflare or host-level bot rules. Aggressive bot protection can return a challenge page or a block to Googlebot instead of your content.
A law firm site we checked had noindex on every page. The agency had ticked the Reading box during the build and the launch checklist never mentioned it. The site looked perfect in a browser for weeks.
How do I see what Google sees without Search Console?
Fetch the headers and look for a robots directive. This command prints the response headers and filters for the one that matters:
curl -sI https://example.com/ | grep -i x-robots-tag
If it prints x-robots-tag: noindex, the server is telling Google to drop the page, whatever the HTML says. No output means that header is not set. Then check the page source for <meta name="robots" content="noindex"> and open /robots.txt to look for a blanket Disallow: /. If you would rather not do this by hand, the free noindex checker reads all three for a URL.
What are the exact fix steps?
- Remove the blocker. Untick the WordPress Reading box, change the plugin setting, edit robots.txt, or remove the header at the server or CDN.
- Clear any page cache and CDN cache, then re-check the live page. A cached noindex will keep serving after you fix the source.
- If robots.txt was blocking the page, fix that first. Google cannot see a noindex tag, or its removal, on a page it is not allowed to crawl.
- In Search Console, run URL Inspection on the homepage and click Request Indexing.
- Submit or resubmit the XML sitemap, and make sure it lists only indexable URLs that return 200.
- Re-run the
site:search after a few days. Recovery is not instant, and for a large site it can take longer.
What do I tell the client?
Keep it short and factual. For example: "Your site was set to ask search engines not to list it. This is a normal setting during a build and it was left on at launch. We switched it off on [date], asked Google to re-check the site, and we expect pages to start appearing over the next days to weeks. We will confirm once they do." Do not promise a date. Google decides when to recrawl.
How does quietwatch catch this daily?
quietwatch checks each client site every day for noindex tags, robots.txt blocks, X-Robots-Tag headers, bot-protection settings, broken sitemaps and expiring certificates, and emails you the day something changes. You can see what quietwatch checks every day. The free tool above is the place to start for a one-off check.