Keep product and SEO on the same team
In a product-led business the experience and the acquisition strategy shape each other. Splitting them costs you both.
SEO case study
How we scaled a freemium SaaS platform from 236 clicks to 42.9K by fixing the product before we scaled the search strategy.
0.0K
Organic clicks
236 at the early benchmark
0K
Impressions
5.67K at the early benchmark
0.0%
Average CTR
4.2% at the early benchmark
0.0
Average position
7.7 at the early benchmark
Figures come from two different Search Console reporting periods, so we present them as project milestones rather than a month over month comparison. The trajectory is the point.
Chapter 01
The starting point
The client runs a technology focused SaaS platform on a freemium model. People could use the core product without paying, which made organic search a direct route into the product rather than a route to a sales page.
The platform was built on WordPress and leaned on an off the shelf implementation for its core functionality. It worked. It also carried limits we could see as soon as we started testing it properly: reliability gaps, patchy coverage, and a system that was never designed to be developed continuously.
That mattered because driving more traffic to a product with unresolved technical problems only widens the audience for those problems. So we made an early call that shaped the whole engagement.
SEO would not come first. The product would.
Google Search Console

An average position of 7 told us the site was already reaching the first page for the queries in the report, and 5.61K impressions said Google was exposing it to real demand. The gap between impressions and clicks was the opportunity.
We did not answer that with a content sprint or a link push. We went back to the product.
Chapter 02
Product work
Our developers moved past the original implementation and built a more capable pipeline underneath the product. The most valuable change was detecting every relevant board properly, which is the core job the SaaS exists to do.
We then stopped treating the platform as finished. Releases were documented in a changelog, feedback fed the next cycle, and the development loop settled into something repeatable: user feedback, diagnosis, development, release, observation, iteration.
Chapter 03
Diagnosis
By month two the numbers had barely moved: 236 clicks from 5.67K impressions, CTR flat at 4.2%, average position drifting from 7 to 7.7. Clicks had gone up by one.
Google Search Console

That flat line was useful. It proved that an operational product and some existing rankings were not going to compound on their own. The next move had to be structural, so we stopped asking how to create more pages and started asking how to make the existing ones easier for Google to discover, understand and prioritize.
Chapter 04
Architecture
We started with metadata and page level targeting, giving every important URL a single clear purpose instead of overlapping signals. Then we reorganized the site into a hub and spoke model, so core pages, supporting pages and related content reinforced each other rather than competing.
Internal linking carried most of the weight. We used contextual links with descriptive anchors, removed orphan pages, and kept the pages that matter within a shallow click depth.
Search Console, page indexing

We are not claiming a single change produced every indexing gain. Several things were improving at once and SEO is cumulative. What the report shows is the site's footprint becoming more established, with Google processing a growing share of the URLs it knew about.
Chapter 05
Search demand
We judged keywords on their relationship to the product: intent, topical relevance, SERP competition and the actual value of the traffic. Volume on its own never justified a page. That kept the site from drifting into traffic it could not serve.
Related queries were grouped by the need behind them. Where several keywords meant the same thing, they became one stronger page instead of four that cannibalized each other. Where the intent genuinely differed, they earned separate pages.
The journey we were building
Content was published gradually and deliberately. We let the product and the architecture mature instead of racing ahead of them, because a content farm attached to a fragile product helps nobody.
Chapter 06
Authority
Link building started late on purpose. By the time we pushed on authority, the SaaS had a working and improving product, useful pages, organic traction, a stronger architecture and a clear search strategy. Pointing links at a weak foundation would have wasted them.
What we filtered on
What we refused to lead with
The mix was digital PR for brand mentions and coverage, niche edits where the surrounding content actually related to the product, and guest posts through personal outreach rather than marketplaces, which kept us in control of context and placement quality.
Build authority around something useful instead of using authority to cover for something weak.
Chapter 07
Performance
As traffic grew, mobile performance became the bottleneck. The product scored 59 on mobile with a 5.9 second First Contentful Paint and an 8.9 second Largest Contentful Paint. Accessibility and SEO were already strong. Loading was what held the experience back.
Performance
59→99
Accessibility
90→92
SEO
100→100
First Contentful Paint
5.9s→0.5s
Largest Contentful Paint
8.9s→0.8s
Speed Index
6.9s→1.0s
Total Blocking Time
50ms→30ms
Cumulative Layout Shift
0→0.006
Measured on mobile before and after the optimization work. SEO was already at 100 and stayed there.
We treated this as product quality rather than a Lighthouse score. Someone arriving from search should not wait several seconds before the product becomes usable, and that fix serves the user and the ranking at the same time.
Chapter 08
The incident
The first symptom was speed. A site serving more than 1,500 visitors a day started taking around ten seconds to load, and the loading metrics fell apart. In DevTools we found a request going through a /rpc_proxy endpoint that returned Base64 encoded JavaScript, which the browser then decoded and executed.
Chrome DevTools

