Build faster indexing workflows without the spreadsheet swamp. Open the app
Diagnostic Checklist

Why Is My URL Not Indexed? Diagnosis Checklist

Most indexation failures are caused by five root problems. This checklist gives you a repeatable process to isolate the specific reason your URL is stuck, from noindex directives to crawl budget starvation. No fluff. Just diagnostics.

On this page
Field notes

The Five Gates of Indexation

Googlebot must pass through five gates before a URL lands in the index: discoverability, crawlability, content evaluation, indexability, and serving eligibility. If any gate is blocked, the URL stays out. The Google URL Inspection tool reveals exactly which gate is closed, but only if you know what to look for. Most SEOs stop at 'Crawled - currently not indexed' and guess. Don't guess. This checklist forces you to test each gate with evidence.

In practice, when you open a Google Search Console URL inspection report, pay attention to the 'Coverage' status line. It will say one of: 'URL is not on Google', 'Indexed', 'Crawled - currently not indexed', 'Discovered - currently not indexed', or 'Page with redirect'. Each status maps to a specific gate. Misreading the status is the most common wasted time. For example, 'Discovered - currently not indexed' means Google found the URL via a link or sitemap but hasn't tried to crawl it yet. That is a crawl budget problem, not a content problem.

Workflow map

Diagnostic Flowchart: Gate-by-Gate Check

1. Discoverability

Is the URL in a sitemap OR linked from a known indexed page? If no, submit via GSC.

2. Crawlability

Does robots.txt block the URL? Check with robots.txt tester. Also check nofollow links.

3. Noindex / Canonical

Does the page have a noindex robots meta tag? Does canonical point to a different URL?

4. Server & Content

Does the server return 200? Is the content thin, duplicate, or behind a login?

5. Crawl Budget

Is your site's total crawl budget sufficient? Check GSC crawl stats for low crawl rate.

Data table

Coverage Status Quick Reference

GSC Coverage StatusRoot Cause (Most Likely)Immediate ActionFailure Mode / Risk
Discovered - currently not indexed
URL found via sitemap or link, not crawled yet
Crawl budget starvation or low priorityImprove internal linking depth; submit via URL Inspection toolIf ignored for >2 weeks, URL may never get crawled; submit again
Crawled - currently not indexed
Googlebot visited, but chose not to index
Thin content, duplicate content, or low perceived valueAdd unique value, fix duplicate canonicals, or improve page quality scoreRe-crawl may not help if content issue persists; rewrite or merge
Page with redirect
URL returns 3xx to another URL
Permanent or temporary redirect chainUpdate internal links to point to final URL; avoid redirect chains >2 hopsRedirect chains waste crawl budget; indexable pages must be direct 200
Soft 404
URL returns 200 but shows empty or error page
Misconfigured CMS, empty templates, or non-existent contentFix server response to return 404 or 410 for truly missing pagesGoogle treats soft 404s as errors; too many can lower site-wide crawl rate
Blocked by robots.txt
URL disallowed in robots.txt
Disallow directive in robots.txt for URL or directoryRemove disallow rule or move URL to allowed path; test with robots.txt testerGoogle still discovers but never crawls; check for accidental wildcard blocks
Worked example

Worked Example: Finding the Blocking Factor

You have a high-value guest post on example.com/blog/guest-post-seo-tips. Three weeks after submission, the URL still shows 'Discovered - currently not indexed' in GSC. Here is the exact step-by-step diagnosis:

1. Open the URL Inspection tool. Check the 'Last crawl' date: empty. Means never crawled.
2. Check robots.txt with the tester: Disallow: /blog/ is set. That is the block. The guest post directory is disallowed.
3. The site owner added that disallow to conserve crawl budget on a low-value blog section. But this guest post is high-authority. Solution: request a narrow exception, e.g., Allow: /blog/guest-post-seo-tips above the disallow line.
4. After the robots.txt fix, re-submit via URL Inspection. Next crawl happens within 48 hours. URL moves to 'Indexed'.
5. Total time saved: 3 weeks of waiting vs 10 minutes of diagnosis.

Field notes

Robots.txt: The Silent Killer

A common situation we see in audits: a client complains that 70% of their new blog posts are not indexed. We check robots.txt. Someone added Disallow: /blog/ six months ago and forgot. The dev team was testing a staging site. The disallow leaked to production. The URLs were in sitemaps, had good content, and strong inbound links. But Googlebot never crawled them. The fix took 30 seconds. The lesson: always start the url not indexed reasons checklist with robots.txt. It is the fastest check and the most common self-inflicted wound.

