ShipworkSite inspection
Indexing

Crawlability

PaginationAre paginated pages set up right?Internal searchIs site search eating crawl budget?URL parametersAre parameters creating duplicates?Log analyserWhat does Googlebot actually crawl?Robots builderNeed a robots.txt file?Soft 404sAre pages “not found” but returning 200?JavaScriptCan crawlers see it without running JS?FreshnessIs my site quietly going stale?Robots.txtDoes robots.txt say what I think?

Indexing

Sitemap lastmodAre my sitemap dates valid?SitemapIs my sitemap actually fetchable?IndexingIs Google allowed to index my pages?CanonicalsIs Google indexing the wrong URL?Index signalsDo sitemap and index signals agree?Sitemap generatorNeed a sitemap.xml for my site?Bulk URL statusWhere does each of these URLs really land?Redirect builderNeed the redirect rules?RedirectsAre my URLs answering directly, over HTTPS?

On-page

Keyword ideasWhat are people searching for?SERP previewHow does my page look in Google?Content qualityAre your pages too thin or too alike?Image weightAre images slowing the page?CannibalizationAre pages competing with each other?On-page checkDoes the page use its target phrase?ImagesAre my images accessible and loading?Meta tag builderWhat should my title and share tags say?DuplicatesDo my pages compete for one query?

Links

Orphan pagesWhich pages can no link reach?Link graphHow deep do your pages sit?Anchor textDo links say what they point at?Outbound linksAre external links still alive?Broken linksAre internal links sending visitors nowhere?

Structured data

Rich resultsIs my markup eligible for a rich result?Structured dataIs my product schema valid?Schema coverageDo my key pages carry structured data?Social previewHow does my page look when shared?Schema vs pageDoes markup match the page price?Schema builderNeed valid JSON-LD?

International

Hreflang sitemapDo page and sitemap hreflang agree?HreflangDo my language versions link back?Hreflang builderNeed the hreflang tags?Page DoctorWhy is this page not doing well?Redirect planMy site has dead links — what redirects do I write?Sitemap diffIs anything missing from my sitemap?Robots simulatorWhat does my robots.txt actually block?Can Googlebot?Can Googlebot fetch this URL?
Every error, explainedGuides
Pricing Learn Error guides Run free audit

+1 free check

Welcome to Shipwork

Sign in free and your next check this month is on us.

Continue with GoogleContinue with email

We email you a 6-digit code. No password.

No card needed. Reports and watches follow you to any device.

All errorsExcluded by noindex

Which of your pages carry a noindex instruction, and how to remove it

What the error means

The page carries a noindex instruction — a meta robots tag in the HTML or an X-Robots-Tag header — telling Google not to list it. In Search Console these pages show under "Excluded by noindex tag", and they are invisible in search no matter how good they are.

Why Google rejects it

Nobody usually decides this deliberately. Staging pages migrated with their noindex intact, an SEO plugin’s "discourage search engines" checkbox, a theme snippet applied store-wide, or an app that sets the header during setup. The instruction is one line into the head — invisible in a rendered page and absent from any admin preview.

ALLOWEDCrawled and allowedBLOCKEDNoindexed: excluded
One line in the head removes the page from search.

How to fix it

  1. Confirm the instruction: view-source on the live page and search for robots; also check the X-Robots-Tag response header — the meta tag and the header are separate instructions and either one excludes.
  2. Find the scope: if many pages are excluded, the cause is a template or plugin setting, not individual pages. Fix the source and the whole set clears.
  3. Remove noindex from pages that should rank; keep it deliberately on thin or private pages you do not want competing with your money pages.
  4. Re-request indexing after the fix — the exclusion status persists until the next crawl picks up the change.

Common causes

Sitewide visibility setting

A site launch or privacy setting can discourage or block search indexing across the entire website. After launch, the setting may remain enabled even though pages are public. Look for a sitewide setting as well as a page-level tag, because the directive may be generated by the platform rather than visible in the content editor.

Page-level SEO option left enabled

An editor or SEO plugin can set an individual page, product, or category to noindex. This is useful for private, thin, or utility pages, but a product intended to rank may inherit an exclusion from a copied template. Inspect several affected URLs to see whether the issue follows one page or a whole page type.

Template or plugin emits a meta tag

A theme, SEO app, or custom template can add <meta name="robots" content="noindex"> to the HTML head. The setting can be conditional, so the page source may differ for products, collections, languages, or logged-in visitors. View the rendered source Google receives rather than relying only on an admin toggle.

HTTP response includes X-Robots-Tag

Servers and plugins can send noindex in an HTTP response header instead of page HTML. This is common for PDFs and can also affect HTML routes through a server or CDN rule. Inspect response headers on the exact URL; deleting a meta tag will not help if the header still instructs Google not to index.

Conflicting staging or environment configuration

