---
title: "Indexing verdicts"
description: "Every Google indexing status explained in plain English, with the usual cause and the fix."
canonical_url: "https://nuxtseo.com/pro/docs/concepts/indexing"
last_updated: "2026-05-06T18:44:24.588Z"
---

Google reports one verdict per URL. The dashboard groups by verdict so you can fix a whole category at once instead of page by page.

<table>
<thead>
  <tr>
    <th>
      Verdict
    </th>
    
    <th>
      What happened
    </th>
    
    <th>
      Typical cause
    </th>
    
    <th>
      Fix
    </th>
  </tr>
</thead>

<tbody>
  <tr>
    <td>
      <strong>
        Indexed
      </strong>
    </td>
    
    <td>
      In Google's index, eligible to rank.
    </td>
    
    <td>
      Nothing to do.
    </td>
    
    <td>
      -
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Discovered, not indexed
      </strong>
    </td>
    
    <td>
      Google knows the URL exists but hasn't crawled it.
    </td>
    
    <td>
      Low internal link equity to this URL.
    </td>
    
    <td>
      Link to the page from higher-authority pages.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Crawled, not indexed
      </strong>
    </td>
    
    <td>
      Crawled, then Google chose not to index it.
    </td>
    
    <td>
      Thin, duplicate, or low-quality content.
    </td>
    
    <td>
      Expand, consolidate with a similar page, or remove.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Excluded by noindex
      </strong>
    </td>
    
    <td>
      <code className="language-html shiki shiki-themes github-light github-light material-theme-palenight" language="html" style="">
        <span class="sx-uw">
          <
        </span>
        
        <span class="sV-QU">
          meta
        </span>
        
        <span class="sg-iE">
          name
        </span>
        
        <span class="sx-uw">
          =
        </span>
        
        <span class="sbw7o">
          "
        </span>
        
        <span class="sJnJ8">
          robots
        </span>
        
        <span class="sbw7o">
          "
        </span>
        
        <span class="sg-iE">
          content
        </span>
        
        <span class="sx-uw">
          =
        </span>
        
        <span class="sbw7o">
          "
        </span>
        
        <span class="sJnJ8">
          noindex
        </span>
        
        <span class="sbw7o">
          "
        </span>
        
        <span class="sx-uw">
          >
        </span>
      </code>
      
       present.
    </td>
    
    <td>
      Deliberate on staging/draft pages; accidental on real ones.
    </td>
    
    <td>
      Remove <code>
        noindex
      </code>
      
       if unintentional.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Blocked by robots.txt
      </strong>
    </td>
    
    <td>
      Disallowed in <code>
        robots.txt
      </code>
      
      .
    </td>
    
    <td>
      Overly broad <code>
        Disallow
      </code>
      
       pattern.
    </td>
    
    <td>
      Tighten the pattern in <code>
        robots.txt
      </code>
      
      .
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Alternate with canonical
      </strong>
    </td>
    
    <td>
      Canonical points to another URL; Google followed it.
    </td>
    
    <td>
      Expected behavior for variants (<code>
        ?utm
      </code>
      
      , <code>
        ?page=2
      </code>
      
      ).
    </td>
    
    <td>
      Usually leave alone. Verify the canonical is right.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Duplicate without user-selected canonical
      </strong>
    </td>
    
    <td>
      Google picked a different canonical than declared.
    </td>
    
    <td>
      No canonical declared, or Google disagrees.
    </td>
    
    <td>
      Declare a canonical explicitly; check it matches intent.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Not found (404)
      </strong>
    </td>
    
    <td>
      URL returns 404.
    </td>
    
    <td>
      Deleted pages, broken links.
    </td>
    
    <td>
      301 redirect to a live URL, or fix the link source.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Page with redirect
      </strong>
    </td>
    
    <td>
      URL redirects.
    </td>
    
    <td>
      Working as intended, or old URLs in sitemap.
    </td>
    
    <td>
      Remove from sitemap if it's a permanent redirect.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Soft 404
      </strong>
    </td>
    
    <td>
      200 status, but Google thinks the page is empty/broken.
    </td>
    
    <td>
      Client-side rendered content with no SSR; empty category pages; 200 responses on error.
    </td>
    
    <td>
      Ensure content renders server-side; return real 404 for error states.
    </td>
  </tr>
  
  <tr>
    <td>
      <strong>
        Server error (5xx)
      </strong>
    </td>
    
    <td>
      Page returned 5xx when Google crawled.
    </td>
    
    <td>
      Intermittent failure or real bug.
    </td>
    
    <td>
      Check logs around the last crawl time.
    </td>
  </tr>
</tbody>
</table>

## Triage order

Fix in this order for the best ROI:

1. **Server errors (5xx)** - fastest signal loss, usually a deploy issue.
2. **Soft 404 on real pages** - you're losing indexing on content that should rank.
3. **Crawled, not indexed** - Google actively rejected pages. Quality problem.
4. **Excluded by noindex** on pages you meant to index - usually a misconfigured meta tag.
5. **Discovered, not indexed** - internal linking work, lower urgency.
6. **Duplicate without user-selected canonical** - only critical if the wrong URL is getting indexed.

## Related

- [Fix indexing issues](/pro/docs/workflows/fix-indexing) for the end-to-end workflow.
- [Sitemap module](/docs/sitemap/getting-started/introduction) for generating clean sitemaps.