Also watch for accidental wildcards. A rule like Disallow: /*.pdf$ can block all PDFs if the site uses parameterized PDF links. Edge case: some CMS platforms generate temporary session IDs in URLs. If robots.txt has Disallow: /*sessionid= but the session ID parameter name is different, the block never fires. You end up with duplicate URLs eating crawl budget.

The URL Not Indexed Reasons Checklist

1

Confirm the URL is in your XML sitemap and submitted via GSC.

2

Test robots.txt with the GSC robots.txt tester. Ensure the URL path is allowed.

3

Inspect the page source for a <meta name='robots' content='noindex'> tag. Remove if present.

4

Check the rel=canonical tag. Does it point to the exact same URL? If not, fix it.

5

Verify the server returns a 200 HTTP status. A 3xx or 5xx will block indexation.

6

Check for login walls or paywalls. Googlebot must see the full content without authentication.

7

Review GSC Coverage report for manual actions or security issues on the site.

8

Assess content quality. If the page is thin (<300 words) or duplicate, rewrite or add unique value.

Field notes

Canonical and Noindex: The Confusion Duo

One of the most confusing edge cases: a URL has both a noindex tag and a self-referencing canonical. Google's documentation says noindex overrides canonical. But in practice, when you set both, Google may still pick the canonical URL from a different page and ignore the noindex on the current URL. The result: the wrong page gets indexed, and the intended page stays out. Checking if your backlinks are indexed often surfaces this issue when you see a backlink pointing to URL A but the indexed page is URL B. The fix: never mix noindex and canonical on the same page. If you want a page out of the index, use noindex alone. If you want to consolidate duplicates, use canonical alone.

How to Use the URL Inspection Tool for Each Gate

  1. Open GSC > URL Inspection. Paste the URL. Press Enter.
  2. Read the 'Coverage' line. It tells you the gate status. Write it down.
  3. Click 'Test Live URL'. This forces Google to re-crawl and check the current state.
  4. Scroll to 'Crawl allowed?' section. If 'No', fix robots.txt.
  5. Scroll to 'Indexing allowed?' section. If 'No', remove noindex tag.
  6. Check 'Page fetch' status. If not 200, fix the server response.
  7. If all green but still not indexed, the issue is content quality or crawl budget. Review the 'Crawled - currently not indexed' help doc.

FAQ: Diagnosis & Fixes for Specific Situations

How to check if a backlink URL is indexed by Google for guest posts?

Use the GSC URL Inspection tool on the guest post URL. If it says 'Indexed', the backlink is live. If it shows 'Discovered - currently not indexed', the page has not been crawled yet. You can also use the site: search operator, but GSC is more reliable for diagnosis. For batch checks, consider using the Google Indexing API for time-sensitive guest posts.

What is the fastest way to index backlinks in Google for SEO?

The fastest method is to use the Google Indexing API if the page is job posting or live streaming (eligible content types). For standard pages, request indexing via the URL Inspection tool in GSC, then build at least one follow internal link from an already-indexed page. Avoid cheap PBNs or mass submit tools; they often trigger spam filters and slow down indexation.

Why is my URL not indexed even though it has no noindex tag?

Check the canonical tag first. If the canonical points to a different URL, Google may treat your URL as a duplicate and skip indexation. Second, verify that the URL is not blocked by robots.txt. Third, ensure the page returns a 200 status and has substantive content (at least 300 words of unique text). If all pass, the page may be in a crawl budget queue; improve internal links.

How to diagnose a bulk list of URLs not indexed for agencies?

Export the 'Crawled - currently not indexed' list from GSC Coverage report. Use a tool like Screaming Frog or Python script to check each URL for noindex, canonical, robots.txt, and status code. Filter by common patterns (e.g., all URLs under /blog/). If 80% share a root cause, fix that first. For the remaining 20%, inspect individually. Agencies should automate this with the GSC API.

What does 'Crawled - currently not indexed' mean in Google Search Console?

It means Googlebot visited the URL, evaluated the content, and decided not to include it in the index. Common reasons: thin content, duplicate content, low perceived value, or the page is near the index limit of the site. Google may re-visit later if the page gains authority. To fix, improve the content uniqueness and add internal links from high-authority pages on the same domain.

How to fix indexation errors for a new website with crawl budget issues?

First, ensure your sitemap only contains high-priority pages (no thin or duplicate URLs). Second, remove any noindex tags from pages you want indexed. Third, build quality external backlinks to your most important pages. Fourth, use the GSC URL Inspection tool to submit a few key URLs manually. Do not submit all URLs at once; that wastes crawl budget. Monitor crawl stats daily.

What are the common server errors that cause URL not indexed?

Soft 404s (page returns 200 but shows empty content), 5xx server errors (500, 502, 503), and redirect chains (3xx to 3xx to final URL). Also, slow server response times over 5 seconds can cause Googlebot to abort the crawl. Use the GSC Crawl Errors report to see which pages return non-200 codes. Fix the underlying server configuration or CMS template.

How to use the Google Indexing API for bulk URL submission?

The Indexing API only works for pages with JobPosting or BroadcastEvent structured data. If your pages qualify, you can submit up to 200 URLs per day per project. Authenticate with OAuth 2.0, send a POST request to the API endpoint with the URL and type. Check the response for errors. This is not a general-purpose indexation tool; for standard content, use sitemaps and URL Inspection.

Why is my guest post URL not indexed after 2 weeks?

Likely causes: the host site has a low crawl budget, the page has no internal links from indexed pages, or the host's robots.txt blocks the directory. Ask the site owner to add an internal link from a homepage or popular post. Also, ask them to submit the URL via their GSC. If the site has a 'noindex' rule on guest posts, that is a policy issue. Verify by checking the page source.

What is the difference between 'Discovered' and 'Crawled' in GSC?

'Discovered - currently not indexed' means Google knows the URL exists (via sitemap or link) but has not attempted to crawl it yet. 'Crawled - currently not indexed' means Google has crawled the page but chose not to include it in the index. The first is a crawl budget problem; the second is a content or quality problem. The fix for 'Discovered' is to increase crawl priority; for 'Crawled', improve the page.

Next reads

Related guides

Budget math

Estimate the cost of waiting

Quick calculator. Put in the expected monthly value of a page or link batch and the natural waiting time.