How We Grew Organic Traffic 312% in 6 Months (Case Study)

 

How We Grew Organic Traffic by 312% in 6 Months

A Full SEO Case Study

Most SEO case studies are useless.

They show you a hockey-stick graph, tell you they “optimized on-page elements and built high-quality backlinks,” and leave out everything that actually mattered — the 40 pages they deleted, the three months where nothing moved, the internal argument about whether to kill a top-performing blog post.

This one is different. Below is the complete six-month record of how we took a mid-market B2B SaaS site from 8,400 organic sessions per month to 34,600 — a 312% increase — including the parts that didn’t work.

You’ll get the audit findings, the keyword research process, the content architecture, the internal linking system, the link acquisition tactics, the exact month-by-month numbers, and the four things we’d do differently if we started over tomorrow.

If you’re trying to figure out how to increase organic traffic on a site that’s technically functional but strategically adrift, this is the playbook.

 

The Client and the Starting Point

The client was a B2B SaaS company selling workflow automation software to operations teams at mid-market companies (roughly 200–2,000 employees). Average contract value: about $18,000 annually. Sales cycle: 60–90 days. Six-person marketing team, no dedicated SEO.

They came to us with a specific frustration: they’d been publishing blog content consistently for two and a half years — 140+ posts — and organic traffic had been flat for eleven straight months. Not declining. Flat. Which is arguably worse, because flat means you’re doing enough work to feel busy and not enough to compound.

Here’s what the starting state looked like:

MetricBaseline (Month 0)
Monthly organic sessions8,400
Ranking keywords (top 100)1,847
Ranking keywords (top 10)62
Referring domains214
Domain Rating (Ahrefs)41
Indexed pages312
Organic conversions/month31
Avg. organic session duration1:12
Blog posts published143

Two numbers in that table tell the whole story. 1,847 ranking keywords but only 62 in the top 10. That’s a ratio of roughly 3%. A healthy content-driven site sits somewhere between 8% and 15%. The site had visibility — it just had visibility on page four.

And 143 blog posts producing 8,400 sessions works out to about 59 sessions per post per month. But that average lied. When we pulled the actual distribution, 11 posts drove 71% of all organic traffic. The other 132 posts were, collectively, doing almost nothing.

That distribution is the single most common pattern we see in SEO audits, and it’s the most important thing to understand before you write another word of content: most content sites don’t have a content volume problem. They have a content concentration problem.

 

The Results Up Front

I’ll give you the outcome now so you can decide whether the process is worth reading.

MetricMonth 0Month 6Change
Monthly organic sessions8,40034,600+312%
Ranking keywords (top 100)1,8474,213+128%
Ranking keywords (top 10)62389+527%
Referring domains214361+69%
Domain Rating4152+11 pts
Indexed pages312218−30%
Organic conversions/month31168+442%
Avg. organic session duration1:122:47+132%
Organic pipeline attributed~$47k~$310k+560%

Notice the indexed pages line. We grew traffic 312% while reducing the number of indexed pages by 30%. That’s not a typo, and it’s not incidental — it’s central to how this worked.

Also notice that the top-10 keyword count grew nearly 5x faster than the top-100 count. We didn’t primarily find new keywords. We moved existing keywords from page three to page one. That’s a much cheaper way to grow organic traffic than starting from zero, and it’s the first place anyone with an aging content library should look.

 

Phase 1: The Audit (Weeks 1–3)

We spent three weeks auditing before touching anything. That feels slow. It isn’t. Every week of audit saved roughly a month of misdirected work.

The audit ran across five dimensions.

1. Crawl and Index Analysis

We ran a full crawl (Screaming Frog, 500k URL license) and cross-referenced against Google Search Console’s Index Coverage report and server log files from the previous 90 days.

Findings:

  • 312 pages indexed, but only 187 had received a single organic click in 90 days. 125 pages were pure index bloat.
  • 47 pages returned 200 status codes with near-duplicate content — mostly tag archives and paginated category pages with thin, templated intros.
  • Crawl budget was being burned on faceted navigation. The product comparison tool generated URLs with query parameters (?sort=, ?filter=, ?view=) that Google was crawling enthusiastically. Log files showed 34% of Googlebot requests hitting parameterized URLs that had never ranked for anything.
  • The XML sitemap listed 402 URLs, 90 of which 404’d or redirected. The sitemap hadn’t been regenerated since a site migration 14 months earlier.
  • Orphan pages: 29. Pages with no internal links pointing to them at all, discoverable only via the sitemap.

