---
title: "Crawled, currently not indexed"
description: "Why Google discovers a SaaS page and then refuses to index it, how directory spam trained that habit, and what a listing has to include before you request indexing."
---

# Crawled, currently not indexed

2026-10-05 - 6 min read - 1268 words

Search Console has a calm way of delivering bad news. You submit the sitemap. The URL shows up under "Discovered, currently not indexed," then "Crawled, currently not indexed." The page is live. The crawler saw it. Google decided it was not worth a result.

Makers treat that as a penalty. It is usually a quality vote. Google already crawled more URLs than it wants to store. A thin listing, a duplicate of your homepage, or a doorway that exists only to catch "[competitor] alternative" will sit in that bucket until the page becomes a better answer, or until you delete it.

This is how that report works for software sites and directories, and what MakeItLast does so a new product does not create 25 copies of the same paragraph.

## What the coverage states actually mean

**Discovered, currently not indexed.** Google knows the URL (sitemap, link, or guess) and has not fetched it yet, or fetched it and put it at the back of the line. Crawl budget is real on a young domain. Flooding sitemaps with empty compare URLs makes this worse.

**Crawled, currently not indexed.** The fetch happened. The document was not chosen. Common reasons: the page is thinner than pages Google already has for that query, it duplicates another URL on your site, it looks like a doorway, the canonical points somewhere else, or the HTML is a 200 that reads like a 404.

**Duplicate, Google chose different canonical.** You wrote one title on two URLs. Google picked one. The other will not rank. This is how listing pages and "review" pages kill each other when both dump the same description.

**Soft 404.** The status is 200. The title says "not found." Google learns to distrust the host. Markdown twins on MakeItLast already return 404. The HTML page must do the same, with `noindex` while it renders the missing state.

**Excluded by noindex.** You asked for this. Studio, submit, login, and search-result pages should live here. Do not noindex the listing you wanted to rank.

If you only remember one row: crawled-not-indexed is not "wait longer." It is "this URL lost to a better document."

## Why directories trained Google to be picky

For years, programmatic SEO meant thousands of pages titled "Best X software" with three sentences and a table of affiliates. Google got good at spotting that. The spam reports from 2024 onward were explicit: scaled content that does not help a person is eligible for deindexing, including pages that are unique on paper and useless in practice.

That is why a catalog cannot "just generate 25 pages per submit" by reprinting the tagline. Volume without a new job for the page is how you earn a coverage report full of crawled-not-indexed URLs, and how you teach Google that your sitemap is a suggestion to ignore.

MakeItLast still fans a live listing out. The difference is the job of each URL:

- `/tools/{slug}` is the card. Name, official site, description, screenshots.
- `/tools/{slug}/review` is the listing read as a review: no fake star score, tags as claims, nearby tools. It must not paste the full description a second time.
- `/tools/{slug}/pricing` is the pricing and license tags, with a sentence that we did not scrape a rate card.
- `/tools/{slug}/for/{audience}` is "is this for indie / founders / ..."
- `/tools/{slug}/{facet}` is a high-intent tag on that product (free, subscription, open source), not a copy of the global tag page.
- `/tools/{slug}/alternatives` and `/compare/{a}-vs-{b}` only exist when another live listing shares a lane, a group, or a signal tag.

If the catalog cannot fill a job, the URL is not in the sitemap. Empty compare graphs stay out. That is the whole quality gate.

## What to do on your own site first

A directory cannot save a homepage Google already refused.

1. **One canonical host.** www or apex, HTTPS, 308 the rest. MakeItLast forces `www.makeitla.st`.
2. **The product name in text.** Not only in a canvas or a logo.
3. **A paragraph that answers "what is this."** If fill tools and directories have nothing to quote, neither does Google.
4. **Noindex the app chrome.** Dashboards, checkout, search pages with query strings.
5. **A sitemap of URLs you would show a person.** Lastmod that moves when the page moves. Do not list 5,000 placeholders.
6. **Request indexing on the homepage and one money URL**, not on every satellite the same afternoon.

Then list the product. The catalog page is a second document, not a substitute.

## How to read Ahrefs next to Search Console

Ahrefs Domain Rating moving a point is not indexing. Organic keywords on a listing URL is indexing. If Site Explorer (or the free DR endpoint) says the domain has strength and Search Console says the new URLs are crawled-not-indexed, believe Search Console about those URLs.

Use Ahrefs for:

- Which listing URLs already collect queries (`{name}`, `{name} alternatives`, `{name} vs {other}`).
- Whether a directory you are about to submit to actually ranks listing pages, not only its blog.

Use Search Console for:

- Coverage, canonical choice, and whether Googlebot got 200 or 404.
- Which query the listing is eligible for after it is indexed (Performance, not Coverage).
- Inspection of a single URL before you tweet that "Google hates us."

If both tools are quiet, you do not have a ranking problem. You have a document problem. Write a better page.

## What "request indexing" can and cannot do

URL Inspection, "Request indexing," works when Google already wanted the page and missed the recrawl. It does not override a quality vote. Requesting 200 satellite URLs in a morning is how you look like a doorway generator.

Request the listing. Request a compare pair only after both products are live and the pair has two real descriptions. Request a blog post when it is actually a note, not a tag page in essay clothing.

Sitemaps are the bulk path. MakeItLast splits them: pages, tools, categories, tags, groups, combos, alternatives, compare, satellites. Empty children stay out of the index file so Googlebot does not fetch a zero-URL sitemap on a loop.

## Soft 404s and other ways to lie with status codes

A page that says "Page not found" with HTTP 200 will be classified as a soft 404. It still burns crawl. It still confuses the markdown twin if the twin 404s and the HTML does not.

Rules we hold:

- Missing listing, missing compare pair, missing facet: `notFound()` in the page, `noindex` in metadata, no sitemap row.
- Reverse compare slug (`b-vs-a` when canonical is `a-vs-b`): 308 to the canonical. Do not index both.
- Search pages: `noindex, follow`.
- Submit, claim, studio, login: `noindex` and robots disallow.

If you copy this pattern on your own marketing site, do not serve the app's empty state as 200 on the blog.

## A checklist before you blame the algorithm

- Title and H1 name the same job. Listing is "{Name} - {Category}". Review is "{Name} review". Pricing is "{Name} pricing". Alternatives is "{Name} alternatives". Compare is "{A} vs {B}".
- The first paragraph is unique to that job.
- Canonical is self, except 308s.
- FAQ schema repeats answers that are visible on the page. No fake Review stars.
- Internal links use those titles as anchors, not "click here."
- The sitemap lastmod changed when you edited the card.

Then wait. A new domain with a few hundred listings does not get every satellite indexed in a week. Google will take the listing first, then a handful of compares that other sites already query, then the rest if those pages keep earning clicks.

Crawled, currently not indexed is Google saying the document lost. Make a document that can win, or delete the URL. Do not generate another copy of the loss.

HTML: https://www.makeitla.st/blog/crawled-currently-not-indexed