A site copied from staging may carry its noindex directive into production, or an environment variable may make the live theme behave as a test site. Compare production and staging responses and review deployment settings when many unrelated pages suddenly become excluded.

Fix it on your platform

On Shopify

  1. Open the affected product, collection, or page in the admin and review its search engine listing and any SEO app controls for an explicit noindex option. Confirm the object is published to the Online Store sales channel.
  2. View the public page source and search for robots. If the noindex appears across a whole page type, inspect the published theme's relevant Liquid layout or snippet and the SEO app that renders head tags.
  3. Check any custom app or storefront middleware that sets response headers. An X-Robots-Tag header must be removed at its source; editing theme HTML alone cannot override it.
  4. After changing theme or app settings, test the live storefront URL without an admin session and compare a second URL using the same template. Avoid editing Shopify's generated sitemap manually; it updates from store content and visibility.

On WooCommerce

  1. Edit the affected page or product and inspect the SEO panel from the active plugin, such as its advanced robots controls. Set the page to index only when it should appear in search.
  2. Check WordPress Settings > Reading for the setting that discourages search engines from indexing the site. It is sitewide and can be left enabled after a staging launch.
  3. If the tag appears on every page or only a certain template, inspect the active theme, child theme, and SEO plugin for a robots meta output or conditional rule. Do not install a second SEO plugin to counter the first one.
  4. Use a header inspection tool or server logs to look for X-Robots-Tag. Review hosting, security, and cache rules if it appears even after the plugin setting is cleared.

On other platforms

  1. In Wix, Squarespace, or BigCommerce, open the page's SEO or search visibility settings and check both page-level and sitewide indexing controls. Names vary by product and plan, so verify the actual rendered URL after changing a control.
  2. Check whether the page is published and publicly visible. A private, password-protected, or draft page cannot become an indexable public result simply by removing a noindex option.
  3. On a custom site, inspect the HTML head and response headers separately. Remove the directive from the template, application, reverse proxy, or CDN layer that emits it.
  4. For pages rendered by a JavaScript application, make sure the initial and rendered HTML no longer contain noindex, then test Google's live rendering in URL Inspection.

How to confirm it is fixed

  1. Inspect the exact production URL in Search Console and open View crawled page or the live test. Confirm the HTML contains no unintended robots noindex directive.
  2. Check response headers for X-Robots-Tag as well as the HTML meta tag. Also verify the URL returns a successful public response and is not blocked in robots.txt, so Google can read the directive state.
  3. If the change was template-wide, inspect representative URLs from each affected page type and language, not only the URL used to test the fix.
  4. Run the indexing check to inspect public noindex and crawl signals, then request indexing for a small number of important fixed pages.
  5. Watch Search Console for a recrawl and updated verdict. Removing noindex makes a page eligible; it does not guarantee Google will index it.

A worked example

Hypothetical case: a WooCommerce retailer creates a staging copy for a theme rebuild. The team enables WordPress's discourage-search-engines setting on staging, then deploys the database to production. Product URLs load normally, but Search Console reports Excluded by ‘noindex’ across product and category pages. The owner clears the sitewide setting, checks the active SEO plugin's robots settings, and confirms both the HTML meta tag and response headers on several live pages. They then run the indexing check and use URL Inspection's live test before requesting indexing for key categories. The pages become eligible to be considered again, but Google recrawls them on its own schedule.

Questions

How do I remove noindex from a page in Search Console?
Search Console reports the directive but does not edit your site. Remove it in the page editor, SEO plugin, theme, or server rule that generates it. Check both the HTML meta tag and X-Robots-Tag response header, then use URL Inspection's live test to confirm Google can fetch the page without noindex.
Why does my page still say noindex after I changed the setting?
The directive may come from a second source, such as a template, plugin, cached response, or HTTP header. The report may also describe Google's previous crawl. Inspect the live response and headers, purge relevant caches, and allow Google to recrawl before treating an old report as current.
Does noindex prevent Google from crawling my page?
No. Noindex is an indexing directive that Google must crawl the page to see. A robots.txt block can stop Google from reading the tag, so use the appropriate control for your goal and do not combine them in a way that hides the noindex instruction.
Should product pages be set to noindex on WooCommerce?
Only if you intentionally do not want a particular product page in search, such as a private or duplicate listing. For products meant to attract search traffic, review the page-level SEO setting and the sitewide WordPress visibility setting so neither adds noindex.
Will removing noindex get my page indexed immediately?
No. It makes the page eligible for indexing, but Google still decides whether and when to index it. Make sure the page is accessible, useful, canonical, and linked from the site; use URL Inspection to request a recrawl for a small number of important URLs.
Find out if this is happening to you

Shipwork fetches your key pages from outside your network and reads the exact signals a crawler reads first — the meta robots tag and the X-Robots-Tag header — naming every page told not to be indexed. Free, no account, no signup. Paste your store address.

Check my store for Excluded by noindex

Go deeper: Finding a hidden noindex or block

Other errors like this