That log file finding is the one people skip, and it’s the one that pays. If you’ve never pulled server logs for a technical SEO audit, you’re guessing about what Google actually does on your site instead of knowing.

2. Content Quality Assessment

We scored all 143 blog posts on a simple matrix:

  • Organic sessions (90 days)
  • Ranking keywords in top 20
  • Conversion events attributed
  • Topical relevance to core product
  • Content depth vs. current SERP

This produced four buckets:

BucketCountDefinitionAction
Performers11Driving traffic + conversionsProtect and expand
Nearly-theres34Ranking 11–30 for relevant termsUpgrade aggressively
Irrelevant58Ranking or not, unrelated to productDelete or consolidate
Dead weight40No rankings, no traffic, no relevanceDelete

That “irrelevant” bucket deserves a moment. The client had, over two years, published posts on remote work culture, productivity hacks, “10 Podcasts Every Manager Should Hear,” and office design trends. None of it was bad content. All of it was written for an audience that would never buy workflow automation software. It attracted traffic that bounced, diluted the site’s topical signal, and consumed internal link equity.

3. Keyword Gap Analysis

We pulled the ranking keyword sets for the four closest competitors and identified terms where:

  • At least two competitors ranked in the top 10
  • The client ranked below position 20 or not at all
  • Search intent was commercial or high-intent informational
  • Monthly volume exceeded 100 (US)

This surfaced 412 gap keywords, which we later clustered into 9 topic groups.

4. Backlink Profile Review

DR 41 with 214 referring domains is a modest but clean profile. Notable findings:

  • 68% of links pointed to the homepage. Almost no deep links to content.
  • 31 links came from a single guest-post network the client had paid for in 2022. Low quality, but not toxic enough to warrant disavow.
  • The 11 performing blog posts had accumulated 43 organic referring domains between them — proof that the site could earn links when the content warranted it.

That last point mattered enormously for strategy. It meant we didn’t have a link acquisition problem so much as a link-worthy asset problem.

5. Technical Performance

Core Web Vitals, mobile usability, structured data, HTTPS, hreflang (none needed — US only).

  • LCP: 4.1s on mobile (failing). Cause: an uncompressed hero image on the homepage template, and render-blocking third-party scripts (chat widget, two analytics tools, an A/B testing snippet loading synchronously).
  • CLS: 0.24 (failing). Cause: the cookie banner injecting after paint, plus images without dimension attributes.
  • INP: 310ms (needs improvement).
  • Zero structured data beyond a basic Organization schema.

 

Phase 2: Technical SEO Remediation (Weeks 3–6)

Technical SEO rarely produces dramatic traffic growth on its own. What it does is remove the ceiling. You can have the best content strategy in the world and it will underperform on a site where Googlebot spends a third of its budget crawling ?sort=price_asc.

Here’s what we shipped, in priority order.

Crawl Control

  1. Blocked parameterized URLs via robots.txt disallow patterns, plus canonical tags pointing to clean URLs as a backstop. (We used robots.txt rather than noindex deliberately — we wanted to stop the crawling, not just the indexing, because crawl budget was the constraint.)
  2. Removed tag archives entirely. 47 tag pages, 410 Gone, no redirects. They had no traffic, no links, and existed purely because the CMS made them by default.
  3. Rebuilt the XML sitemap as a dynamically generated file including only canonical, indexable, 200-status pages. Split into /sitemap-posts.xml, /sitemap-pages.xml, /sitemap-product.xml with an index file.
  4. Fixed 90 broken sitemap entries by removing them.
  5. Resolved 29 orphan pages — 21 were deleted as part of pruning, 8 were integrated into internal link paths.

Result within 4 weeks: log files showed Googlebot requests to parameterized URLs dropped from 34% to under 3%. Requests to blog content increased 41% without any change in total crawl volume. We didn’t get more crawl budget; we redirected the budget we had.

