All posts
Case study / persona·11 min read

SEO for indie hackers: the plan I used to go from 51 to 1,000 GSC impressions (as of July 2026)

TL;DR

SEO for indie hackers doesn't need an agency. This is the real-time plan CiteClip is running on itself: 51 GSC impressions in 90 days as of July 2026, targeting 1,000 by end of Q3. Four phases — positioning, deindex, ship, backlinks — in exact order.

This is a real-time case study on citeclip.com's own SEO. As of July 2026, Google Search Console shows 51 impressions and 1 click across the last 90 days. That's not a rounding error — it's what a domain with zero backlinks, post-pivot positioning schizophrenia, and 181 stale programmatic pages looks like in the wild. We're running a specific 12-week plan to get from there to 1,000 impressions and 20 clicks by end of Q3 2026. This post walks the plan phase-by-phase, publishes the actual baseline numbers, and will get a follow-up on 2026-09-29 with what worked and what didn't. If you're an indie hacker at a similar baseline, this playbook is dogfooded and copyable. If it works on us, we'll say so. If it doesn't, we'll say that too.

The starting point — 51 impressions, 1 click, 90 days

The raw numbers, from Google Search Console for the 90 days ending 2026-07-04: Impressions: 51. Clicks: 1. Average CTR: ~2%. Average position: mid-20s. Pages that have ever ranked: 1 (the homepage). Indexed pages: 181 pre-pivot programmatic + a handful of marketing pages. 51 impressions in 90 days is what a well-optimized personal blog does in an hour. If you're at that level and your instinct is 'let me fix my meta descriptions', the meta descriptions are not the problem. The problem is: nothing on your site is authoritative on anything, no one has linked to you, and Google has no reason to include you in its ranked set for any query. PostHog confirmed the downstream picture. Real external signups in the tracked window: 1 (immediately bounced). Only working distribution channel: /free-tools/youtube-transcript-search pulling ~10 uniques/week from ChatGPT referrals. The rest of the site was invisible to every acquisition surface. This is the honest baseline for a solo SaaS domain three months after a pivot with no launch push and no organic content strategy. If your numbers are worse, you're the target reader. If they're better, congrats — but the plan below still applies. The mistake most indie hackers make is optimizing conversion when discovery is broken. Fix in pipeline order.

Weeks 1-2 — Fix the crawlable surface

The first thing Google sees on your domain is the root metadata: title, description, OG tags, and JSON-LD in the root layout. If any of those describe a different product than your homepage's H1 does, you have positioning schizophrenia and Google will bury you. Our specific pre-fix state: the homepage said 'AI SEO articles informed by competitor monitoring.' The /free-tools/* pages said 'YouTube competitor monitoring for agencies.' The old blog said something different again. Three products across three surfaces. Google could not decide what the site was. Fix week 1: rewrite title, meta description, OG tags, and JSON-LD in app/layout.tsx to describe one product — the current one. Fix week 2: audit every marketing route, delete or rewrite anything that references the pre-pivot product. Ship every change. Time spent: ~6 hours total. Result: within 5 days, Google's index started showing the new title and description in the SERP for the branded query. Not a ranking win — a signal-clarity win. That's the precondition for everything downstream. If you don't fix positioning first, everything else compounds against you. You'll write beautiful blog posts targeting an audience your homepage tells Google is the wrong audience. As of July 2026 the top of our layout.tsx is a 40-line rewrite that took an afternoon and unlocked every subsequent improvement.

Weeks 3-4 — Deindex 181 legacy programmatic pages

When we pivoted in May 2026, the old programmatic pages didn't get deleted. 181 pages describing a product we no longer sell were still on the sitemap, still indexed, still competing with our new content for crawl budget. Every indexed page on a low-authority domain is a vote. A hundred stale pages tell Google 'this site is about the old thing.' Ten sharp new pages tell Google 'this site is about the new thing.' The stale votes drown out the new ones until you remove them. Two steps in weeks 3-4. First: set robots: { index: false, follow: true } on the legacy route metadata so Google deindexes them on next crawl (follow: true so any internal links out to current pages still transfer signal). Second: scoped sitemap.ts down to the ~10 current-product surfaces, removing the legacy 181. Deindexing is not instant. Google takes 30-90 days to fully drop noindex'd pages. But the crawl-budget effect is faster — within 2 weeks the current pages were being re-crawled twice as often, per GSC's Coverage report. As of July 2026 we're on day 8 of the deindex. The follow-up post will show what the impressions curve did. Do this before you publish more content, not after.

Weeks 5-8 — Ship 12 hero posts on the current ICP

