Skip to main content

Indexability

Indexability determines whether search engines can include a page in their search index. A page may be crawlable but not indexable — or indexable but excluded from search results through directives.

Learning Focus

After this lesson you can control exactly which pages appear in Google's index using noindex, canonical tags, robots meta directives, X-Robots-Tags, and duplicate URL handling.

This lesson covers the seven indexability areas (leaves 3.2.1–3.2.7): noindex management, index coverage analysis, index bloat prevention, canonical tag control, duplicate URL handling, robots meta directive management, and X-Robots-Tag directive management.

Why This Matters

Core Concept
  • Indexing is the gate between being found and being invisible. Pages that are not indexed do not appear in search results.
  • Controlling which pages are indexed (and which are not) ensures Google's index contains only your valuable content.
  • Index bloat (too many low-value pages in the index) dilutes crawl budget and can cause important pages to receive less attention.

Noindex Management

The noindex meta tag or X-Robots-Tag tells search engines not to include a page in their index.

How to implement noindex:

MethodImplementationScope
Meta robots tag<meta name="robots" content="noindex"> in HTML <head>Single HTML page
X-Robots-Tag HTTP headerX-Robots-Tag: noindex in server responseHTML pages and non-HTML files (PDFs, images)
Per-directory via .htaccess<FilesMatch "\.pdf$"> Header set X-Robots-Tag "noindex"</FilesMatch>All files matching pattern

When to use noindex:

Page TypeWhy Noindex
Thin or low-value pagesPages with minimal unique content
Duplicate or near-duplicate pagesVersion pages, print versions, tag pages
Thank-you / confirmation pagesPost-conversion pages with no search value
Internal search resultsSearch result pages that are infinite and low-value
Staging or test pagesPages not intended for public search

When NOT to use noindex:

  • As a substitute for access control (noindex does not prevent access — it just hides the page from search).
  • On pages you want to rank (obviously).
  • On pages that have external backlinks (noindex prevents link equity from passing).

Noindex pitfalls:

  • Googlebot must crawl the page to see the noindex directive. A page blocked by robots.txt with a noindex tag will not be visible (Google cannot crawl to see the noindex).
  • If noindex is added to a sitemap, Google will ignore the sitemap signal and respect the noindex.
  • Noindex does not immediately remove the page from the index. It tells Google to exclude the page at the next crawl.

Index Coverage Analysis

Index coverage analysis tracks which pages are in Google's index, which are excluded, and why.

GSC Indexing report sections:

SectionMeaningAction
IndexedPages in Google's indexNo action needed
Not indexedPages Google chose not to indexReview reason and fix if needed
ExcludedPages with explicit exclusion directiveVerify exclusion is intentional
ErrorsPages Google cannot indexFix immediately

Common "not indexed" reasons by action:

GSC ReasonLikely CauseFix
Crawled - currently not indexedPage has low perceived value or similarity to other pagesImprove content uniqueness, reduce duplication
Discovered - currently not indexedGoogle knows the URL but has not crawled it yetBuild internal links, ensure crawlability
Duplicate without user-selected canonicalGoogle chose a different canonical than intendedAdd explicit canonical tag
Page with redirectURL redirects to another URLUpdate links to point directly
Soft 404Page looks like a 404 but returns 200Add meaningful content or return 404
Blocked by robots.txtURL blocked from crawlingUpdate robots.txt if page should be crawled

Index Bloat Prevention

Index bloat occurs when a large number of low-value pages occupy the index, consuming crawl budget and potentially diluting the site's overall index quality.

Common sources of index bloat:

SourceExamplePrevention
Filtered/faceted URLs/products?color=red&size=m&sort=priceUse noindex or robots.txt for parameter URLs
Pagination pages/category/page/2, /category/page/3Use canonical to page 1 or implement view-all
Tag and category archives/tag/seo, /category/uncategorizedNoindex low-value archive pages
Session IDs and tracking parameters/product?session_id=abc&ref=xyzRemove parameters or canonical to clean URL
Sort and filter variations/products?sort=price&order=ascUse noindex or block in robots.txt
Duplicate content across domainswww.example.com and example.comCanonicalize to primary domain
Thin affiliate pagesAffiliate pages with minimal unique contentNoindex or improve content

Index bloat monitoring:

MetricWarning SignalAction
Indexed pages vs sitemap pagesIndexed count significantly higher than sitemap countFind and remove unintended indexed URLs
"Crawled - not indexed" countHigh and growingReduce low-value content, improve internal linking to important pages
Average indexed page qualityLow engagement on indexed pagesAudit index and prune low-value content

Index bloat cleanup workflow:

  1. Export all indexed URLs from GSC (or use crawl data).
  2. Identify low-value pages (filtered URLs, pagination, archives).
  3. Add noindex tags or update robots.txt for pages that should not be indexed.
  4. For pages that should be consolidated, set up 301 redirects.
  5. Monitor index coverage report for changes.

Canonical Tag Control

The canonical tag (rel="canonical") tells search engines which URL is the preferred version when multiple URLs contain the same or similar content.

Canonical tag syntax:

canonical-tag-example.html
<link rel="canonical" href="https://example.com/preferred-url/" />

Canonical rules and best practices:

RuleImplementation
Self-referencing canonicalEvery page should have a canonical pointing to itself (unless there is a specific reason not to)
One canonical per pageMultiple canonicals are ignored
Absolute URLsUse full URLs including protocol and domain, not relative paths
Consistent domainUse the preferred domain (www vs non-www) consistently
Lowercase URLs/Page/ and /page/ are different URLs; use lowercase consistently
Trailing slash consistencyChoose a convention (with or without trailing slash) and stick to it

