← Back to Building Theanna

The Journey to $1M ARR

As of March 6, 2026

$202,544 ARR$1M goal

20% there

My Blog Hit Page 1 of Google in 3 Weeks. Here’s the Exact SEO Playbook.

Nomiki Petrolla

Nomiki Petrolla

·14 min read

Solo founder & CEO of Theanna, the equity-free platform for non-technical women building tech startups. $202,544 ARR. Building in public, sharing the wins and the losses along the way.

Subscribe to Theanna

My unfiltered journey to $1M ARR as a solo female founder.

Get notified of new posts

I’m a non-technical solo founder at $203K ARR. I built my blog from scratch on my own domain using Claude Code. Three weeks and 10 posts later, Google has indexed 89 pages on my site, served 53,200 impressions, and ranked me at an average position of 6.9 — that’s page 1. Here’s every single thing I did, what the data means, how to read it, and the exact plan to double my traffic.

TL;DR: I launched a blog on my own domain 3 weeks ago. 53,200 impressions. 439 clicks. 89 pages indexed. Average position 6.9 (page 1). 96.55% of pages on the internet get zero traffic from Google — mine is in the top 3.45%. My CTR is 0.8%, which is below benchmark, and I’m sharing the exact 5-step plan to fix it. This post teaches you how to read Google Search Console data, what every metric means, industry benchmarks with cited sources, and the full SEO and AEO strategy behind these results.

What You Will Learn in This Post


First, Let Me Teach You How to Read This Data

If you’re a founder and you’ve never opened Google Search Console, this section is for you. I’m going to explain every metric I reference in this post so you can actually apply this to your own site.

What Is Google Search Console?

Google Search Console is a free tool from Google that shows you how your website performs in Google Search. It tells you which pages are showing up, what people are searching when they find you, and how often they click. If you have a website and you’re not using Search Console, you’re flying blind.

The Four Metrics That Matter

Impressions — the number of times your page appeared in someone’s Google search results. This does not mean they clicked. It means Google showed your page. High impressions mean Google thinks your content is relevant. It’s a visibility metric.

Clicks — the number of times someone actually clicked on your result. This is real traffic to your site. Clicks are what you ultimately care about, because impressions without clicks means people see you but don’t think you’re worth visiting.

Click-Through Rate (CTR) — clicks divided by impressions, expressed as a percentage. If your page got 100 impressions and 5 clicks, your CTR is 5%. This tells you how compelling your title and description are. A high CTR means your search result is attracting clicks. A low CTR means Google is showing you, but people are scrolling past.

Here’s what the industry data says about CTR benchmarks by position, according to FirstPageSage’s 2026 report:

PositionExpected CTR
139.8%
218.7%
310.2%
47.4%
55.1%
64.4%
73.0%
82.1%
91.9%
101.6%

Important caveat: these numbers are shifting fast. A 2025 study by GrowthSrc found that since Google introduced AI Overviews, CTR for position 1 has dropped from 28% to 19% — a 32% decline. Meanwhile, CTR for positions 6–10 actually increased by about 31%. The search landscape is changing, and the old benchmarks don’t always apply.

Average Position — where your pages typically rank in search results. Position 1 is the top. Positions 1–10 are page 1. Anything above 10 means you’re on page 2 or beyond, and almost nobody scrolls there. According to Backlinko’s study of 4 million search results, only 0.63% of searchers click on a result from page 2.


My Data Since Launch

I launched my blog on February 14, 2026. Here’s the full picture as of March 6 — three weeks.

  • 53,200 impressions total
  • 439 clicks from organic search
  • 0.8% average CTR
  • 6.9 average position
  • 89 pages indexed by Google

To put this in context: according to a study by Ahrefs analyzing 14 billion web pages, 96.55% of all pages on the internet get zero traffic from Google. Not low traffic. Zero. An additional 1.94% get only 1 to 10 visits per month. Only about 3.45% of all content on the internet gets any meaningful organic traffic at all.

My blog is three weeks old and it’s in that 3.45%.

Here’s another benchmark. Ahrefs also found that only 1.74% of newly published pages reach the top 10 within their first year. The average page ranking at position 1 is five years old. Most SEO practitioners tell clients to expect 4 to 6 months before seeing significant results.