Core Web Vitals

  1. Hero image: 1.4MB PNG → 89KB WebP with an AVIF fallback, properly sized with srcset, fetchpriority="high" on the LCP element.
  2. Third-party scripts: chat widget deferred to load on user interaction, A/B testing tool moved to server-side, one of two redundant analytics tools removed entirely.
  3. CLS: explicit width/height on all images, cookie banner reserved space via CSS, font loading switched to font-display: optional with a preloaded subset.
  4. INP: broke up a long JS task on the pricing calculator that was blocking the main thread.

Result:

MetricBeforeAfter
LCP (mobile p75)4.1s1.9s
CLS0.240.04
INP310ms145ms
CWV pass rate12% of URLs94% of URLs

Did Core Web Vitals directly cause ranking gains? Honestly — probably marginally. It’s a lightweight signal. But LCP dropping from 4.1s to 1.9s moved the mobile bounce rate from 68% to 51%, and that’s a real business outcome independent of rankings.

Structured Data

We implemented:

  • Article schema on all blog posts with proper author, datePublished, dateModified
  • BreadcrumbList sitewide
  • FAQPage on 23 posts with genuine Q&A sections
  • SoftwareApplication on the product pages
  • Organization with sameAs links cleaned up

FAQ rich results appeared for 14 of the 23 tagged posts within six weeks, and those posts saw an average CTR lift from 2.1% to 3.4% at unchanged average positions. That’s a 62% relative CTR improvement from markup alone — one of the highest-ROI hours in the entire engagement.

 

Phase 3: Keyword Research and Content Architecture (Weeks 4–8)

This is where the strategy actually lived.

The Problem With How Most Keyword Research Works

The standard process: dump seed terms into a tool, filter by volume and difficulty, export a spreadsheet of 800 keywords, assign them to writers one-per-post.

That produces 800 disconnected pages competing with each other, none of which signal topical authority on anything.

We did it differently.

Step 1: Define the Topical Territory

Before pulling a single keyword, we answered one question: what should this site be the definitive resource on?

Not “what can we rank for.” What should we own.

The answer, after a workshop with their product and sales teams: operational workflow automation for mid-market ops teams. Specifically the intersection of process documentation, approval workflows, and cross-tool integration.

That definition became a filter. Every keyword got tested against it. “Best productivity apps” — high volume, low difficulty, and completely outside the territory. Cut. Not because it wouldn’t rank, but because ranking for it would actively dilute the site’s topical signal and attract an audience that would never convert.

Step 2: Build the Cluster Map

We pulled keywords from:

  • Ahrefs Keywords Explorer (seed expansion + competitor gaps)
  • Google Search Console (existing impressions with poor CTR — a goldmine, more on this below)
  • Google’s People Also Ask, autocomplete, and related searches
  • Reddit and r/ops, r/sysadmin threads
  • The client’s own sales call transcripts (Gong exports — this was the single best source)
  • Support ticket subject lines

Total raw pool: 3,140 keywords.

After filtering against the topical territory: 1,120 keywords.

We then clustered them by SERP overlap rather than by semantic similarity. This is the important methodological detail. Two keywords belong on the same page if Google returns substantially the same results for both — not if they sound similar to a human.

The mechanic: for each keyword, pull the top 10 URLs. If two keywords share 4+ URLs in their top 10, they cluster. We used Keyword Insights for this; you can do it manually with an API and a script if you’re stubborn.

Result: 1,120 keywords collapsed into 187 distinct pages across 9 topic clusters.

That collapse ratio — 6 keywords per page — is what most keyword research misses entirely. Teams write 1,120 posts when they need 187.

Step 3: Structure Each Cluster

Every cluster got a hub-and-spoke architecture:

PILLAR PAGE (head term, 3,000–5,000 words, commercial intent)
├── Spoke: subtopic A (informational, 1,500–2,500 words)
├── Spoke: subtopic B
├── Spoke: subtopic C
├── Spoke: comparison/alternative page (commercial)
└── Spoke: template/tool page (transactional, link magnet)

The nine clusters:

ClusterPillar Target KeywordEst. VolumeSpokes
1workflow automation software4,400/mo14
2approval workflow2,900/mo11
3process documentation3,600/mo13
4business process mapping2,400/mo9
5SOP software1,900/mo8
6workflow templates5,400/mo16
7operations management3,200/mo10
8task automation tools2,100/mo12
9integration platforms1,600/mo9

Nine pillars, 102 spokes, 187 total pages including existing assets to be upgraded.

Step 4: The Search Console Goldmine

This deserves its own section because it produced the fastest wins in the entire engagement.

We exported 16 months of GSC query data and filtered for:

  • Impressions > 500/month
  • Average position between 8 and 25
  • CTR below the expected curve for that position

This surfaced 143 queries where the site was already visible but underperforming. Not new keywords. Existing impressions being wasted.

Roughly a third were pure title tag and meta description problems — pages ranking at position 9 with a CTR of 0.8% when the position-9 average is around 2.5%. Rewriting titles to lead with the query term and add a specificity hook (a number, a year, a qualifier) produced measurable lifts within two weeks, with no ranking change at all.

The other two-thirds needed content upgrades — which fed directly into the “nearly-theres” bucket from the audit.

Weeks 5–7 were spent entirely on this. Zero new content. Just title/meta rewrites and content upgrades to 34 existing pages.

Month 2 traffic: 11,900 sessions (+42% from baseline). From no new content. Just fixing what was already there.

This is the part I want people to actually take away from this SEO case study. Before you write anything new, go find out what you’re already almost ranking for. The cheapest traffic you will ever get is the traffic you’re already 80% of the way toward.

 

Phase 4: The Content Pruning Decision (Week 7)

We recommended deleting 98 of 143 blog posts.

The client’s content lead had written about 60 of them personally.

This was, predictably, the hardest conversation of the engagement.

The Case for Deletion

Here’s the argument we made, and it’s the argument I’d make to you:

1. Internal link equity is finite and it’s being distributed. Every page on the site receives some share of authority from the pages linking to it. 143 blog posts means the equity flowing into your blog subfolder gets divided 143 ways. Cut to 45 posts and each remaining post gets roughly 3x the share. You haven’t gained any authority — you’ve just stopped diluting it.

2. Topical signal is an average, not a sum. Google’s understanding of what a site is about is shaped by the aggregate of its content. 58 posts about office culture and podcasts on a workflow automation site don’t add “workflow automation authority + office culture authority.” They produce a fuzzier, less confident signal about what the site is for.

3. Crawl budget is spent on what exists. Every zombie page is a page Googlebot visits instead of your new pillar.

4. Quality signals are evaluated at site level. There’s reasonable evidence that site-wide quality assessments exist and that a large volume of low-engagement content can suppress the performance of good content on the same domain.

The Process

We didn’t delete blindly. Each of the 98 pages got a decision:

ActionCountCriteria
301 redirect to relevant page41Had backlinks or residual traffic; a topically-relevant target existed
Consolidate into a stronger page22Content was salvageable and belonged inside a spoke or pillar
410 Gone35No links, no traffic, no relevant redirect target

The redirect rule we used: only redirect to a page that genuinely serves the same intent. Redirecting “10 Podcasts for Managers” to the workflow automation pillar isn’t consolidation, it’s a soft 404 that Google will treat as such and ignore. If there’s no honest target, use 410. Let it die cleanly.

Consolidation meant actually merging the content — taking the two decent paragraphs out of a mediocre 900-word post and integrating them into a spoke where they belonged, then redirecting.

The Outcome

We executed the pruning in a single deployment in week 7.

Traffic dropped 8% in weeks 8–9. This was expected and we’d pre-communicated it. Then it recovered, then it kept going.

By month 4, the 45 surviving posts were collectively driving more traffic than all 143 had at baseline. Same content, minus the noise.

The clearest single data point: one pillar-adjacent post that had been stuck at position 14 for eight months moved to position 6 within three weeks of the pruning. We changed nothing about that post. We just deleted 98 pages that had been competing with it for internal link equity.

 

Phase 5: Content Production at Scale (Weeks 8–24)

With the foundation clean, we started building.

