The client came to us with a gym site that ranked, on average, around position 20 for the queries that mattered. Enough visibility to be seen, never enough to be chosen. Over six months our team took monthly clicks from 129 to 1,335, average position from 19.5 to 4, and monthly conversions from 3 to 38. The mechanism was not a single trick. It was a large, well-structured body of informational content that earned topical authority, and that authority is what pulled the money pages up the rankings. This is the honest version of how it happened, including the workstream we stopped mid-campaign because the data told us to.
Executive Summary
Context
The client operates a gym in a single local market, competing against both independent studios and chain locations for the same non-branded searches. When we ran the baseline, the picture was familiar for a local personal-services site: a handful of money pages doing all the work, thin topical coverage around them, and non-branded traffic that arrived unevenly month to month.
Month one told the story in numbers. The site pulled 12,925 impressions but only 129 clicks, a click-through rate near 1%. Average position sat at 19.53, which is the dead zone: page two, occasionally the bottom of page one, rarely where a searcher actually clicks. Referring domains stood at 40 across 114 backlinks, with a Domain Rating of 15. Nothing was broken enough to explain the underperformance on its own; the problem was the sum of the parts.
Two constraints shaped everything we planned. Content production capacity was limited, so we could not simply flood the site and hope. And the market was genuinely competitive, which meant we had to earn position rather than buy it with volume. That pushed us toward a plan built on structure first, then depth, rather than the reverse.
The Challenge
The core issue was not a missing page. It was that one page was being asked to do too much. The commercial money page at /services/gym was mapped to nearly every commercial and transactional intent we tracked: pricing queries, review queries, membership queries, booking queries, deals, specials, opening-hours checks. When a single URL tries to satisfy a dozen distinct intents, it satisfies none of them cleanly, and the search engine keeps second-guessing which query it should rank for.
We saw the symptom directly in the keyword set. Some commercial terms sat at position 15 to 18, close to a breakthrough, while others on the same page languished in the high 20s and low 30s. That spread is the signature of intent overload and internal cannibalization, not a link-authority problem.
Underneath that, the informational layer barely existed. There was almost nothing answering the questions people ask before they book: how membership works, what a walk-in visit involves, how pricing is structured, what to expect on a first visit. Without that supporting content, the money pages had no topical context feeding them and no internal-link equity flowing in from relevant articles. They were islands.
So the sequence was clear before we wrote a word of content: fix the technical and architectural foundation, resolve the intent collisions on the money pages, then build the informational body that would give those pages authority to stand on.
Methodology
Our engagement ran six named workstreams. We deliberately front-loaded the foundation ones so that content, when it arrived, landed on stable ground.
Technical SEO and indexation cleanup (months 1 to 3)
We ran crawl and indexation triage first. Canonical and redirect cleanup removed conflicting signals, template-level duplication fixes stopped the same boilerplate from diluting page uniqueness, and we validated internal status codes and schema before any new URLs went live. Core Web Vitals and renderability checks confirmed the money pages could actually be crawled and rendered as intended. The point of doing this before scaling content was simple: there is no value in publishing twenty articles onto a template that wastes crawl budget on low-value URLs.
Information architecture and internal linking (months 2, 3, 5)
This is where we addressed the overloaded money page. We mapped a hub-and-spoke structure, consolidated pages competing on the same intent, and redirected the duplicates. Transactional intent (booking an appointment) was given a clean path to the conversion page, while local intent was pointed at the city-level local money page rather than the generic service page. Anchor-text distribution was planned so contextual links carried meaning, not just presence.
Authority content and intent alignment (months 2 to 4)
Here is the core of the program. Our flagship service is informational content built at both volume and depth, and this is the engine that did the heavy lifting. We planned five topic clusters around the buyer's real questions: getting started and first visit, memberships and pricing, training and programs, facilities and hours/access, and local and community. Across those clusters we produced 20 articles over the six months, ramping deliberately (3, 6, 8, 12, 16, 20 cumulative) rather than dumping them at once.
The mechanism matters more than the count. Each informational article was briefed to answer one intent completely, then linked contextually into the money page it supported. As the cluster filled out, the money pages inherited topical relevance they could never have earned alone. Our modeled topical-authority index climbed from 31 to 69 over the period, and by month six the site was picking up meaningful visibility across 266 informational keywords. That informational footprint is what lifted the commercial pages: content is the cause, rankings are the effect.
Entity, schema and LLM presence (months 3 to 5)
We cleaned up Organization and Service schema, aligned author and reviewer entities, and checked citation consistency so the brand read as one coherent entity across the web. We also built answer-ready summary blocks (structured, quotable, and kept strictly inside supportable claims) so the content is easier for AI assistants and AI Overviews to surface and cite. This is an early-mover position: few local competitors have structured content this way yet.
Digital PR and link recovery (months 4 to 6)
Authority reinforcement came late and stayed conservative. We recovered lost links, prioritized unlinked mentions, and pursued a small number of relevant industry placements, holding to a quality threshold rather than chasing volume. Referring domains rose from 40 to 65 and DR from 15 to 20: gradual, plausible, no unnatural spike.
Brand voice and editorial QA (months 1, 2, 4)
Every page ran through a reviewer checklist that kept claims inside approved evidence boundaries and tone consistent. Given the "no fake claims" constraint, this was not cosmetic: it blocked risky language before publication and protected the trust signals the rest of the program was building.
Timeline
Months 1 to 2 (foundation). The technical audit and intent mapping dominated. Visible movement was modest by design: impressions rose from 12,925 to 17,209 and clicks from 129 to 189, with average position easing from 19.53 to 16.78. This is the phase where nothing looks dramatic but everything that comes later depends on it. Canonical cleanup and the first three articles went live.
Month 3 (architecture and consolidation). This was the first inflection. We consolidated the competing commercial pages, redirected duplicates, and shipped the cluster up to eight articles. Average position jumped from 16.78 to 11.69, clicks rose to 287, and conversions moved from 4 to 8. Merging the cannibalizing pages let the search engine settle on one clear target per intent, and the rankings responded within the crawl cycle.
Month 4 (content depth builds). With the structure stable, content did the compounding. Twelve articles were live, average position reached 8.88, and clicks climbed to 465. The money pages were now supported by real informational context, and the entity and schema work began aligning the brand signals.
Month 5 (the pivot). Our original plan leaned toward continuing to increase raw article output. The data pushed back. Reviewing which pages actually converted, we saw that a handful of reinforced money and support pages drove nearly all the qualified action, while a few thin pages added noise without return. So we stopped producing for volume, pruned the weak pages, and redirected that effort into deepening and interlinking the pages that convert. Average position moved to 7.0 and clicks to 721. The pivot traded breadth for reinforcement, and the conversion count nearly doubled to 19.
Month 6 (authority reinforcement). Light digital PR and link recovery landed on top of a site that had earned its positions. Average position reached 4, impressions 35,139, clicks 1,335, and conversions 38. The topical-authority index closed at 69 with 20 articles across the five clusters supporting the commercial layer.
Results
The headline movement was in click quality, not just quantity. Clicks rose more than tenfold, from 129 to 1,335 per month, but the more telling number is click-through rate: it climbed from roughly 1% to 3.8%. That is what happens when average position moves from 19.53 to 4 and the pages that rank finally match the intent behind the query. Impressions did rise (12,925 to 35,139), but they grew far more slowly than clicks, which confirms the gains came from position and relevance rather than simply appearing for more searches.

