Recognize an exclusion left behind after staging
Public pages work, but Search Console reports exclusion by noindex after launch. An instruction prepared for the working copy may have been transferred with the database, an SEO setting, or hosting configuration. The goal is to remove it on pages intended for the public while retaining useful exclusions elsewhere.
Noindex asks supporting search engines not to index the resource. It may be sent in an HTML document tag or an HTTP X-Robots-Tag header. Either source alone may maintain exclusion; correcting the visible WordPress checkbox therefore does not guarantee that the final response is corrected.
Start by observing an actually affected page and its current version. An old inspection result may describe the previous state. If no directive is found in current responses and the live test no longer detects one, do not change settings randomly: record the already-effective correction and follow its recognition.
Define public pages and those that must remain excluded
Before acting, choose a few affected public pages and content that should retain its intentional exclusion, if any. Also distinguish production and staging domains. Their settings may look alike while their purposes remain different. Know where the correction will apply and where it must not propagate.
This procedure requires an administrator account for general settings, content permissions for a page setting, and authorized file access for an old server rule. Preserve initial values and an appropriate database and file backup before technical intervention. On a copy, disable outbound messages and synchronization during testing.
Noindex is not access control: someone with the URL can still view an unprotected page. The working copy and private documents need appropriate protection independently of indexing. If the whole site is not ready to be public, do not remove its exclusion merely to dismiss a warning. First have the launch scope validated.
Find the directive in the document actually received
Open an affected public page without WordPress login. View its source in the browser and search for noindex, then tags named robots or googlebot. Read the tag’s content instead of counting occurrences of the word: an article may discuss noindex in its text without sending that instruction to search engines.
A robots tag applying to all search engines and a googlebot tag may coexist. The value none also means exclusion combined with no link following. Adding index to another tag does not neutralize a restrictive instruction that remains applicable. Remove or correct the unwanted source.
Record the final URL, exact tag, and observation time. Compare the homepage and an internal page. If only one page is affected, prioritize its individual setting; if every page of one type is affected, examine that type’s setting. No noindex tag in HTML does not rule out the HTTP header covered next.
If Google’s result contradicts this initial observation, also use View tested page in live inspection to examine rendered HTML. A script may change tags after downloading. However, do not try to remove an initial-document noindex with JavaScript: Google may decide not to run that JavaScript. Correct the initial directive’s source.
Check X-Robots-Tag in response headers
An HTTP header accompanies the server response outside HTML code. WordPress, the server, a proxy, or a CDN may add it. This check requires no plugin: use your browser and observe the actual public page, not an editor preview.
The expected result is knowing whether X-Robots-Tag contains noindex or none for this resource. An occurrence in the request headers you send does not have the same role as one in response headers. Do not use local response-override features: they would change only your observation.
Check the HTML URL of the page to publish, not only its sitemap. Yoast normally adds noindex, follow to XML sitemap responses to prevent their appearance as ordinary search results. This neither prevents Google from reading the sitemap nor transfers the exclusion to listed pages. Therefore do not remove that sitemap header to fix a different page.
- In Chrome, open developer tools, then Network.
- With the panel open, reload the page and select the main document row, often type Doc.
- Open Headers, then Response Headers, and search for X-Robots-Tag.
- If there are multiple lines or a restriction for a specific crawler, record all of them and their values.
- If navigation redirects, also examine the final page’s response. Keep useful details without sharing cookies or a full traffic export.
Perform an optional GET check with curl
With an authorized terminal, you can read a public page’s headers without displaying its body. The example targets a fictional address to replace with the exact page. It performs GET like an ordinary read; some configurations may handle HEAD differently. It does not automatically follow redirects, allowing an intermediate response to be noticed.
On Linux, use the command below. On Windows, replace curl with curl.exe and /dev/null with NUL. The -q parameter, placed first, avoids personal configuration altering the test. Timeouts limit client-side waiting. No cookie or credentials are added.
Look for X-Robots-Tag and the status in the response. If the address redirects, verify its destination before reading that final URL again. The result depends on network context and does not necessarily reproduce Googlebot. This check changes no setting; keep results privately, because other headers may contain sensitive information. Without --fail, a command ending with exit code 0 may have received HTTP status 403: read the HTTP line, not merely the absence of terminal errors.
curl -q --silent --show-error --connect-timeout 5 --max-time 15 --dump-header - --output /dev/null 'https://exemple.invalid/page-publique/'Choose the source to correct before writing
Gather observations by page: tag presence, header presence, global setting, individual setting, and known cache layer. Several causes may coexist. A useful correction removes an unwanted instruction at its source, then rechecks the final response.
Start with Settings, Reading when every public page is affected after copying the database. Next examine the existing SEO manager if the defect follows a page or content type. If a header persists despite correct WordPress settings, investigate the hosting or intermediary-service rule with its administrator.
Do not install a second SEO plugin to layer an index tag over an existing exclusion. Do not disable every robots output either: some are appropriate for internal searches or content that should not enter the index. If the origin is uncertain, reproduce on a copy and change one layer. Keep before-and-after responses; they distinguish a saved setting from an effect actually delivered.
Correct the native WordPress setting
This approach suits a public-ready site whose discouragement checkbox is still selected. It requires access to Settings, Reading. Core uses the blog_public option to add noindex according to site configuration; removing the global request stops this native exclusion without forcing indexing of every context.
Verify the expected result in a new public response. An explicit index tag does not need to appear: the goal is removing unwanted noindex. If it persists, continue tracing its source instead of repeatedly selecting and clearing the checkbox.
- In the confirmed production dashboard, open Settings, Reading.
- Note the state of Search engine visibility.
- Clear Discourage search engines from indexing this site, then click Save Changes.
- Reload a reference page while logged out and check its tag and headers.
- If opening must be undone, restore only the initial value on that screen. This does not make the site confidential or immediately remove an already-indexed page.
Correct a page in an already-installed Yoast SEO
If Yoast SEO already manages site metadata, its individual setting may retain exclusion after the native fix. This feature exists in the free version; Premium is not needed for this check. As of November 3, 2026, the directory lists Yoast SEO 28.8 by Yoast, requiring at least WordPress 7.0 and PHP 7.4, with declared testing up to WordPress 7.1.4. These minimums do not recommend old PHP.
Use appropriate documentation if your installed version differs, without updating the site during this diagnosis alone. The advanced setting is available by default to editors and administrators. Keep the previous value to roll back this page only.
- Open the affected page in the WordPress editor.
- Open the Yoast SEO sidebar through its top-right icon, or its box below the editor, then Advanced.
- Under Allow search engines to show this content in search results, select Yes for this approved public content.
- Save the page update, then check the complete public response.
- If the change conflicts with editorial intent, restore the initial value and save again; do not modify every page.
Correct a content type only if the whole group is affected
When every public post or page of a type is excluded, examine its collective Yoast setting. This has broader scope than an individual setting. Have content in that group checked before enabling it: it may include pages not intended for search.
In Yoast SEO, Settings, then Content types, choose the exact type, such as Pages. In Search appearance, enable Show [type] in search results, then click Save changes. Preserve the initial state. To undo only this test, restore the previous value for the same type and save without changing other groups or archives.
Check at least one page following the collective setting and one with intentional individual exclusion. The latter must retain its intent. Yoast also uses these choices for the sitemap, so a visibility change may alter its URL list. Check it without launching another generator to compensate for an unexpected result. If exclusion persists in the public response, continue examining individual settings, code, and headers.
Disable a precisely identified old Apache rule
This advanced approach is appropriate only if Apache still adds a noindex header through a rule inherited from staging. It requires authorized access to the file governing the response and a private copy for restoration. A rule may be in the actual public directory’s .htaccess, a parent directory, or host-managed configuration; do not randomly create a new file.
The example below shows an old directive made inactive by commenting it out. It replaces only that directive if you actually found it and attributed it to the abandoned production exclusion. Adding this comment elsewhere neutralizes no existing rule. Preserve other lines and conditions still protecting specific paths.
On a copy, comment out only the confirmed line, save, and reread the same page’s headers. The expected result is that header disappearing without a server error. If a failure appears, immediately restore the retained file. If the directive belongs to central configuration or another server, involve its administrator; local .htaccess does not correct a Nginx or CDN rule. For central configuration, have the server administrator validate syntax and reload. A .htaccess change generally takes effect on the next request; do not restart the whole server for this example.
# Ancienne directive de préproduction désactivée sur le domaine public :
# Header always set X-Robots-Tag "noindex"Find the owner of an instruction added by code
If usual settings are correct but HTML still sends noindex, theme, plugin, or must-use code may add it. Ask the maintainer to search for the exact output and robots filters in the copy’s components. WordPress assembles directives through the wp_robots filter, but other components may produce their own tags.
Do not globally remove wp_robots or empty all its parameters to obtain a tag-free page. This would also erase useful directives in contexts where exclusion remains intended. Have the owning component’s condition or setting corrected, preserving its initial file and testing in-scope pages.
For a header alone, extend investigation to hosting settings, proxy responses, and the existing CDN. A rule applied after WordPress may remain active despite a PHP correction. Avoid a general instruction removing X-Robots-Tag throughout the domain: PDFs or particular paths may have intentional exclusions. Check the response delivered after every layer.
Check caches and future deployments
A page cache may continue serving old HTML containing noindex. An intermediary layer may also retain old headers. First correct their source, then invalidate only affected copies through your existing system’s procedure. A purge alone does not correct the rule that will recreate exclusion on the next response.
After invalidation, check the page logged out, then read it again once the cache is rebuilt. If exclusion returns only after deployment or synchronization, examine what is copied: a global database option, page metadata, configuration file, or hosting rule. Record the step reintroducing the value instead of manually correcting it the day after every release.
Prepare an explicit environment distinction in deployment procedures. Production must retain approved settings for public content while the copy keeps its own handling. Do not synchronize the entire active database to transfer one setting: orders, accounts, or new content could be overwritten. The fix and its check belong in every launch checklist.
Verify the result and preserve intended exclusions
Revisit the reference pages in production and note each check’s time. The unwanted instruction should be absent from HTML and applicable headers. An added index tag is insufficient if another source retains noindex. Also compare actual content and final address to avoid validating another page by mistake.
Then check an intentionally excluded content example and protected staging. Their protections and intentions must remain consistent. On WordPress.com, site-visibility settings remain separate; a private or unlaunched site must not accidentally become public while investigating noindex. In multisite, confirm that only the targeted site and components changed.
Keep a before-and-after record with the cause and exact change. If the result is unexpected, undo only that change before pursuing another lead. A directive present only in a response reserved for your session does not necessarily describe the public response: repeat checks under conditions matching the affected visitor and crawler.
Have Google observe the new version
In Search Console, inspect the public page’s final URL, then compare the last known state with Test live URL. The old exclusion reason may remain in historical data while the current response is corrected. The live test checks some current obstacles without promising index inclusion.
Google must be able to crawl the page to observe its directives. Adding a robots.txt block to solve noindex prevents this observation and is not a fix. If both obstacles exist, handle their actual scopes. Google does not support a noindex instruction written in robots.txt.
Do not replace this work by changing canonical. That signal proposes a preferred version among similar content; it does not cancel an applicable noindex directive. Likewise, adding a URL to the sitemap does not neutralize its exclusion. First confirm the page’s own response.
After a useful change and checks, use Request indexing for a few important pages with authorized access, or let the sitemap and ordinary links support discovery. Repeated requests do not accelerate processing, and no date is guaranteed. Give the SEO owner the URLs, removed source, current observations, and correction date. Keep directive repair separate from the later decision to index the page.
Prepare three reference pages before removing noindex
Choose an affected public page, another public page of a different type, and an intentionally excluded page. For each final URL, separately record HTTP status, the HTML robots tag, any googlebot tag, X-Robots-Tag, and observed cache layer. Add the date and logged-out context.
Fictional example: public page A loses its HTML noindex after correcting Reading, but retains X-Robots-Tag: noindex. The problem is therefore not finished; a header source still needs identification. Page B may already be correct while the intentionally excluded page must retain its own instruction. Globally removing every directive would fail that final check.
Repeat the same reads after cache rebuilding, then after the next configuration-carrying deployment. If the instruction returns only then, correct the procedure copying staging state. Search Console’s live test can subsequently observe the current response; success is not an indexing promise. This record requires no SEO subscription: the browser, native settings, and already-installed SEO tool suffice to diagnose directives.
Sources and references
Use these references to check the features, requirements and limitations described. Reading documentation is not a practical test.
View 22 references
- Google: noindex directive and crawl access ↗
- Google: robots tags and X-Robots-Tag ↗
- WordPress: Reading setting ↗
- WordPress: exclusion linked to blog_public ↗
- WordPress: assembling robots tags ↗
- WordPress: noindex and follow by context ↗
- Yoast: individual page setting ↗
- Yoast: content-type settings ↗
- Yoast: sitemap effects ↗
- Yoast SEO: publisher and compatibility ↗
- Apache: header scope and processing ↗
- Chrome: document, response, and headers ↗
- curl: GET requests and headers ↗
- Search Console: known version and live test ↗
- Google: requesting a recrawl ↗
- WordPress: backups ↗
- WordPress.com: site visibility ↗
- Yoast: normal noindex header on XML sitemaps ↗
- Google: JavaScript and initial noindex ↗
- Google: canonical is distinct from noindex ↗
- Apache: processing .htaccess ↗
- Official documentation: developers.google.com ↗