Production Volume

  • Weeks 8–24 (17 weeks): 61 new pages published
  • 34 existing pages upgraded (from the “nearly-theres” bucket)
  • Cadence: 3–4 pages/week
  • Total by month 6: 45 surviving legacy posts + 61 new + 112 = 218 indexed pages (down from 312)

The Brief System

Every piece got a brief before a writer touched it. The brief contained:

  1. Target keyword cluster — all 4–9 keywords the page must serve, with volumes
  2. SERP analysis — what the current top 5 look like, what format they use, word count range, what they all cover, what none of them cover
  3. Search intent classification — informational / commercial / transactional / navigational, and the specific job the searcher is trying to do
  4. Required subtopics — derived from SERP overlap + People Also Ask + the client’s sales call transcripts
  5. The differentiator — the specific thing this page will have that no competitor has. Non-negotiable. If we couldn’t name it, we didn’t write the page.
  6. Internal links out — exact target URLs and anchor text (5–8 per page)
  7. Internal links in — which existing pages get updated to link here
  8. Conversion path — which CTA, which offer, where it sits
  9. Schema requirements
  10. Author assignment — with a real byline, real credentials, real author page

Point 5 is the one that separated this from a content mill. “The differentiator” forced every page to justify its existence. For the approval workflow pillar, the differentiator was 11 real approval workflow diagrams pulled from anonymized customer implementations — something no competitor had because no competitor had the customers.

The E-E-A-T Layer

For a B2B site selling to operations professionals, generic content is death. Everything went through a subject matter expert.

Concretely:

  • Every post was co-authored with either the client’s Head of Ops or one of three customers who agreed to be quoted
  • Author bios linked to real LinkedIn profiles with genuine credentials
  • We built proper author pages with Person schema, sameAs links, and bibliographies
  • Original data: we ran a survey of 340 ops professionals and published the results, which became reference material for our own content and a link magnet

That survey took six weeks and cost about $4,000. It generated 31 referring domains over the following four months and got cited in two industry newsletters. It was the highest-ROI single asset of the engagement.

Format Decisions

We stopped writing “blog posts” and started writing whatever format the SERP demanded:

  • Pillar pages: long-form, heavily subheaded, with a sticky table of contents and jump links
  • Comparison pages: actual comparison tables above the fold, opinionated verdicts, no “it depends on your needs” cop-outs
  • Template pages: the template itself, immediately, above any explanation. Downloadable. Gated only after the free preview.
  • Definition/informational spokes: answer in the first 40 words, then expand. Structured for featured snippets.

That last one produced 23 featured snippets by month 6, up from 2 at baseline. The formula was mechanical: the H2 states the question verbatim as searched, the next paragraph answers it in 40–55 words in a self-contained way, then the detail follows.

 

Phase 6: Internal Linking as a Ranking Lever

I’d argue internal linking was the second-highest-leverage activity in this entire project, behind pruning. It’s also the most underrated tactic in SEO, because it’s unglamorous, it’s tedious, and no tool does it well automatically.

The Baseline Problem

At audit, the site’s internal linking was accidental. Links existed where a writer happened to remember a related post. The 11 performing posts had an average of 12 internal links pointing to them. The other 132 averaged 1.4. Rich get richer, purely by accident.

Meanwhile, the money pages — the product and pricing pages — received internal links almost exclusively from the global navigation. Almost nothing from content.

The System We Built

1. Hub-and-spoke enforcement. Every spoke links to its pillar with a descriptive anchor. Every pillar links to every one of its spokes. Cluster integrity, mechanically enforced. No exceptions.

2. Lateral spoke links. Spokes within a cluster link to each other where contextually genuine — 2–4 lateral links each. Never forced.

3. Cross-cluster bridges. Where two clusters genuinely overlap (approval workflows and process documentation, for instance), a small number of bridge links. Sparingly — clusters should be mostly self-contained or you’re back to a flat, undifferentiated link graph.

4. Money page links from high-authority content. Every pillar links to the relevant product page at least once, contextually, with a commercial anchor.

5. The link-in requirement. No page publishes without at least 5 existing pages updated to link to it. This is the step everyone skips. Publishing a page and linking out from it does nothing for that page’s authority. It’s the links in that matter, and they have to be added retroactively to existing content.

