<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Akash Jain</title>
    <description>The latest articles on DEV Community by Akash Jain (@akash_jain_aaa382f4afb198).</description>
    <link>https://dev.to/akash_jain_aaa382f4afb198</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4076610%2F49b38472-c533-44b9-8c1b-985563e37aea.png</url>
      <title>DEV Community: Akash Jain</title>
      <link>https://dev.to/akash_jain_aaa382f4afb198</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/akash_jain_aaa382f4afb198"/>
    <language>en</language>
    <item>
      <title>I generated 8,664 SEO pages. Google indexed them. I got 9 clicks.</title>
      <dc:creator>Akash Jain</dc:creator>
      <pubDate>Tue, 18 Aug 2026 09:42:32 +0000</pubDate>
      <link>https://dev.to/tezvyn/i-generated-8664-seo-pages-google-indexed-them-i-got-9-clicks-216o</link>
      <guid>https://dev.to/tezvyn/i-generated-8664-seo-pages-google-indexed-them-i-got-9-clicks-216o</guid>
      <description>&lt;p&gt;I run a small tech-interview-prep site. It has 8,664 individual pages, one per&lt;br&gt;
concept — each with a real question, what it's actually testing, a model answer&lt;br&gt;
and the mistake that sinks candidates. Programmatic SEO, the whole playbook.&lt;/p&gt;

&lt;p&gt;Here's what 28 days of Google Search Console says:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Impressions&lt;/td&gt;
&lt;td&gt;6,511&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Clicks&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;9&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CTR&lt;/td&gt;
&lt;td&gt;0.14%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Average position&lt;/td&gt;
&lt;td&gt;45.9&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pages with at least one impression&lt;/td&gt;
&lt;td&gt;1,575 of 8,664 (18%)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Nine clicks. In a month. From nearly nine thousand pages.&lt;/p&gt;

&lt;p&gt;I want to walk through this honestly, because the conclusion I reached is not&lt;br&gt;
the one I expected, and it's not the one most posts about programmatic SEO&lt;br&gt;
land on.&lt;/p&gt;
&lt;h2&gt;
  
  
  What I assumed was wrong
&lt;/h2&gt;

&lt;p&gt;My working theory for weeks was &lt;strong&gt;"Google isn't indexing them."&lt;/strong&gt; That's the&lt;br&gt;
standard programmatic-SEO failure story: you publish thousands of pages, Google&lt;br&gt;
decides your new domain hasn't earned the crawl budget, and most of them sit in&lt;br&gt;
Search Console under &lt;em&gt;Discovered — currently not indexed&lt;/em&gt; forever.&lt;/p&gt;

&lt;p&gt;And early on that was true. A few weeks ago only &lt;strong&gt;6&lt;/strong&gt; pages had ever received&lt;br&gt;
an impression.&lt;/p&gt;

&lt;p&gt;It's now 1,575. Google is indexing them, steadily, without me doing anything&lt;br&gt;
new. The crawl budget arrived on its own schedule.&lt;/p&gt;

&lt;p&gt;The clicks did not.&lt;/p&gt;
&lt;h2&gt;
  
  
  The actual failure mode
&lt;/h2&gt;

&lt;p&gt;Here's the distribution that explains everything. Across 1,206 distinct queries:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Position&lt;/th&gt;
&lt;th&gt;Share of queries&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1–10&lt;/td&gt;
&lt;td&gt;12%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;11–20&lt;/td&gt;
&lt;td&gt;6%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;21–50&lt;/td&gt;
&lt;td&gt;23%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;51+&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;59%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Median position: 58.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That's page six of the search results. Nobody has ever been to page six of the&lt;br&gt;
search results.&lt;/p&gt;

&lt;p&gt;So the pages aren't missing from the index. They're &lt;em&gt;in&lt;/em&gt; the index, ranked&lt;br&gt;
below anything a human will scroll to. Indexed and invisible are close to the&lt;br&gt;
same thing, and the second one is more annoying because the dashboard fills up&lt;br&gt;
with numbers that look like progress.&lt;/p&gt;

&lt;p&gt;6,511 impressions is real. It's also what position 58 produces: Google shows&lt;br&gt;
your result to enough people that you see the impression, and none of them&lt;br&gt;
scroll far enough to see it.&lt;/p&gt;
&lt;h2&gt;
  
  
  The queries are the tell
&lt;/h2&gt;

&lt;p&gt;These are my top queries by impressions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  11 imp  pos 52.2   component team
  11 imp  pos 85.8   post mortem template
   8 imp  pos 53.8   component team in agile
   8 imp  pos 94.9   error budget
   8 imp  pos 80.2   postmortem template
   7 imp  pos 74.0   development cycle time
   6 imp  pos 28.8   blockers vs impediment
   5 imp  pos 33.6   prerendering vs ssr
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Look at what these are. "Post mortem template", "error budget", "component&lt;br&gt;
team" — these are &lt;strong&gt;established, well-covered terms&lt;/strong&gt;. Every one of them has a&lt;br&gt;
decade of results from Atlassian, Google SRE, Martin Fowler, and a hundred&lt;br&gt;
consultancies with real backlink profiles.&lt;/p&gt;