I’m seeing page 1 rankings in three weeks. That doesn’t happen by accident. Here’s how I did it.

The Page-by-Page Breakdown

Here are my top-performing pages since launch, with the metrics explained:

PageClicksImpressionsCTR
Homepage2153,5406.1%
Lovable vs Claude Code563,9961.4%
State of Female Founders4827,8670.17%
Women Build Cool Sh*t224105.4%
How to Build a Waitlist184,4300.4%
Pricing125252.3%
Techstars Startup Weekend Women122734.4%
How a Non-Technical Founder Builds Frontend98821.0%
Female Founder Accelerators 202551,6660.3%
Non-Technical Founder44,3080.09%

How to Read This Table

Look at the State of Female Founders page. It has 27,867 impressions — by far my highest. That means Google is showing this page in search results almost 28,000 times. But only 48 people clicked, giving it a 0.17% CTR.

What does that tell me? Google thinks this page is highly relevant to what people are searching for. But the title and description showing up in search results are not compelling enough to make people click. The content might be good, but the “packaging” — what people see before they click — isn’t working.

Now look at Women Build Cool Sh*t. Only 410 impressions, but 22 clicks for a 5.4% CTR. That’s a much healthier ratio. The people who see this result want to click on it. The title creates curiosity. The problem is it’s not getting enough visibility yet.

This is the core skill of reading Search Console data: you’re looking for the gap between visibility (impressions) and action (clicks). Every page falls into one of four categories:

  • High impressions, high CTR — your best content. Protect and expand it.
  • High impressions, low CTR — your biggest opportunity. Fix the title and description.
  • Low impressions, high CTR — good content that needs more visibility. Build backlinks and internal links.
  • Low impressions, low CTR — needs a rethink. Either the topic doesn’t have search demand or the content doesn’t match what people want.

The Trend Line Matters More Than Any Single Day

The 24-hour view tells me what’s happening right now. The 7-day view tells me if things are trending. But the since-launch view tells the real story.

In the last 7 days alone:

  • 28,800 impressions (54% of my all-time total came in the last week)
  • 190 clicks (43% of my all-time clicks came in the last week)
  • Average position improved from 6.9 to 6.5

The takeaway: SEO compounds. The first week was slow. The second week picked up. The third week is my best yet. Every post I publish strengthens the domain, and every day that passes gives Google more signals that this site is active and authoritative.


The SEO Strategy Behind These Numbers

Here’s what most people get wrong about blog SEO: they think it’s about writing good content and hoping Google finds it. That’s maybe 30% of it. The other 70% is technical structure, schema markup, and intentional keyword targeting.

1. I Built on My Own Domain

I wrote a whole post about this already — Why I Built My Blog on My Own Website Instead of Using Substack or Beehiiv. The short version: every blog post I publish on theanna.io builds my domain authority. If this content lived on Substack, those 53,200 impressions would be building Substack’s SEO. Not mine.

2. Keyword Targeting Per Post

Every post has 10 to 15 specific keyword targets in its metadata. These are based on what people actually search for, not what I think sounds good.

My Lovable vs Claude Code post targets terms like “Lovable vs Claude Code comparison,” “AI coding tools for non-technical founders,” “best AI coding tool 2026,” and “non-technical founder build MVP.” Those are real queries. That post has 3,996 impressions because it matches real search demand.

How to do this yourself: Before writing a post, type your topic into Google. Look at autocomplete suggestions. Look at “People also ask.” Look at related searches at the bottom of the results page. These are all real queries with real volume. Target them intentionally.

3. Structured Data and Schema Markup

This is the most technical thing I do, and it’s also the highest-leverage. Every blog post includes:

  • ArticleSchema — tells Google exactly what this post is, who wrote it, when it was published, and what it covers
  • FAQSchema — structured FAQ data that can appear directly in Google search results as rich snippets
  • DefinedTermSetSchema — glossary terms that help Google and AI models understand the key concepts
  • Entity Markup — explicit mentions of brands, people, and topics so search engines know what’s referenced
  • BreadcrumbSchema — clear site hierarchy so Google understands where each post fits
  • HowToSchema — step-by-step structured data for instructional posts
  • Speakable selectors — markup that tells voice assistants which sections are best for audio