6. Anchor text variation. Exact match, partial match, and natural-language anchors mixed. No single anchor used more than ~30% of the time for a given target.

7. Depth ceiling. No revenue-relevant page more than 3 clicks from the homepage. We enforced this with a monthly crawl check.

The Measurable Effect

We ran an unintentional natural experiment. In month 3, we completed the internal linking build-out for clusters 1, 2, and 3 but not for clusters 4–9 (production timing, not design).

 Clusters 1–3 (linked)Clusters 4–9 (not yet linked)
Pages3841
Avg. position, month 314.227.8
Avg. position, month 49.726.1

Same content quality, same production process, same authors, published in the same window. The linked clusters moved almost 5 positions in a month. The unlinked ones moved 1.7.

When we completed the link build-out for clusters 4–9 in month 4, they followed the same trajectory in months 5–6.

Internal linking is free. You already own every one of those pages. There is no more cost-effective ranking lever available to you.

 

Phase 7: Link Acquisition Without Guest Post Spam

Referring domains went from 214 to 361 — 147 new domains in six months. Here’s exactly where they came from.

SourceNew RDsEffortNotes
Original research (the survey)31High (6 wks, $4k)Best ROI asset
Digital PR / data pitches24MediumDerived from the survey
Free tools (2 built)22High (dev time)ROI calculator + workflow template generator
Unlinked brand mentions19LowPure outreach, fastest wins
Broken link building14MediumTargeted competitor’s dead resources
Podcast appearances12Low-mediumClient’s CEO, 12 shows
Integration partner pages11LowExisting partners, just asked
Community/organic14ZeroEarned passively

What Actually Worked

Unlinked brand mentions were the fastest. We ran a Google/Ahrefs/Mention sweep for the brand name and found 63 mentions without links. A single-sentence email — “thanks for the mention, would you be open to linking it?” — converted 19 of them. Two days of work, 19 referring domains. If you do nothing else from this section, do this one.

Integration partner pages were embarrassingly easy. The client integrated with 14 tools. Nine of those tools had partner directories. They had never asked to be listed on any of them. Eleven links, one afternoon.

The free tools compounded. The workflow ROI calculator got linked by 22 domains organically over four months because it was genuinely useful and no competitor had one. It also converted at 4.1% — better than any content page on the site.

What We Explicitly Didn’t Do

  • No paid guest posts
  • No link exchanges
  • No PBNs
  • No directory submissions beyond genuine industry-relevant ones
  • No “we noticed your article and wrote a better one” outreach (a 0.4% response rate is not a strategy)

The link profile at month 6 had a DR of 52 and was 100% defensible. That matters more than the number.

 

Month-by-Month Breakdown

Here’s the actual shape of the growth, which is less of a hockey stick than the headline implies.

MonthSessionsChangeWhat Shipped
0 (baseline)8,400Audit begins
18,900+6%Technical fixes, sitemap, crawl control
211,900+42%Title/meta rewrites, 34 page upgrades
313,100+56%Pruning executed (traffic dipped weeks 8–9, then recovered), first 12 new pages
419,400+131%Clusters 1–3 linked, 24 more pages, survey published
526,800+219%Clusters 4–9 linked, 18 more pages, PR push
634,600+312%7 more pages, tools launched, compounding

Three things to notice.

Month 1 was nearly flat. Three weeks of audit and a technical remediation sprint produced a 6% lift. If you’re running an engagement and your client is anxious in month 1, that’s normal. The work being done in month 1 is what makes months 4–6 possible.

Month 2 was the biggest relative jump, and it came from existing pages. 42% growth from title tags and content upgrades on pages that already existed.

Months 4–6 accelerated rather than plateaued. 6.3k, then 7.4k, then 7.8k in absolute monthly additions. That’s the compounding signature — new pages ranking faster because the domain got stronger, because the earlier pages ranked.

 

What Didn’t Work

Any SEO case study without this section is marketing, not documentation.

1. The Programmatic SEO Experiment

In month 3 we built 340 programmatic pages targeting [industry] workflow templates — “manufacturing workflow templates,” “healthcare workflow templates,” and so on. Templated pages with dynamically inserted industry examples.