Recovered payload

We checked the WordPress files, plugins, themes, database and configuration. Nothing. That absence was the clue, so we followed the entire request path instead of assuming the problem lived on the origin.
It was sitting at the Cloudflare edge. A Worker had been attached to routes covering the site, fetching the legitimate WordPress response, modifying it, and injecting JavaScript before anything reached the browser. Nothing in WordPress was ever compromised, which is exactly why searching WordPress found nothing.
What we expected
What was actually happening
Cloudflare, Workers

Cloudflare, API tokens

We traced the injected script, located the Worker, removed the affected routes, revoked the unrecognized token, secured the account and retested until the injected behavior was gone.
We are not claiming Cloudflare was breached. What the evidence showed was unauthorized access to the site's Cloudflare configuration and a malicious Worker deployed through the API. How that access was obtained is not something we can establish from the evidence available to us.
When malicious behavior is not on the origin, the investigation cannot stop at the origin. Origin, CDN, edge, browser.
Chapter 09
The turning point
With the product rebuilt, the architecture clarified, indexation healthier, content aligned to intent, authority earned and the infrastructure secured, the growth curve changed shape.
Google Search Console

Against the early benchmark of 236 clicks and 5.67K impressions, the site reached 42.9K clicks and 783K impressions while improving CTR from 4.2% to 5.5% and average position from 7.7 to 5.1. Rising volume alongside a better position and a better click through rate is the combination worth having.
Attribution
There was no single tactic behind this. Ten things improved together, and the system is what produced the result.
01
Product improvements
We strengthened the SaaS before scaling acquisition.
02
Technical SEO
We fixed what was affecting crawling, indexing and site quality.
03
Information architecture
We reorganized the site around clear page relationships.
04
Search intent
We targeted demand by relevance, not by volume alone.
05
Supporting content
We expanded topical coverage at a pace the product could carry.
06
Internal linking
We made important URLs easy to reach and easy to read.
07
Relevance first authority
We chose placements by topical fit ahead of raw metrics.
08
Digital PR
We earned mentions that widened the brand footprint.
09
Performance
We cut loading friction on the product itself.
10
Continuous iteration
Nothing was treated as finished.
The framework
01
Build
Ship a product that gives people real value.
02
Diagnose
Find the product, technical and UX weaknesses.
03
Structure
Give the site a logical information architecture.
04
Index
Make important pages discoverable and understandable.
05
Target
Map pages to the search intent that fits the product.
06
Publish
Add supporting content that answers real questions.
07
Promote
Earn relevant authority and brand visibility.
08
Improve
Keep raising product quality, UX and performance.
09
Defend
Protect security and technical stability.
10
Repeat
Treat it as a growth system, not a campaign.
Takeaways
In a product-led business the experience and the acquisition strategy shape each other. Splitting them costs you both.
Architecture, technical health and indexation come first. Publishing into a broken structure just adds URLs.
Build something worth referencing, then go earn the references.
One relevant editorial placement can matter more than a batch of links chosen for their DR.
More traffic creates new product, performance and infrastructure problems. We ran into all three.
Each fix made another fix more valuable. That is where the growth came from.
The biggest lesson was not a keyword, a link or a technical trick. SaaS SEO works best when the product and the search strategy improve together. The rankings followed because the whole system got better.
FAQ
It is the work of making a software product discoverable in search. In practice it covers technical SEO, information architecture, content, internal linking, authority building and the product experience itself.
Organic search can drop someone straight into the free product, so a visit is not just a pageview. That makes product quality part of your SEO performance.
It decides whether Google can crawl, understand and index what you publish. It also surfaces the issues that quietly damage performance and user experience.
We worked on page level metadata, internal linking, site architecture, URL relationships and the structure connecting important pages to each other.
A clear structure tells both people and crawlers how pages relate, and it keeps the pages that matter within easy reach.
Yes, but quality and relevance decide the outcome. We prioritized placements with a genuine topical relationship to the product.
It widens your search coverage and meets people at different stages of the journey. It should support the product rather than turn the site into a content farm.
It ties organic acquisition to continuous product development, so the product becomes part of the growth loop instead of sitting downstream of marketing.
It depends on where you start, how competitive the space is, and the technical condition of the site. Here the growth arrived in stages rather than in one jump.
Yes, when it builds real topical relevance, delivers genuine product value and develops authority with intent.
Next step
We build search growth systems that connect technical SEO, information architecture, content, authority and the product itself.