The month-one Search Console view shows the flat, low-CTR baseline: plenty of impressions relative to the tiny click line, the classic page-two pattern.

By month six the same view shows the click line pulling up toward the impression line as position consolidated on page one. The client here is anonymized and these figures are a representative example of the engagement, not a raw third-party export.
Conversions tracked the quality story: 3 per month at the start, 38 by month six, with modeled revenue moving from 135 to 1,710 on an average-ticket value model. Domain Rating rose modestly from 15 to 20 over the same window, which matters because it shows the ranking gains were not bought with an artificial link surge; they were earned by structure and content and only lightly reinforced by PR at the end.
Keyword Movement
The clearest wins came where we aligned a single page to a single intent. High-intent local queries moved decisively once we pointed them at the local money page instead of the generic service page. Transactional intent (booking an appointment) reached the top position after we gave it a clean conversion path. Commercial comparison terms and membership queries climbed into the top handful as the informational clusters fed them relevance.

Not everything moved cleanly, and it would be dishonest to pretend otherwise. Two commercial terms regressed, and one stayed effectively flat. The pricing-style query slipped from 16 to 33: when we consolidated pages, that intent lost its dedicated real estate before a properly briefed pricing section matured, and the term has not recovered yet. An opening-hours-style query drifted from 18 to 23, most plausibly because that intent is increasingly answered directly in the SERP and map pack rather than by a page click. A general "top" comparison term barely moved (18 to 17), sitting in a competitive band where our authority gains have not yet been enough to break through.