Why does this matter? According to research compiled by Schema App, pages with structured data see an average 30% improvement in CTR. One case study showed a 454% increase in CTR after implementing review schema. For AI search specifically, structured data delivers a median 22% citation lift in AI-generated results.

Most blogs have none of this. My blog has all of it on every single post.

4. AEO: Optimizing for AI, Not Just Google

SEO gets your content into Google. AEO — answer engine optimization — gets your content into AI.

When someone asks ChatGPT or Claude or Perplexity about AI coding tools for non-technical founders, the AI pulls from structured, authoritative content on the web. My FAQ schemas, glossary terms, and entity markup aren’t just for Google’s rich snippets. They’re structured data that AI models can parse and reference.

I am writing content today that I want AI to cite a year from now. Every post is a deposit into a compound-interest account for AI discovery.

5. Topic Selection Based on Search Intent

I don’t write about whatever I feel like. I write about what people are searching for. There’s a difference.

My top blog post by impressions? A comparison: Lovable vs Claude Code. People search “[Tool A] vs [Tool B]” constantly when making decisions. My highest-impression page overall? State of Female Founders with 27,867 impressions. People are actively searching for data about women in startups.

The pattern: write content that answers a specific question someone is already typing into a search engine.

Content types that generate the most search demand:

  • Comparison posts (“X vs Y”) — people search these when making buying decisions
  • Data-driven posts with specific numbers — people search for real results, not theory
  • How-to posts targeting a specific audience — “how to [action] for [audience]” is a powerful search pattern
  • State-of / statistics posts — people search for current data constantly

6. Publishing Frequency

10 posts in 3 weeks. That’s aggressive. But frequent publishing signals to Google that your site is active and worth crawling often. According to Google’s own guidance, fresh, regularly updated content is a factor in crawl frequency. Independent research found that 83% of new pages are indexed within the first week on sites that publish regularly.


What’s Working

Comparison posts dominate. Lovable vs Claude Code has 3,996 impressions and 56 clicks — my top blog post by every measure. If you have genuine experience with two tools, write the comparison. It will rank.

Data-driven posts get impressions. My Meta ads case study pulls consistent impressions because people search for real ad spend data. Nobody wants another thought piece about marketing. They want numbers.

Schema markup is compounding. My domain started from zero three weeks ago and I’m averaging position 6.9. According to industry benchmarks, new domains typically take 4 to 6 months to see meaningful rankings.

The homepage converts at 6.1% CTR. 215 clicks from 3,540 impressions. That’s healthy branded search, which tells me people who search for Theanna specifically are clicking through.


What’s Not Working: The CTR Problem

My average CTR is 0.8%. For an average position of 6.9, industry benchmarks say I should be closer to 3–4%. That means I’m getting roughly a quarter of the clicks I should be getting.

The biggest offenders:

PageImpressionsClicksCTRExpected CTR
State of Female Founders27,867480.17%~3–4%
Non-Technical Founder4,30840.09%~3–4%
How to Build a Waitlist4,430180.4%~3–4%
Female Founder Accelerators1,66650.3%~3–4%
Theanna vs Accelerators1,04840.4%~3–4%

Let me walk you through what this means. Take the State of Female Founders page. It has 27,867 impressions and 0.17% CTR. If I could get that CTR to even 2% — still below the industry benchmark — that would be 557 clicks. I currently have 48. That’s an 11x increase in traffic from one page, without changing the content, without building backlinks, without publishing anything new. Just by making people want to click.

Why is the CTR so low? Two likely reasons:

  • The title doesn’t match the search intent. If someone searches “female founder statistics 2026” and my title says “State of Female Founders,” it’s descriptive but doesn’t promise the specific data they want. A title like “Female Founder Funding Statistics 2026: The Gap Is Getting Worse” would generate more clicks because it promises a specific insight.
  • The meta description is generic. The description is the 1–2 sentence preview that shows under the title in search results. If it doesn’t immediately promise value, people skip it.

The Exact Plan to Fix CTR

Step 1: Audit the Queries Tab