Three hero posts went live in weeks 1-2 (a case study on bulkurlchecker, the generative-engine-optimization-checklist, and the solo-saas-seo-five-page-framework). The 12-week plan calls for 12 more — one per Tuesday, cross-linked, all targeting keywords from a priority pyramid we scored on volume × ranking realism × conversion. The template every post follows: primary keyword in the first 60 characters of the title, a TL;DR claim in the opening paragraph, a mechanism explanation, a numbered framework or checklist, at least one dogfood data point from bulkurlchecker.com or citeclip.com, and one CTA. Every post cross-links at least 2 other posts. No orphans. Content categories, ranked by target: (1) 'how to get cited by ChatGPT / Perplexity' — 4 posts. (2) Comparison posts vs SurferSEO, Frase, MarketMuse — 3 posts. (3) Persona posts for indie hackers, vibe coders, Next.js and Astro founders — 3 posts. (4) One tool-page format (the SEO gap analysis playbook) and one buffer. A scheduled weekly agent drafts each post on Monday; Carlos edits Tuesday morning; publish is at 9am ET Tuesday. Distribution runs within 48 hours via a 7-item checklist (X thread, LinkedIn, one subreddit, IndieHackers, 5 founder emails, 3 creator DMs, retro-edit 2 existing posts to link the new one). The bet: 12 posts on one thesis with consistent structure is what Google reads as topical authority. 12 scattered posts on 12 different themes is what Google reads as a content mill.

Weeks 9-12 — Earn 15 backlinks the honest way

Zero backlinks is the single biggest reason a new domain doesn't rank. You can publish 30 perfect articles and Google will still ignore you until other sites cite you. Our channels, in order: (1) ProductHunt launch in week 6. Target top-5 of day. Prep: 5 teaser tweets, ~10 friendly upvoters lined up (real founder friends who use the product, no fake accounts), a response bank for common Q&A. Realistic outcome: 200-500 referral visits, 3-5 press mentions, 5-8 dofollow backlinks. (2) Show HN in week 4. Angle: 'I built an AI SEO tool that monitors my competitors' blogs continuously.' The bulkurlchecker case study is the hook. Post at 8am ET Tuesday. Front page or bust — no second attempt without a substantively new hook. (3) IndieHackers milestone post in week 8: 'How I got my SaaS from 51 to N GSC impressions.' Whatever N is at the time we post. Honest number, not a hype metric. (4) 20 cold outreach emails over weeks 3-12. Personalized, founder-to-founder. Angle: 'I built this because bulkurlchecker had the same problem — thought you might too.' 10% response rate is the internal target. Target: 15 dofollow backlinks by 2026-10-04, 5+ from DR30+ domains. Tracked in a spreadsheet — no Ahrefs subscription yet. As of July 2026 we have 0 confirmed dofollow backlinks. Every one of these numbers will be reported honestly in the Q3 follow-up.

Why this specific order matters

Fix positioning first (weeks 1-2), deindex the noise (weeks 3-4), then ship content (weeks 5-8), then earn backlinks (weeks 9-12). Every phase depends on the one before it. Ship content before fixing positioning and Google will index those posts under the wrong topical signal — you'll rank for keywords you don't sell against. Skip the deindex step and your 12 new posts compete for authority against 181 old ones. Chase backlinks before you have a corpus and outreach targets will click through, see 3 blog posts, and move on. This is the general principle: fix in pipeline order, upstream first. If discovery is 51 impressions, no downstream fix (conversion, activation, retention) matters. Zero of zero is zero. That's the failure mode most indie-hacker SEO advice ignores. Every 'add a lead magnet' or 'optimize your CTA' post assumes you have traffic. You don't. This plan assumes you don't and builds the traffic first. Reference: the generative-engine-optimization-checklist explains the 23 on-page signals that compound with this plan once the corpus lands. Adding those signals to a 12-post corpus is what makes each post cite-able across Google and AI engines simultaneously.

What the Q3 follow-up will report

Every monthly report publishes four numbers: GSC impressions, GSC clicks, unique referring domains, and organic signups. No cherry-picked charts, no vanity metrics. If we hit the 1,000-impressions target by 2026-09-29, we double the content cadence in Q4. If we hit half (500 impressions), we hold cadence and double outreach. If we hit less than a quarter (250 impressions), we stop the calendar and reassess the thesis. That last line is the non-negotiable — we set it in advance so we don't rationalize later. We'll also publish the negatives: which posts got zero engagement, which distribution channels didn't return, which outreach templates got 0% reply rate. The point of a dogfooded case study is that it's honest. As of July 2026 we don't know whether the plan will work. We know the math suggests it should, and we know the alternative (do nothing, stay at 51) is worse than any outcome from running it. Follow-up post drops on 2026-09-29. If numbers don't hit, the post will say so on the record.

What to do if you're at 51 impressions

Copy the plan. It's not proprietary — it's discipline applied in the right order. Fix your title, meta, OG, and JSON-LD this week. Set legacy programmatic pages to noindex. Draft your first hero post. Repeat weekly. Launch on ProductHunt somewhere between weeks 4-8, once you have a corpus for people to click into. If you want the automated version — competitor monitoring, gap analysis, and AI-drafted articles against each identified gap — sign up at citeclip.com. First 4 articles are free, no credit card required. Run gap analysis on your own site during onboarding and let the article drafter cover 4 of the 12 posts you'd otherwise write manually. That's roughly 20 hours of writing time you get back for your product work. Either path works. The one that never works is the one you don't ship.


Draft the next post about your competitors — automatically

CiteClip monitors your competitors' blogs, runs gap analysis, and drafts SEO + GEO-ready articles with TL;DR + FAQ + JSON-LD schema baked in. Publish to WordPress with one click.