Canonical mistakes to avoid:

  • Using canonical on paginated pages: canonicalize paginated pages to themselves, not to page 1.
  • Cross-domain canonical without a specific reason: only use cross-domain canonical when content is intentionally duplicated.
  • Canonical that points to a redirect: point to the final destination URL, not an intermediate redirect.
  • Missing canonical on syndicated content: if content is published on multiple sites, each secondary site should canonicalize to the original.

Duplicate URL Handling

Duplicate URLs occur when the same content is accessible through multiple URLs. Duplicate content can confuse search engines about which page to rank.

Common duplicate URL patterns:

PatternExampleSolution
WWW vs non-wwwwww.example.com and example.com301 redirect to preferred domain
HTTP vs HTTPShttp://... and https://...301 redirect HTTP to HTTPS
Trailing slash inconsistency/page and /page/Choose one and redirect the other
Case sensitivity/Page and /pageUse lowercase URLs consistently
Parameter variations/product?id=1 and /product?id=1&ref=abcRemove unnecessary parameters
Pagination duplicates/category/page/2 with rel=prev/nextUse canonical to self or view-all
Printer-friendly versions/page and /page?print=1Noindex print versions

Duplicate content detection:

  • GSC Indexing report: "Duplicate without user-selected canonical" indicates Google found duplicates.
  • Screaming Frog crawl: URLs with the same content hash (checksum) are duplicates.
  • Manual review: search site:domain.com/page-url to see which URLs Google considers duplicates.
warning

Duplicate content is not a penalty. Google simply picks one URL to show. The issue is that Google may not pick your preferred URL. Canonical tags and redirects ensure Google shows the right URL.

Robots Meta Directive Management

Robots meta directives (tags in HTML <head>) control how search engines interact with a specific page.

Available robots meta directives:

DirectiveMeaningUsage
indexAllow indexing (default)Valuable pages
noindexDo not index this pageThin pages, low-value pages
followFollow links on this page (default)All pages
nofollowDo not follow links on this pageSpammy content, login-walled pages
noarchiveDo not show cached versionSubscription content, dynamic pages
nosnippetDo not show a text snippet or previewRestricted content
max-snippet:-1Allow unlimited snippet lengthContent you want in featured snippets

Implementation:

noindex-follow-meta.html
<!-- Do not index this page, follow links -->
<meta name="robots" content="noindex, follow">

Best practices:

  • Use noindex, follow for low-value pages that you still want to pass link equity.
  • Avoid noindex, nofollow unless the page has no value (no index, no link equity).
  • Test directives after implementation using GSC URL Inspection tool.

X-Robots-Tag Directive Management

X-Robots-Tag is an HTTP header that provides more flexibility than HTML meta tags, especially for non-HTML resources.

X-Robots-Tag syntax (server response header):

x-robots-header-examples
X-Robots-Tag: noindex, nofollow
X-Robots-Tag: noindex, follow
X-Robots-Tag: none

Use cases for X-Robots-Tag:

Resource TypeWhy Use X-Robots-Tag
PDF filesCannot add HTML <meta> tags to PDFs
ImagesControl whether images appear in image search
JavaScript/CSS filesEnsure these are crawlable (via unavailable_after or allow)
Dynamic contentApply based on request path (e.g., noindex on staging environment)

Implementation examples:

Apache (.htaccess):

htaccess-x-robots-pdf.conf
<FilesMatch "\.pdf$">
Header set X-Robots-Tag "noindex, follow"
</FilesMatch>

<If "%{HTTP_HOST} == 'staging.example.com'">
Header set X-Robots-Tag "noindex, nofollow"
</If>

Nginx:

nginx-x-robots-pdf.conf
location ~* \.pdf$ {
add_header X-Robots-Tag "noindex, follow";
}
warning

X-Robots-Tag overrides HTML meta robots. If both are present, the X-Robots-Tag takes precedence.

Workflow

  1. Audit current index status: Export indexed pages from GSC and compare to your expected index.
  2. Review noindex implementations: Ensure noindex is applied correctly to low-value pages.
  3. Check canonical tags: Verify self-canonical, absolute URLs, correct domain.
  4. Identify duplicates: Find and resolve duplicate URL patterns.
  5. Check for index bloat: Identify low-value pages consuming index space.
  6. Implement X-Robots-Tag where needed: PDFs, staging environments, non-HTML resources.
  7. Monitor index coverage: Weekly check in GSC.

Common Mistakes

  • Noindex on robots.txt-blocked pages: Google cannot crawl to see the noindex. Remove robots.txt blocking or remove noindex.
  • Inconsistent canonical across page versions: The same page should have the same canonical regardless of how users access it.
  • Canonical to page 1 from paginated pages: Use canonical to self or view-all, not to page 1.
  • Noindex on pages with external backlinks: Noindex prevents link equity from passing. Use redirect or consolidate content instead.
  • Not monitoring index bloat: Index bloat grows silently. Check the indexed page count trend monthly.

Checklist

  • Noindex is correctly applied to all low-value page types.
  • Noindex is NOT applied to pages that should rank (verify).
  • GSC Indexing report is error-free (no critical errors).
  • Self-canonical tags are present on every page.
  • Canonical tags use absolute URLs with the preferred domain.
  • Duplicate URL patterns are identified and consolidated.
  • Index bloat sources (facets, tags, pagination, filters) are controlled.
  • X-Robots-Tag is configured for non-HTML resources (PDFs) if needed.
  • Staging environment is protected with noindex directives.

What's Next

References