For every high-impression, low-CTR page, I’m checking the Queries tab in Search Console. This shows the exact search terms people are typing when my page appears. If my State of Female Founders page shows up for “female founder funding gap 2026” but my title doesn’t mention funding gaps, there’s a mismatch I can fix.

Step 2: Rewrite Meta Titles

Good titles follow patterns:

  • Include a number: “27 Women. 27 States. Inside the March 2026 Cohort.” beats “Meet the Women Building Cool Sh*t.”
  • Promise a specific outcome: “How to Build a Waitlist That Hits 1,000 Signups in 30 Days” beats “How to Build a Waitlist.”
  • Create a curiosity gap: “The $6,000 Meta Ad Test Results Are In. I Was Wrong.” — you have to click to find out why.
  • Match the search query: If people search “Lovable vs Claude Code,” put those exact words in your title.

Step 3: Rewrite Meta Descriptions

The meta description should be 150–160 characters, include your primary keyword naturally, promise a specific takeaway, and create urgency or curiosity.

Step 4: Track the Impact

After each rewrite, I track CTR changes weekly. Google Search Console data has a 2–3 day delay, so I measure in weekly intervals. A successful title rewrite should show CTR improvement within 1–2 weeks.

Step 5: Keep Publishing

Every new post is another indexed page, another set of keywords, another signal to Google. Publishing frequency is the engine. Everything else is optimization on top of that engine.


The Full Blog Tech Stack

For founders who want to replicate this:

  • Next.js 16 with React 19 — powers the entire marketing site and blog
  • Vercel — hosting and deployment. Push to GitHub, auto-deploys in ~60 seconds
  • Claude Code — I build every blog post, every schema, every page. $216/month
  • TypeScript ContentBlock arrays — blog content is structured data, not markdown. Full control over rendering and SEO
  • Custom schema components — ArticleSchema, FAQSchema, HowToSchema, DefinedTermSetSchema, BreadcrumbSchema. All built with Claude Code
  • Tailwind CSS 4 — styling
  • Google Search Console — tracking performance and identifying CTR opportunities

Additional monthly blog cost beyond my existing tools: $0.


What I’d Tell Every Founder About Content

Start now. Not next quarter. SEO compounds. Every day you wait is a day you’re not building domain authority. 96.55% of pages on the internet get zero traffic. The way you beat that stat is by starting early, publishing consistently, and optimizing intentionally.

Write for your audience’s search intent, not your ego. The posts that perform best answer questions people are already asking. Use Google autocomplete, “People also ask,” and Search Console queries to find those questions. Then write the best answer on the internet.

Invest in structured data. Schema markup is not optional in 2026. It’s the difference between Google understanding your content and Google guessing at it. FAQ schema, article schema, entity markup, glossary terms — all of it helps Google and AI models index and surface your content.

Read your Search Console weekly. The founders who grow organic traffic are the ones who look at their data. Find your high-impression, low-CTR pages. Fix the titles. Fix the descriptions. That’s where your traffic is hiding in plain sight.

Own your domain. Every post on Substack or Beehiiv builds someone else’s SEO. Every post on your own site builds yours. The convenience isn’t worth the compound value you’re giving away.


The Bottom Line

Three weeks. 10 blog posts. 53,200 impressions. 439 clicks. 89 pages indexed. Page 1 rankings across multiple keywords. Built from scratch by a non-technical founder using Claude Code.

This is not magic. It’s structure, consistency, and intentional optimization. The numbers are still small, and the CTR is still a problem I’m actively solving. But the trajectory is clear and the foundation is solid.

I’ll keep sharing the real data as it comes in. The wins and the losses. That’s the whole point of building in public.


Want to Learn How to Build Like This?

Theanna members get 4 live sessions a month on how to use Claude Code, Lovable, and the exact SEO and AI workflows I use to build my company. We teach founders how to build product, create content that ranks, and actually ship. Get 50% off your first month.

Get 50% Off Your First Month

A note on how I write these: I use an AI agent to help me research, outline, and draft these posts. But every opinion, every number, and every story comes from me and my actual experience building Theanna. I don’t publish anything I haven’t lived. The agent helps me move faster — the perspective is always mine.