The Outcome
The headline result: "dog beds" (1,900 monthly searches), previously buried beyond position 100, now holds position 1. Removing the internal competition concentrated the site's signals onto one page per keyword, and the rankings did not just improve incrementally, they made category-defining jumps across the entire product portfolio.
Headline rankings

The individual keyword movements show how clean the result was:
- "dog beds" (1,900 SV): beyond position 100 to position 1, the highest-intent commercial query in the market.
- "pet beds" (2,900 SV): beyond position 100 to position 2, the highest-volume term in the portfolio.
- "dog beds Australia" (320 SV): beyond position 100 to position 1.
- "waterproof dog beds" (1,300 SV): beyond position 100 to position 1.
- "plush dog beds" (170 SV): beyond position 100 to position 1.
- "raised dog beds" (590 SV): beyond position 100 to position 2.
- "best dog beds" (720 SV): beyond position 100 to position 2.
- "chew proof dog beds" (260 SV): beyond position 100 to position 2.
Keyword growth

| Metric | Before | After | Change |
|---|---|---|---|
| Keywords in Top 3 | 4 | 27 | +575.0% |
| Keywords on Page 1 (Top 10) | 8 | 56 | +600.0% |
| Keywords in Top 20 | 14 | 72 | +414.3% |
| Keywords in Top 30 | 15 | 74 | +393.3% |
| Keywords in Top 40 | 15 | 76 | +406.7% |
| Keywords Moving Up | - | 72/85 | 84.7% of tracked terms |
Organic traffic

| Metric | Value |
|---|---|
| Total Organic Clicks | 25,600 |
| Total Impressions | 2.15 million |
| Average CTR | 1.2% |
| Average Position | 13.6 |
Daily clicks rose from roughly 50-60 to regularly exceeding 100, and with the average position at 13.6 and still improving, click-through rate will keep climbing as more keywords consolidate into the top positions.
The Challenge
One of Australia's largest dog bed brands had an extensive WordPress and WooCommerce catalogue, an established brand, and strong market demand, yet it was virtually invisible for its most valuable keywords. The primary keyword "dog beds" (1,900 SV) sat beyond position 100, and "pet beds" (2,900 SV) was similarly buried. An SEO audit traced this to the site cannibalising itself on a massive scale:
- WooCommerce generated both product category pages and product tag pages, creating dozens of indexable URLs targeting identical or overlapping terms.
- The category pages that should have been the primary ranking assets were thin product grids: images and prices, almost no descriptive or keyword-targeted copy.
- No clear URL hierarchy separated primary category pages from secondary tag pages, so Google treated them with equal, low authority.
The Approach
The insight was that no amount of content or link building could overcome a foundation where the site's own pages were undermining each other. Each cannibalising page diluted the others, so Google received conflicting signals and often ranked none of them well. The fix had to be structural first, then built up in sequence. Three decisions did most of the work.
Establish one owner per keyword. I built a keyword map that assigned every commercially valuable term to exactly one URL. Category pages were usually the natural owner, strongest internal links, best browsing experience, most logical hierarchy. Tag pages that duplicated those targets were noindexed individually (not blanket-noindexed), so tags serving a unique purpose were kept and optimised. This concentrated the authority that had been split across competing URLs into a single page per keyword, which is why the rankings moved so fast.
Make category pages worth ranking. With the cannibalisation resolved, I rewrote each priority category page from a bare grid into a content-rich landing page. Waterproof beds covered genuinely waterproof versus water-resistant construction, outdoor and senior-dog use cases, cleaning, and sizing. Raised beds covered orthopaedic and temperature-regulation benefits, weight capacity, and the breeds and life stages that benefit most. The copy sat alongside the product grid so it served both Google and the shopper, and it covered the semantic entities Google ties to dog beds: materials, features, use cases, and buyer considerations.
Build authority on a clean base. On top of the commercial pages I added a hub-and-spoke blog layer, sleeping-habit guides, breed-specific recommendations, seasonal advice, and material care, each post linking to the relevant category to pass topical relevance back to the money pages. A focused link-building campaign then targeted pet publications, dog-care blogs, and review sites, with every link assessed for topical relevance and authority, adding the third-party validation that tips ranking battles in competitive eCommerce categories.
Why it worked
- The cannibalisation fix was the highest-leverage move. Removing internal competition required no new content or links, it simply concentrated existing signals into one authoritative URL per keyword, producing the jumps from beyond position 100 to positions 1-2.
- Specialist depth beats generalist breadth. A dedicated dog bed brand can cover materials, features, use cases, and breed guidance with an authority a general pet retailer cannot match, the primary lever against larger players.
- Content complemented the shopping experience. Buying guidance placed alongside the product grids served Google's relevance needs and the shopper's decision-making at once, so pages ranked and converted together.
- WooCommerce's default taxonomy needed deliberate control. Category and tag pages generate competing indexable URLs by design, so a systematic noindex strategy was essential to stop the store undermining itself.
