The client came to us in April 2023 with a simple problem: they had been running an online home goods store for 19 months and 94% of their revenue came from Google Ads. Not because the ads were working great, but because they had nothing else.
Their SEO situation was pretty bad. Not catastrophically bad — the site worked, products loaded, nothing was technically broken in an obvious way. But a crawl turned up 340 indexing errors, 280 pages with duplicate meta titles, and a site structure that made it nearly impossible for Google to understand what they sold. They had a blog with 4 articles from 2022, all targeting keywords nobody searched for.
What we found in the audit
The first week is always a crawl and a keyword gap analysis. We found two things that stood out.
First, the category pages had no content. Just products, pagination, and a thin meta description. Google had no reason to rank them for anything beyond the exact product names. Second, their closest competitor — a similar size operation — was ranking for 200+ collection-level keywords with 400-word category descriptions and FAQ sections. The gap was structural, not magical.
We also found that 60% of their internal links were pointing to pages that had been redirected or deleted. The crawl budget was being partially wasted on dead ends.
The plan
We split the work into three tracks running in parallel. Technical fixes first — the crawl errors, the redirect cleanup, the duplicate meta. This took about 3 weeks and was mostly unglamorous work. The client wanted to skip it and go straight to content. We pushed back, because content on a technically broken site takes twice as long to rank.
Track two was the category pages. We wrote 35 collection page descriptions targeting specific product search queries — things like «solid wood bed frames queen size» and «linen storage ottomans.» These are not glamorous keywords. They are exactly what people type when they are about to buy something.
Track three was blog content: 22 articles over 6 months targeting informational queries in the home goods space. «How to choose a sectional sofa for a small living room.» «What is the difference between solid wood and MDF furniture.» That kind of thing. Not viral content. Content that intercepts people earlier in the buying process.
What happened, month by month
Month 1-2: mostly invisible. The technical fixes were in, some content was live, nothing dramatic in the rankings.
Month 3: the category pages started showing up. 12 keywords broke into the top 20. Organic traffic went from 60 visitors/day to about 200. The client sent a message asking if this was good. We said yes, but wait.
Month 6: 47 collection keywords in the top 10. Daily organic traffic hit 900. The client cut their Google Ads budget from $7,500 to $4,200, mostly because the organic traffic was converting at roughly the same rate and they no longer needed ads to cover low-intent queries.
Month 9: 2,100 organic visitors per day. 63 keywords in the top 3. The blog articles were starting to pick up shares and a few small inbound links from interior design bloggers. Q3 revenue attributable to organic search: $183,000. Their total SEO investment to that point was $27,000.
The number that mattered most
ROAS from organic in Q3 was 6.8x. Their paid ROAS at the time was 2.1x. That gap is why SEO exists. It takes longer to build, but once it is there, it compounds. Their paid ads have to restart from zero every day. The SEO traffic does not.
We kept getting told SEO takes time. What nobody told us was how different the economics are once it kicks in. We cut our ad spend by $3,300 a month and grew revenue. That was not the plan, but we will take it.
Want to see if a similar approach would work for your store? Our SEO service page covers how we structure e-commerce campaigns.