The third-party visibility view shows the overall organic-traffic and keyword-footprint growth across the period, driven largely by the 266 informational keywords the clusters now cover.
| Query structure | Intent | Volume | Pos. before | Pos. after | Category |
|---|---|---|---|---|---|
| ••• near me | local | 14,800 | 26 | 5 | winner |
| best ••• | commercial | 9,900 | 29 | 1 | winner |
| ••• prices | commercial | 2,900 | 16 | 33 | decliner |
| ••• reviews | commercial | 4,400 | 24 | 4 | volatile |
| ••• appointment | transactional | 1,300 | 15 | 1 | winner |
| ••• booking | commercial | 1,900 | 25 | 5 | winner |
| ••• open now | commercial | 3,600 | 15 | 3 | winner |
| ••• walk in | commercial | 720 | 35 | 5 | winner |
| ••• deals | commercial | 2,400 | 29 | 4 | winner |
| top ••• | commercial | 1,600 | 18 | 17 | stable |
| ••• hours | commercial | 1,900 | 18 | 23 | decliner |
| local ••• | local | 3,600 | 24 | 2 | winner |
| affordable ••• | commercial | 1,300 | 26 | 5 | winner |
| ••• specials | commercial | 880 | 34 | 3 | volatile |
| ••• membership | commercial | 6,600 | 22 | 6 | winner |
| ••• services | commercial | 1,000 | 29 | 4 | winner |
The two terms marked volatile (reviews and specials) landed in strong positions but bounced during the period as the SERP reshuffled. We report their end position honestly while noting they are less stable than the clean winners.
Business Impact
For a single-location gym, the value is not traffic; it is booked members walking through the door. Conversions moving from 3 to 38 per month is the number the client actually feels, and it came from qualified clicks. Transactional and booking intents now sit at or near the top of the results, so the people arriving are already close to a decision. That is the difference between page-two impressions and page-one intent match.
The informational content did more than support rankings; it warmed future buyers. Someone reading about how membership pricing works or what a first visit involves is not converting today, but they are entering the funnel with the brand as the answer to their question. For a local service business, that qualified informational traffic compounds: it lifts engagement, feeds internal links to the money pages, and seeds purchase intent for the following month. That is why we treated the 266 informational keywords as an asset, not vanity reach.
The durability point is the one worth stressing to any local owner weighing SEO against ads. These rankings keep paying after the work stops. A paid campaign delivers members only while the budget runs; the topical authority we built (index from 31 to 69) is a standing asset that keeps compounding. Six months in, the money pages hold their positions because the informational body around them keeps signaling relevance.
There is also an emerging benefit we frame carefully. The depth and structure of this content, plus the entity and schema alignment, makes the brand materially more likely to be surfaced and cited when people ask AI assistants (ChatGPT, Claude, Perplexity) or Google's AI Overviews for the best option in the category. We do not have precise citation counts to report, and we will not invent them, but the readiness is built and few local competitors have anything comparable. That is an early-mover moat worth holding.
Limitations
This is a masked, modeled case study, so treat the figures as an internally coherent representative example rather than a verified third-party export. The revenue figures use an average-ticket value model, not CRM close-rate data, so they approximate value rather than measure booked contracts exactly.
On the SEO itself: two terms regressed and one stayed flat, and we have not fully recovered the pricing query yet. Attribution lag means month-six conversions partly reflect content and links that landed weeks earlier, so the causal timing is directional, not exact. The volatile terms may still move. And six months is enough to establish a trend but not to call the positions permanent; local SERPs shift with competitor response and seasonal demand, both of which can move a gym's numbers independent of our work.
We also want to be plain about scope. The DR gain from 15 to 20 is deliberately modest. We could have inflated referring domains faster, but that would have risked the trust profile for a short-term number, and it was not necessary: structure and content carried the rankings.
Causal Explanation
It is worth tracing exactly what caused what, because the order is the whole point.
- Technical cleanup removed conflicting signals and crawl waste, which stabilized how the site was indexed. Effect: average position stopped fluctuating on noise and became responsive to real changes.
- Architecture and consolidation resolved the intent overload on the money page. Merging cannibalizing pages let one URL own each intent. Effect: the month-three jump from position 16.78 to 11.69, before most content had even matured.
- Informational content across five clusters built topical authority (index 31 to 69, 266 informational keywords). This is the engine. A large, well-structured body of content earns relevance and internal-link equity, and that equity flows into the money pages. Effect: the sustained climb through months 4 to 6 to an average position of 4. Content is the cause; the money-page rankings are the effect.
- The month-five pivot stopped producing for volume and reinforced converting pages. Effect: conversions nearly doubled (19 from 11) without a proportional rise in raw articles, because equity was concentrated where it paid.
- Entity, schema and light digital PR reinforced the brand signal and authority at the end, when the site had earned it. Effect: positions held rather than slipping, and the brand became citation-ready for AI answer surfaces.
Strip out the content layer and the chain breaks: the money pages would have had cleaner structure but no topical context to rank on. That is why we call informational content the flagship, not a support act.
Key Takeaways
- Fix structure before you scale content. Publishing onto an overloaded, cannibalized page architecture wastes the content. The month-three jump came from consolidation, not volume.
- One page, one intent. The single biggest lever here was giving booking, local, and commercial intents their own clean targets instead of one page trying to serve all of them.
- Informational depth is what lifts money pages. Topical authority built across well-defined clusters is the durable engine. It compounds, it warms buyers, and it does not stop when a budget stops.
- Let conversion data override the content plan. Our pivot away from raw volume toward reinforcing converting pages was the right call because we watched what actually converted, not what we planned to produce.
- Build AI-citation readiness now. Structured, honest, quotable content is an early-mover advantage most local competitors have not claimed yet.