They ranked for approximately nothing. 340 pages, 190 organic sessions total over three months.

Why it failed: the pages were structurally identical with swapped nouns. There was no genuine differentiation between “manufacturing workflow templates” and “logistics workflow templates” because we didn’t have genuinely different content for each — we had a template with a variable.

We deindexed all 340 in month 5. Programmatic SEO works when you have a genuine underlying dataset that makes each page substantively different (Zillow has different houses; Yelp has different restaurants). It does not work when the only difference is a find-and-replace.

2. The Video Content Push

We produced 14 videos and embedded them across the cluster content on the theory that they’d improve engagement signals and open a YouTube traffic channel.

Engagement signals: no measurable change. YouTube: 400 total views across 14 videos over four months.

Cost: roughly $9,000 and eight weeks of a marketer’s part-time attention. That $9,000 in additional content production or a second original research study would have returned meaningfully more.

Video isn’t useless — but as an SEO tactic on a B2B site with no existing video audience, it was a distraction from the thing that was working.

3. Chasing a High-Volume Head Term Too Early

In month 2, the client pushed to target “business process automation” (18k/mo, KD 78). We built the pillar. It sat at position 40-something for the whole engagement.

The mistake was sequencing. That term needed the domain authority we’d have by month 8 or 9. Building it in month 2 meant we spent our best writer’s two weeks on a page that produced nothing, when the same two weeks on three mid-difficulty spokes would have produced traffic and built the authority to eventually win the head term.

Earn the head terms. Don’t reach for them.

4. Over-Optimizing Two Pages

We got greedy on two comparison pages — exact-match anchors, keyword-stuffed H2s, density that a human would notice. Both dropped 15+ positions in month 4. We rewrote them to read naturally in month 5 and both recovered and exceeded their prior positions by month 6.

Small mistake, quickly fixed, but worth including: the line between optimization and over-optimization is real, and the tell is whether a knowledgeable human reader would find the page slightly weird.

 

The Compounding Effect Nobody Talks About

Here’s the thing that surprised even us.

Pages published in month 5 reached page one 63% faster than pages published in month 2. Same authors, same brief system, same difficulty range.

Publish monthAvg. days to top 10
Month 274 days
Month 361 days
Month 444 days
Month 527 days

Why? Because by month 5 the site had:

  • A dense internal link graph that immediately gave new pages authority
  • Established topical authority in nine defined clusters
  • Higher domain authority (DR 41 → 52)
  • Clean crawl paths, meaning new pages got discovered and indexed in hours instead of days
  • A track record of quality content on the same subjects

The 61st page you publish in a well-built system outperforms the 1st page, by a lot. This is the actual argument for SEO as a long-term channel, and it’s not “SEO takes time.” It’s that SEO gets cheaper per unit of output the longer you do it correctly — and it gets more expensive the longer you do it incorrectly, because every bad page you publish makes the next good page work harder.

 

How to Replicate This

If you’re looking at your own site and wondering where to start, here’s the sequence, in order. Do not skip ahead.

Weeks 1–3: Diagnose

  • ☐ Full crawl (Screaming Frog or Sitebulb)
  • ☐ Pull 90 days of server logs and find out where Googlebot actually goes
  • ☐ Export 16 months of GSC query data
  • ☐ Score every page: sessions, top-20 keywords, conversions, topical relevance
  • ☐ Bucket into Performers / Nearly-theres / Irrelevant / Dead weight
  • ☐ Competitor keyword gap analysis
  • ☐ Backlink profile review
  • ☐ Core Web Vitals field data (CrUX, not Lighthouse)

Weeks 3–6: Clear the Ground

  • ☐ Fix crawl budget waste (parameters, facets, archives)
  • ☐ Rebuild the XML sitemap from scratch, canonical URLs only
  • ☐ Fix the top-2 Core Web Vitals failures — ignore the rest for now
  • ☐ Ship Article, BreadcrumbList, and FAQPage schema
  • ☐ Resolve orphan pages

