← Build logs
SEOMay 28, 2026

GSC 'Discovered - currently not indexed' 22 Cases: The Day AI Rewritten Articles Were Rejected by Google

One-Line Summary

My sitemap has all 42 posts, I pinged IndexNow, and registered sitemap.xml on GSC, but for 3 months I've had 3 impressions / 0 clicks. I inspected each post with the URL Inspection API and found that 22 posts were "Discovered – currently not indexed." Google knew about the URLs from the sitemap but judged the pages as "not worth indexing."

Symptoms

  • Google Search Console — 3 impressions / 0 clicks (cumulative over 3 months)
  • sitemap.xml — All 42 published posts were listed normally
  • Naver Yetibot — Only scraped sitemap.xml, didn't fetch individual posts
  • IndexNow ping — Bing/Yandex responded with 200 OK
  • Still, almost 0 indexed in search results

Diagnostic Tool: GSC URL Inspection API

If sitemap ping and IndexNow didn't result in indexing, the next thing to check is the indexStatusResult for each post. Instead of clicking on each post in the GSC UI, I automated it with the URL Inspection API.

service.urlInspection().index().inspect(body={
    "inspectionUrl": "https://aicoreutility.com/blog/foo",
    "siteUrl": "sc-domain:aicoreutility.com",
    "languageCode": "ko",
}).execute()

The key field in the response is indexStatusResult:

  • verdict: PASS | NEUTRAL | FAIL | PARTIAL
  • coverageState: Human-readable status text ("Submitted and indexed", "Discovered – currently not indexed", ...)
  • indexingState: INDEXING_ALLOWED | BLOCKED_BY_META_TAG | ...
  • pageFetchState: SUCCESSFUL | SOFT_404 | BLOCKED_ROBOTS_TXT | ...
  • robotsTxtState, googleCanonical, userCanonical, lastCrawlTime

The quota is 2000 requests per property per day — plenty for tens or hundreds of posts.

Inspection Results — 2 Indexed Out of 42

verdictCountMeaning
PASS2 (5%)Indexing complete. Eligible for search results.
NEUTRAL — Discovered, not indexed22 (52%)Google knows the URL but rejected indexing.
NEUTRAL — URL is unknown to Google4 (10%)Not even crawled yet.
(Not Inspected)14 (33%)Will be inspected in the next batch.

Common Pattern in the 22 Posts

When I listed the slugs for the 22 NEUTRAL posts, a clear pattern emerged.

solo-dev-backend-retrospective-2022-2026
4-years-ai-exploration-solo-dev-retrospective
solo-dev-nginx-ssl-survival-log
solo-dev-aws-deployment-retrospective-2026
riel-chatbot-4-years-traffic-survival-strategy
riel-frontend-dev-retrospective-4-years
4-year-solo-developer-retrospective-with-chatgpt
solo-dev-llm-local-4-year-retrospective
... (22 posts, almost all the same theme)

They were almost all variations of "Solo Developer N-Year Retrospective." This was the result of batch rewriting titles and content to be SEO-friendly using LLMs when I imported 137 posts from Tistory about a month ago. While they looked okay to the human eye, Google saw:

  • Repetitive content on the same topic (solo dev retrospective) with slightly different keyword combinations.
  • Similar paragraph structures / introductory and concluding tones.
  • Lack of unique information (error messages, code snippets, screenshots).

Google classified these as "low-value duplicates" and did not index them. In fact, the "Scaled content abuse" section of the Google Spam Policies document describes this exact case.

Treatment — Batch Archive

Since they weren't indexed anyway, there was no loss. I decided to mark the 22 NEUTRAL posts, plus one more with the same pattern that hadn't been inspected yet, totaling 23 posts, as status='archived' all at once.

UPDATE blog_posts
SET status='archived', updated_at=NOW()
WHERE status='published'
  AND slug = ANY($1::TEXT[]);
-- UPDATE 23

My sitemap generation code already uses the WHERE status='published' filter, so without any extra work, the sitemap.xml went from 42 posts to 19. Individual post pages (/blog/[slug]) also now automatically return 404 (as get_by_slug uses the same filter).

Changes on Google's side will happen automatically:

  1. The next sitemap crawl (usually within a few days) will confirm the removal of the 23 posts.
  2. The status of those URLs will gradually change from "Discovered" to "Dropped."
  3. They will be naturally removed from the GSC "Pages" report within a few weeks.

The Remaining 19 — The Real "Records"

The commonalities among the posts that were *not* archived are:

  • Specific error messages included in the title (e.g., useState already declared, Cannot read properties of undefined (clientModules)).
  • Inclusion of unique data like code snippets, commands, and measured times.
  • Retrospectives that documented the problem, investigation, and solution.

From Google's perspective, posts like these are highly valued as "unique information not easily findable elsewhere." The quantitative result showed that even with fewer posts, having information that can help at least one other developer is crucial.

Lessons Learned

  1. "Registering a sitemap + pinging IndexNow = Indexing" is not true. Google first judges the value of the page itself, and if it doesn't meet the standard, it won't be indexed even if it's in the sitemap.
  2. Batch rewriting with LLMs is SEO suicide. Especially creating "N slightly different posts" on the same topic is exactly what Google catches. One high-quality post is stronger than N average posts.
  3. GSC URL Inspection is a free and brutal signal. If "Discovered – not indexed" is over 30%, it's a signal to re-evaluate your content strategy. If it's over 50%, you need to clean house immediately.
  4. Always check your indexed ratio before applying for AdSense. If you have few indexed posts, AdSense will likely be rejected. Having many published posts but few indexed is actually a negative signal.

Next Steps

Going forward, I will only publish posts that meet the following criteria:

  • Include at least one real-world error message, log, or screenshot.
  • Attach the solution code or commands (in a copy-paste and executable format).
  • Follow a three-part structure: "Why it didn't work -> How I found out -> How I fixed it."
  • 1-2 posts per week (quality over quantity).

I plan to run the URL Inspection again in two weeks to track the indexed ratio. Once the indexed post ratio exceeds 50%, I will apply for AdSense.