If your WordPress site is not showing up on Google, the cause is usually one of five things: the site is new and Google has not found it, the “Discourage search engines” box is ticked, an SEO plugin is adding noindex, robots.txt blocks Googlebot, or the site is behind a password or maintenance page. The first three checks take a minute each. Go through them in order.
This guide is about pages missing from Google entirely. If your pages are indexed but do not rank for the searches you want, that is a different problem; the CTR guide and the Search Console errors guide cover what to look at next.
Quick diagnosis by symptom
| What you see | Most likely cause | Where to start |
|---|---|---|
site: search returns nothing, and the site has been live for weeks | The “Discourage search engines” box, a site-wide noindex, or Disallow: / in robots.txt | Steps 2 to 4 |
site: returns nothing, and the site launched days ago | Google has not found it yet | Step 6 |
| Homepage indexed, posts missing | A noindex on the Posts content type, or weak discovery | Step 3, then step 6 |
| Pages vanished after a redesign or a move from staging | Staging settings copied to the live site | “After a migration or redesign” below |
| Pages vanished overnight and nothing changed on the site | A removal request, a manual action or a hacked site | “Rarer causes” below |
| Indexed, but you cannot find it by searching your business name | A ranking problem, not an indexing one | “Indexed but not found for your name” below |
Step 1: see what Google has
Search Google for site:yourdomain.com. The results are a rough sample of what is indexed.
- Nothing at all: a site-wide problem. Continue with steps 2 to 5.
- The homepage only, or a few pages: Google can index the site but has not found or prioritized the rest. Jump to step 6 and the discovered – currently not indexed guide.
- Old pages but not new ones: usually discovery; check internal links and your sitemap.
Step 2: check Settings → Reading
Go to Settings → Reading and look at Search engine visibility. If Discourage search engines from indexing this site is ticked, untick it and click Save Changes.
On current WordPress versions this box adds a noindex robots meta tag to every page (it used to edit robots.txt instead). It is ticked during development, it travels with a staging copy, and it is easy to forget at launch. If your homepage and your posts all show noindex, this is the first suspect.
Step 3: look for a noindex from your SEO plugin
In Search Console this shows as Excluded by ‘noindex’ tag. The noindex can be set in three places:
On one post or page.
- Yoast SEO: in the editor, open the Yoast SEO box, then Advanced → Allow search engines to show this content in search results? Set it to Yes (or the default).
- Rank Math: Rank Math icon in the editor toolbar, Advanced tab, Robots Meta: untick No Index.
- SEOPress: the Advanced tab of the SEO box: untick the noindex option.
For a whole content type.
- Yoast SEO: Yoast SEO → Settings → Content types → Posts (or Pages), Show posts in search results.
- Rank Math: Rank Math SEO → Titles & Meta → Posts, Post Robots Meta.
Outside WordPress. An X-Robots-Tag: noindex HTTP header can come from the server, a CDN rule or a security plugin. It never shows in the page source, so check the response headers or use the checker below. From a terminal:
curl -sI https://yourdomain.com/ | grep -i -E "^HTTP|x-robots-tag"
A 200 status and no x-robots-tag line is what you want. To check the meta tag as well, open the page, view the source and search for name="robots"; a noindex in its content is the problem. Do this on a post and a page as well as the homepage, because plugins set robots rules per content type.
Step 4: check robots.txt
In Search Console this shows as Blocked by robots.txt. Open yourdomain.com/robots.txt. The line to look for is Disallow: / under User-agent: * or User-agent: Googlebot, which blocks the whole site; narrower rules block sections.
- WordPress generates a robots.txt on the fly unless a real file sits in the site root. A real file left over from development wins over the generated one.
- Yoast SEO can edit it under Yoast SEO → Tools → File editor, Rank Math under Rank Math SEO → General Settings → Edit robots.txt.
Blocking a URL in robots.txt does not remove it from Google. Google can still list a blocked URL that other pages link to, without a description, and Search Console reports it as Indexed, though blocked by robots.txt. To keep a page out of Google, let it be crawled and use noindex. The WordPress robots.txt guide covers the file in detail, and noindex vs robots.txt explains which tool does what.
Step 5: make sure Googlebot can reach the site
A site that loads fine for you can still be closed to Google:
- Password protection or HTTP authentication on the whole site returns 401: Blocked due to unauthorized request (401).
- A firewall, CDN or security plugin blocking unknown bots returns 403: Blocked due to access forbidden (403).
- A “coming soon” or maintenance plugin shows Google a placeholder instead of your content. Turn it off once the site is live.
- Server errors under load: Server error (5xx).
A curl request from your own computer cannot prove that Googlebot gets in, because firewalls judge Googlebot by its IP address, not just its user agent. The reliable check is Test live URL in URL Inspection, which fetches the page from Google.
Read the URL Inspection result line by line
Paste a URL into the inspection bar at the top of Search Console. The headline says URL is on Google, URL is on Google, but has issues or URL is not on Google. Expand Page indexing for the lines that point at the cause:
- Discovery. Lists the sitemaps and referring pages through which Google found the URL. “No referring sitemaps detected” on a URL that is in your sitemap means the sitemap is not submitted, or Google has not read it yet.
- Crawl allowed? “No: blocked by robots.txt” sends you to step 4.
- Page fetch. “Successful” is what you want. “Failed: Server error (5xx)”, “Failed: Blocked due to access forbidden (403)” or a soft 404 sends you to step 5 or to the page itself.
- Indexing allowed? “No: ‘noindex’ detected in ‘robots’ meta tag” means a WordPress or SEO plugin setting (steps 2 and 3). “No: ‘noindex’ detected in ‘X-Robots-Tag’ http header” means the server, a CDN or a security plugin.
- User-declared canonical and Google-selected canonical. If your canonical points to another URL, Google indexes that one instead. On a site copied from staging, check it does not point to the staging domain.
These lines describe Google’s last crawl. After a fix, click Test live URL to see the page as Google gets it now.
Step 6: set up Search Console and submit your sitemap
- Add your site in Search Console (a Domain property verified through DNS covers http, https and every subdomain).
- Submit your sitemap under Indexing → Sitemaps:
/sitemap_index.xmlwith Yoast SEO or Rank Math,/wp-sitemap.xmlwith WordPress alone. The sitemap checker confirms it is valid and lists indexable URLs. - Inspect your homepage in URL Inspection and click Request indexing.
- Check Security & Manual Actions for a manual action or a security issue. Both are rare, and both explain a site disappearing.
After a migration or redesign
Most “we relaunched and vanished from Google” cases come from settings that were right on the staging site and wrong on the live one. Check these in order:
- Settings → Reading. The “Discourage search engines” box is usually ticked on staging, and copying the database copies the tick.
- robots.txt. Staging sites often carry
User-agent: *withDisallow: /. If a real robots.txt file was copied into the live site root, it overrides the one WordPress or your SEO plugin would generate. - Canonical tags and sitemap URLs. View the source of a post and search for
canonical. If it shows the staging hostname, Google is being told the staging copy is the real page. Check Settings → General (WordPress Address and Site Address), then replace the old hostname in the database, for example with WP-CLI’swp search-replace, after taking a backup. - Password protection. HTTP authentication or a “members only” plugin left switched on returns 401 to Google.
- Changed URLs. If the redesign changed permalinks, the old URLs need 301 redirects to the new ones, or the rankings attached to them are lost. If the domain itself changed, redirect every old URL and use Settings → Change of address in Search Console for the old property.
Indexed but not found for your name
If URL Inspection says URL is on Google but searching your business name does not bring the site up, Google has indexed it and ranks other pages higher for that name. This is common for new sites and for generic names such as “Summit Plumbing”. What helps: the exact business name in the homepage title and main heading, a Google Business Profile if you serve customers locally, the same name on the directory and social profiles that link to you, and the site name set in your SEO plugin (Yoast and Rank Math output it as WebSite structured data). Give it a few weeks before changing more.
Rarer causes
- A removal request. Open Indexing → Removals. An approved temporary removal hides a URL, or every URL under a prefix, for about six months. If a request was made by mistake, open the menu next to it and choose Cancel request.
- A hacked site. Spam pages injected by malware can earn a security warning or a manual action. Security & Manual Actions lists both, with the steps to request a review after cleanup.
- The wrong property. If you added
http://orwww.as a URL-prefix property and the site serveshttps://withoutwww, the reports show almost nothing. A Domain property covers every version.
Validate the fix in Search Console
Inspect the homepage and a post with URL Inspection → Test live URL. The live test should say the page can be indexed. Then open Indexing → Pages, click Excluded by ‘noindex’ tag or Blocked by robots.txt, and click Validate fix. Search Console rechecks the listed URLs over the following days or weeks; pages move into the indexed count as Google recrawls them. Google says crawling can take anywhere from a few days to a few weeks, and requesting indexing more than once for the same URL does not speed it up.
How RankHive handles this
Once your site is connected, RankHive inspects your posts and pages with Search Console’s URL Inspection data every week and flags the ones that are not showing up in Google, with the reason: a noindex, a robots.txt rule, a canonical pointing elsewhere. Where the fix is something it can write, such as a robots.txt rule or a canonical, it drafts the change with the current value next to the proposed one; when you approve, the RankHive plugin writes it to WordPress, and the Change Log keeps a Revert button for every change. A noindex switched on in a WordPress or SEO plugin setting is flagged for you to switch off.
Related reading
- Search Console errors on WordPress: every Page indexing status and its fix.
- Noindex and nofollow meta tags explained: what each directive does.
- WordPress robots.txt: the virtual file, safe defaults and what not to block.
- WordPress SEO for beginners: the rest of the basic setup.
Your job is to find the one setting that is hiding the site and switch it off. Check it by hand with the steps above, or let RankHive inspect your pages each week and ship the fix after you approve it.