Weeks 5–7: Harvest What You Already Have

  • ☐ Find every query with 500+ impressions at position 8–25 with below-curve CTR
  • ☐ Rewrite those title tags and metas
  • ☐ Upgrade the content on the “Nearly-theres”
  • This is your fastest win. Do it before writing anything new.

Week 7: Prune

  • ☐ 301 anything with links or traffic to a genuinely relevant target
  • ☐ Consolidate salvageable content into stronger pages
  • ☐ 410 the rest
  • ☐ Expect a 2–4 week dip. Pre-communicate it to whoever will panic.

Weeks 4–8 (parallel): Architect

  • ☐ Define your topical territory in one sentence — what you should own
  • ☐ Filter every keyword against it ruthlessly
  • ☐ Cluster by SERP overlap, not semantic similarity
  • ☐ Design hub-and-spoke structures per cluster
  • ☐ Map every page before writing any page

Weeks 8+: Build

  • ☐ Brief every page (including “the differentiator” — no differentiator, no page)
  • ☐ Real authors, real expertise, real bylines
  • ☐ 5+ internal links in before publish, added to existing pages
  • ☐ Enforce cluster link integrity
  • ☐ One original data asset per quarter
  • ☐ Sweep unlinked brand mentions on day one — it’s free

Ongoing

  • ☐ Monthly crawl for depth and orphan regressions
  • ☐ Quarterly content audit — pruning is not a one-time event
  • ☐ Track days-to-top-10 as a leading indicator of system health

 

FAQ

How long does SEO take to show results?

In this SEO case study, meaningful movement appeared in month 2 (+42%) and came entirely from optimizing existing pages rather than publishing new ones. New content published in month 2 took an average of 74 days to reach the top 10. The honest answer is that timelines depend enormously on whether you have existing assets to harvest — a site with an aging content library can see movement in 4–6 weeks, while a new domain should plan on 8–12 months.

Is deleting content really safe for SEO?

Deleting content is safe when it’s genuinely low-value, correctly triaged, and properly redirected or 410’d. The risk isn’t deletion — it’s careless deletion. Redirect anything with backlinks or residual traffic to a topically relevant target. Use 410 only when no honest target exists. Expect a temporary dip of 5–10% for 2–4 weeks. In this case, 98 pages were removed and traffic grew 312% over the following five months.

How many blog posts do you need to rank?

The wrong question. This site went from 143 posts to 45 surviving legacy posts plus 61 new ones and grew traffic more than 4x. What mattered was that 1,120 target keywords were consolidated into 187 pages rather than spread across 1,120. Coverage per page beats page count.

What was the single highest-leverage activity?

Content pruning, closely followed by internal linking. Both are free, both are unglamorous, and both work by concentrating authority you already have rather than acquiring new authority.

Does internal linking actually affect rankings that much?

In the natural experiment described above, clusters with a completed internal link build moved from an average position of 14.2 to 9.7 in a single month. Comparable clusters without the link build moved from 27.8 to 26.1 in the same window. Same content, same authors, same publication window. Yes.

Do Core Web Vitals improve rankings?

Marginally, at best, as a direct ranking factor. The real return here was a mobile bounce rate improvement from 68% to 51% after LCP dropped from 4.1s to 1.9s — a business outcome that doesn’t require a ranking change to be worth doing.

Why did programmatic SEO fail here?

Because the pages weren’t substantively different from each other. Programmatic SEO requires a genuine underlying dataset that makes each page unique. A template with a swapped industry name is 340 near-duplicate pages, and Google treats them accordingly.

 

The One-Paragraph Version

Audit before acting. Find what you’re already almost ranking for and fix that first — it’s the cheapest traffic you’ll ever get. Delete the content that dilutes you. Define what you should own in one sentence and filter everything against it. Cluster keywords by SERP overlap and consolidate ruthlessly. Give every page a reason to exist that no competitor can match. Link internally like it’s your job, because it’s the highest-leverage free lever you have. Earn links with assets worth linking to instead of emails no one answers. Then wait, because the system gets faster the longer it runs.

312% in six months wasn’t a trick. It was a sequence.

 

Working on a site that’s been publishing consistently and going nowhere? That flat line usually means concentration, not volume — and it’s the most fixable problem in SEO. [Get in touch] for an audit.

Share this article: