Skip to main content

Noindex & Nofollow: Control Search Engine Indexing

9 min read

9 min read

Noindex & Nofollow: Control Search Engine Indexing

Reading time: 9 minutes

Quick Definition:

  • Noindex tells search engines “Don’t show this page in search results”
  • Nofollow tells search engines “Don’t pass link equity through links on this page”

Unlike robots.txt (which blocks crawling), these tags allow crawling but control what happens after.

TLDR

Noindex prevents pages from appearing in search results. use it for thank-you pages, search results, and duplicate content. Nofollow prevents passing link equity. use it for paid links, user-generated content, and untrusted links. Critical mistake: combining noindex with robots.txt blocks creates conflicts where Google can’t see the noindex tag. Most common combination is noindex with follow, which blocks the page but follows its links. Verify changes with Google Search Console and allow 1-4 weeks for processing.


Noindex: Remove Pages from Search Results

What It Does

Noindex prevents a page from appearing in Google search results, even if other sites link to it.

Use cases:

  • Thank you pages after form submissions
  • Internal search result pages (/search?q=shoes)
  • Admin/login pages (combine with password protection)
  • Duplicate content you can’t delete
  • Thin/low-value pages (tag archives, author pages)
  • Private content that’s not truly secret

Don’t use for:

  • Pages you want to rank (obviously)
  • Pages already blocked in robots.txt (Google can’t see the noindex tag if it can’t crawl)
  • Truly sensitive content (use password protection instead)

How to Implement Noindex

HTML meta tag (in <head>):

<meta name="robots" content="noindex">

Target specific search engines:

<!-- Only block Google -->
<meta name="googlebot" content="noindex">

<!-- Only block Bing -->
<meta name="bingbot" content="noindex">

<!-- Block all bots -->
<meta name="robots" content="noindex">

HTTP header (for PDFs, images, non-HTML files):

X-Robots-Tag: noindex

WordPress Implementation

Yoast SEO:

  1. Edit page/post
  2. Yoast SEO section → Advanced
  3. Set “Allow search engines to show this page in search results?” to No

Rank Math:

  1. Edit page/post
  2. Rank Math section → Advanced
  3. Toggle “Robots Meta” → Select noindex

Manual (in theme):

<?php
// In header.php or functions.php
if (is_search() || is_404()) {
    echo '<meta name="robots" content="noindex, follow">';
}
?>

Checking If Noindex Works

Method 1: View page source

  1. Visit the page
  2. Right-click → “View Page Source”
  3. Search (Ctrl+F) for “noindex”

Method 2: Google Search Console

  1. URL Inspection tool
  2. Enter the URL
  3. Look for “Indexing allowed? No: ‘noindex’ detected in ‘robots’ meta tag”

Method 3: Browser extension


What It Does

Nofollow tells search engines “Don’t pass PageRank/link equity through the links on this page.”

Two implementations:

  1. Page-level nofollow (entire page)
  2. Link-level nofollow (specific links)

Page-Level Nofollow

Syntax:

<meta name="robots" content="nofollow">

What happens:

  • Google crawls the page
  • Google indexes the page
  • Google ignores ALL links on the page for ranking purposes

Use cases:

  • User-generated content pages (comments, forums)
  • Pages with many external links you don’t vouch for
  • Affiliate disclosure pages

Rarely needed because link-level nofollow (below) is more precise.

Syntax:

<a href="https://example.com" rel="nofollow">Link text</a>

Use cases:

  • Paid links (Google requires this)
  • Affiliate links
  • Untrusted user-generated content
  • Login/signup links (don’t waste crawl budget)
  • Links to your own unimportant pages (cart, account, etc.)

Example: Affiliate link

<a href="https://affiliate.example.com/product?ref=123" rel="nofollow">
  Buy Now
</a>

Google introduced more specific link attributes:

AttributePurposeWhen to Use
rel="sponsored"Paid/affiliate linksAds, sponsored content, affiliate links
rel="ugc"User-generated contentComments, forum posts, user bios
rel="nofollow"Don’t pass link equityGeneral untrusted links

Multiple attributes:

<a href="https://example.com" rel="nofollow sponsored">Sponsored Link</a>

Which to use?

  • Affiliate links: rel="sponsored" (or nofollow sponsored)
  • Comment links: rel="ugc" (or nofollow ugc)
  • General untrusted: rel="nofollow"

Combining Noindex and Nofollow

Common Combinations

Noindex, follow (most common):

<meta name="robots" content="noindex, follow">
  • Don’t index this page
  • DO follow links on this page

Use for: Thank you pages, search results, tag archives


Noindex, nofollow (strict):

<meta name="robots" content="noindex, nofollow">
  • Don’t index this page
  • Don’t follow links on this page

Use for: Private pages, low-quality scraped content, spam


Index, nofollow (rare):

<meta name="robots" content="index, nofollow">
  • Index this page
  • Don’t follow links on this page

Use for: Disclaimer pages, pages with many affiliate links


Index, follow (default):

<meta name="robots" content="index, follow">
<!-- Or just omit the tag entirely -->
  • Index this page (it can rank)
  • Follow links on this page

Default behavior if no robots meta tag is present.


Common Mistakes

Noindexing Important Pages

Scenario: You accidentally add noindex to your homepage or key product pages.

How it happens:

  • Yoast SEO checkbox accidentally ticked
  • Staging site setting copied to production
  • WordPress “Discourage search engines” setting enabled

Result: Pages disappear from Google within weeks.

Fix:

  1. Remove the noindex tag
  2. Request re-indexing in Google Search Console
  3. Check other important pages with site search:
    site:example.com
    If key pages are missing, check for noindex.

Blocking Crawling AND Using Noindex

Wrong:

# In robots.txt:
Disallow: /thank-you/

# On thank-you page:
<meta name="robots" content="noindex">

Problem: Google can’t crawl the page, so it never sees the noindex tag.

Result: Page may still appear in search results (with “A description for this result is not available” text).

Fix: Remove the robots.txt block. Let Google crawl it so it can see the noindex tag.


Right approach:

  1. Allow crawling in robots.txt
  2. Add noindex meta tag to the page
  3. Google crawls → sees noindex → removes from results

Bad practice:

<a href="/about" rel="nofollow">About Us</a>
<a href="/contact" rel="nofollow">Contact</a>

Why it’s bad:

  • Wastes your own PageRank (doesn’t pass to your own pages)
  • Confuses Google about your site structure
  • Slows down discovery of new pages

When it’s okay:

  • Login/signup links (low SEO value)
  • Cart/checkout pages (transactional, not SEO targets)

Using Nofollow for Duplicate Content

Wrong assumption: “I’ll nofollow the duplicate page to avoid a penalty.”

Reality: Nofollow doesn’t fix duplicate content. Use:

  • Canonical tags to point to the original
  • 301 redirects to merge duplicates
  • Noindex if you can’t consolidate

Robots Meta Tag vs X-Robots-Tag

Meta Tag (HTML pages)

<head>
  <meta name="robots" content="noindex, nofollow">
</head>

Pros:

  • Easy to add
  • Works in all CMS platforms

Cons:

  • Only works for HTML pages
  • Can’t apply to PDFs, images, etc.

X-Robots-Tag (HTTP header)

Server-level implementation:

# Apache .htaccess
<FilesMatch "\.pdf$">
  Header set X-Robots-Tag "noindex, nofollow"
</FilesMatch>
# Nginx config
location ~* \.pdf$ {
    add_header X-Robots-Tag "noindex, nofollow";
}

Pros:

  • Works on ANY file type (PDFs, images, videos)
  • Can apply to entire directories
  • Harder for users to accidentally change

Cons:

  • Requires server access
  • More technical to implement

Testing Your Implementation

View Page Source

  1. Visit the page
  2. Right-click → View Page Source
  3. Search for <meta name="robots"

Google Search Console

  1. URL Inspection tool
  2. Enter your URL
  3. Check “Coverage” section for indexing status
site:example.com "exact page title"

If the page appears in results:

  • Noindex is not working (or not processed yet)

If it doesn’t appear:

  • ✓ Noindex is working

Note: Changes can take 1-4 weeks to fully process.

Browser Extensions


Quick Decision Guide

Should I use noindex?

ScenarioUse Noindex?
Thank you page after form submitYes
Search results page (/search?q=)Yes
Paginated pages (page 2, 3, 4…)Maybe (use rel=“prev/next” instead)
Category/tag pages with thin contentYes
Duplicate product pagesYes (or use canonical tag)
Admin/login pagesYes (+ password protect)
Pages you want to rankNo
Your homepageNo (unless staging site)

Should I use nofollow?

ScenarioUse Nofollow?
Affiliate linkYes (rel="sponsored")
Paid advertisementYes (rel="sponsored")
Comment linkYes (rel="ugc")
Link to your own pagesNo
Editorial link to trusted sourceNo
Login/cart linksMaybe (low priority)

What Surmado Checks

Surmado Scan looks for:

  • Important pages accidentally noindexed (homepage, key products)
  • Noindex + robots.txt block conflict
  • High-value pages with nofollow on internal links
  • Inconsistent indexing directives

Related: Robots.txt Essentials | Canonical URLs | Crawl Budget

Help Us Improve This Article

Know a better way to explain this? Have a real-world example or tip to share?

Contribute and earn credits:

  • Submit: Get $25 credit (Signal, Scan, or Solutions)
  • If accepted: Get an additional $25 credit ($50 total)
  • Plus: Byline credit on this article
Contribute to This Article