&lt;p&gt;I generated a page for each of them because the concept belonged in the corpus.&lt;br&gt;
But generating a page about "error budget" doesn't make me a candidate for that&lt;br&gt;
query. It makes me the 95th-best candidate, and Google is telling me so&lt;br&gt;
precisely.&lt;/p&gt;

&lt;p&gt;The pages ranking best are the &lt;em&gt;weird&lt;/em&gt; ones: "blockers vs impediment" at 28,&lt;br&gt;
"prerendering vs ssr" at 33, "awq vs gptq". Narrow, comparative, recent. The&lt;br&gt;
places where there genuinely isn't already a definitive answer.&lt;/p&gt;

&lt;p&gt;That's the actual lesson, and it's not about technique.&lt;/p&gt;

&lt;h2&gt;
  
  
  Things it isn't (so you can skip these)
&lt;/h2&gt;

&lt;p&gt;I spent real time ruling these out, so here's what's already clean:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rendering.&lt;/strong&gt; Next.js App Router, ISR. Pages are server-rendered HTML, not&lt;br&gt;
client-hydrated shells. &lt;code&gt;curl&lt;/code&gt; returns the full content.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Crawl paths.&lt;/strong&gt; Every page is reachable from a topic hub, which is reachable&lt;br&gt;
from the homepage. Nothing is orphaned behind a search box.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Canonicals.&lt;/strong&gt; One canonical per concept. Near-duplicate titles get collapsed&lt;br&gt;
to the oldest published version, so "Client-side vs server-side" and&lt;br&gt;
"Client-Side vs. Server-Side" don't compete with each other.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sitemaps and structured data.&lt;/strong&gt; Valid, submitted, &lt;code&gt;hasPart&lt;/code&gt;, &lt;code&gt;FAQPage&lt;/code&gt;,&lt;br&gt;
&lt;code&gt;isAccessibleForFree&lt;/code&gt;. All parsing correctly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Thin content.&lt;/strong&gt; Each page is a real explanation with a distinct answer and a&lt;br&gt;
distinct failure mode, not a template with a noun swapped in.&lt;/p&gt;

&lt;p&gt;None of that moved the needle. Which is the point: &lt;strong&gt;the technical layer was&lt;br&gt;
never the constraint.&lt;/strong&gt; I could have skipped weeks of it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually determines this
&lt;/h2&gt;

&lt;p&gt;Position 60 on "error budget" isn't a markup problem. It's an authority&lt;br&gt;
problem. A new domain with no inbound links competing against pages that have&lt;br&gt;
accumulated citations for ten years loses, and it loses by roughly the margin&lt;br&gt;
you'd expect.&lt;/p&gt;

&lt;p&gt;Every fix that lives inside my own codebase — better schema, faster LCP,&lt;br&gt;
tighter internal linking — operates on a variable that isn't binding. The&lt;br&gt;
binding variable is entirely outside the site.&lt;/p&gt;

&lt;p&gt;That's an uncomfortable conclusion for an engineer, because the work I know how&lt;br&gt;
to do is the work that doesn't matter here.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I'd do differently
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Don't generate a page for a term that already has a definitive answer.&lt;/strong&gt; The&lt;br&gt;
corpus needed "error budget" for completeness. Search did not. Those two goals&lt;br&gt;
are different and I conflated them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Target the comparative and the recent.&lt;/strong&gt; My best-ranking pages are the ones&lt;br&gt;
where the query is a genuine comparison ("blockers vs impediment") or new&lt;br&gt;
enough that authority hasn't consolidated ("awq vs gptq"). Fewer pages, aimed&lt;br&gt;
where there's a gap, would have outperformed 8,664 aimed everywhere.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Expect indexing to be slow and then irrelevant.&lt;/strong&gt; I optimised hard for&lt;br&gt;
getting indexed. Indexing arrived on its own and changed nothing. The metric I&lt;br&gt;
should have watched from day one was position distribution, not coverage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build the distribution before the pages.&lt;/strong&gt; Not after. This is the bit I got&lt;br&gt;
backwards and it's the expensive one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Disclosure
&lt;/h2&gt;

&lt;p&gt;The cards are drafted by language models against a fixed template, then&lt;br&gt;
machine-checked for structure and duplication. A human hasn't line-edited all&lt;br&gt;
8,664. The site says this on its about page, and I'd rather say it here than&lt;br&gt;
have someone find it and assume I was hiding it.&lt;/p&gt;

&lt;p&gt;I don't think that's why they rank at 60 — the well-covered terms would be&lt;br&gt;
outranked by an incumbent regardless of who wrote them. But it's a variable I&lt;br&gt;
can't rule out, and it would be dishonest to present this as a controlled&lt;br&gt;
experiment.&lt;/p&gt;




&lt;p&gt;The site is &lt;a href="https://tezvyn.com" rel="noopener noreferrer"&gt;tezvyn.com&lt;/a&gt; if you want to look at the pages&lt;br&gt;
themselves — the whole corpus is free to read, no account. I'd genuinely like&lt;br&gt;
to hear from anyone who's run programmatic SEO on a new domain and got past the&lt;br&gt;
authority wall, because I haven't yet.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>indiehacker</category>
      <category>webdev</category>
      <category>seo</category>
    </item>
  </channel>
</rss>
