I recently reviewed my 2021 and mentioned that consulting was going exceptionally well due to client performance doing amazingly, resulting in further investment in my consulting time.
I also occasionally mention tactics to achieve that performance on Twitter and LinkedIn.
My inbox always hits a sizeable number of messages asking for more details after posts like this — so here's the summary.
I'll be sharing both traffic charts from some of my favourite projects in 2021, alongside insights on how I consistently achieved these results for various clients.
#1 Jewellery site
This case study involved a popular jewellery brand receiving roughly 200,000 brand searches per month.
I worked with them for two months, on two projects, with the goal being growing non-brand traffic in time for their peak season. Previously, they received very little non-brand traffic and relied heavily on their brand popularity for organic traffic.
The first project was for site auditing and some initial strategy work; the second briefed a plan based upon a potential high-value workstream found from the first.
They did a brilliant job following my instructions, and here's what happened:
I love this case study.
Not because it's the most impressive, but because it brilliantly shows how receiving the right SEO advice, even on a smaller one-off project, can have a significant impact.
Now, what did I do?
Fixing internal links that canonicalise
As mentioned, I started with off-site auditing. The site used Shopify and had some common Shopify issues. One of those was the dreaded internal linking issues where collection URLs are prepended to internal product links.
This caused 1,000,000+ internal links pointing to URLs that canonicalise to a different internal URL.
Once fixed, the URLs required to get a full crawl of the site went from 1,000,000+ down to a couple thousand — crawler trap fixed!
Redirects going through chains
An interesting issue, the brand used a redirection app called Transportr to manage 301 redirects. This app caused all URLs to redirect to a domain the app owns and then redirect back to the site.
This causes two issues.
Firstly, you should avoid redirect chains wherever possible. This site had hundreds of chains, including on URLs with a reasonable amount of valuable external links.
Second, the redirect going from one domain to another and back again could cause Google to trust the redirect less.
Anyway, those got fixed. We made further minor tech fixes, but other issues were to be resolved by developers as part of a site redesign, which is still in progress.
Long-tail collections + internal linking
And finally, category gap analysis.
My initial keyword research showed a considerable opportunity to create more categories targeting long-tail keywords.
The brand had relevant product inventory for 11,191,030 searches, but the site had no category page's targeting the queries.
The solution was a plan highlighting 320 categories to create, with prescriptive information on:
- Title tags
- Content optimisation tips
- Difficulty to rank
- Total traffic opportunity per URL
In addition, a crucial part of the solution was to effectively internally link between parent and child pages using a pyramid site structure, where broader pages internally link to more specific pages — something John Mueller recommends.
You'll commonly see this on Ecommerce sites. Asos.com is an excellent example of a pyramid site structure where pages like 'Men's Shorts' will internally link to semantically related sub-pages, like 'Cargo Shorts'.
Adding this internal linking helps distribute link equity to these sub-pages while showing Google how you've organised URLs (never mind the apparent benefit to users).
For Shopify sites, structured internal linking like this is essential. One pitfall of Shopify is that the breadcrumbs are close to useless as they do not by default show parent-child relationships between collections.
An example, Asos have an ideal structure, they both internally link parent collections to sub-collections (as shown above), and then that structure is also reflected in the breadcrumbs.
However, Shopify by default cannot set a 'parent/child' relationship between 'Shorts' and 'Chino Shorts', so the platform doesn't know that 'Chino Shorts' is a sub-page of 'Shorts', so if Asos used Shopify, breadcrumbs would end up looking like the below.
Breadcrumbs and the associated structured data help Google understand site structure/hierarchy, so we're missing out on giving Google a critical signal.
However, Google also uses internal linking structures to understand how you've organised a site, so having these structured internal links is key, as confirmed by John Mueller.
On the other hand, kind of more the top down approach or pyramid structure helps us a lot more to understand the context of individual pages within the site. So in particular, if we know this category is associated with these other subcategories, then that's a clear connection that we have between those parts.John Mueller
#2 SaaS construction site
This is one of my favourite case studies as the project started on my minimum retainer but soon became my largest client.
I can break down the project into three key stages:
- Auditing/strategy work
- Content restructuring
- Content writing
When I first started, the project was -40% on the year, and now they're +150% up on the year. Here's that growth with some key SEO initiatives annotated:
Technical and strategy
The project started mainly with tech SEO and strategy consulting on their WordPress site. The site had some common WordPress issues that their SEO plugin hadn't been configured to resolve, the largest being Google indexing image attachment pages.
If you haven't seen a WordPress attachment page before, they look like this, with an image being the only content of the page.
You can quickly see how this would be an issue for SEO. Large sites with many images could generate 10,000s of URLs that Google may index, negatively impacting their view of site quality.
Fixing this with my preferred WordPress SEO plugin (RankMath) is simple, head to the General Settings > Links area and enable the below option.
The site had other minor issues, mainly:
- A large number of low-quality blog posts: A lot of sites go for quantity over quality for blog content. This client had thousands of short non-detailed articles that had no organic traffic. These were removed and left to 404.
- Missing feature/service pages targeting commercial searches: Feature pages used language that they used internally, but not what users use to find their product. This ended up with low rankings for important commercial terms.
- Many low search value pages indexed: For example, duplicate marketing pages were indexed that the PPC team were using.
We resolved these issues and more in an initial sprint of tech/strategy work over a two/three month period. We've fixed further problems throughout the project, but the primary SEO focuses changed after that initial period.
The focus changed as improving content was a significant opportunity, and we were beginning to exhaust immediate growth opportunities from tech.
The opportunity to improve content came in a few forms:
- Re-organising content, moving it out of the blog and into a topic cluster format.
- Updating articles that received a reasonable amount of traffic but weren't the best articles on the topic.
- Writing new articles targeting relevant search queries.
I'll run through re-organising content first.
The obvious way to resolve this was with a topic cluster.
As soon as I implemented this structure, the site saw an immediate uplift in weekly traffic of roughly 21%. However, I believe the benefit from this work helped with the more significant growth later in the year.
The topic cluster included changes to internal linking, breadcrumbs and URLs to better show site hierarchy and help users find all the content we've written on a topic.
Avoiding jargon, here is what I did.
First, I created a page on 'construction' on the URL
/construction/ — this is the broadest topic we were writing about.
That page then internally linked to pages on other topics we wrote about, such as the construction process, on
These pages then internally link to all relevant pages within that topic, like 'pre-construction' on the URL
We then also reflected that organisation of content in breadcrumbs (with breadcrumb structured data), so the deepest page in the structure would have this breadcrumb:
Home > Construction > Process > Pre-construction
Next, we added some clever internal linking outside the above structure to help users/search engines discover popular resources. Some examples include:
- Pages with the same parent page have automated cross-linking - For example, 'Pre-construction' would have automated internal links to other pages with the parent page of 'Construction Process'.
- Adding popular pages to the mega menu - If a page is a particularly high search opportunity or commercially valuable, we add it to the mega menu to signal to Google it's important (and so users can find it easier).
Popular pages are linked to from
/construction/- Pages that receive a lot of traffic automatically get linked to from the top-level pillar page, helping users find them and signalling to Google the content is important.
All the above internal linking was automated using WP Query (no plugins). This kept things lightweight and automated many of the headaches of internally linking popular and related content.
Adding and updating content
The site is now in a good place. I had both:
- Fixed critical technical SEO issues that were blockers to performance.
- Created an area of the site where content could perform as well as it could do.
Performance thus far had gone from -40% on the year when I first started, up to +50%.
The next stage was to make the content in this new topic cluster better than all competing articles.
I won't linger on this section too much, but the key areas that made content writing work were:
- I hired a construction expert to write all content.
- I performed detailed research on key construction topics to write about, and prioritised writing based upon the opportunity and difficulty to rank.
- The writer received thorough briefs to ensure content had full topic coverage.
- I planned a re-write of all existing content that we had been moved to the cluster. The content written prior to me working on the project was okay, but had room for improvement.
Doing this is what led to the hockey stick growth later in the year.
Rewriting existing content is an excellent quick-win for traffic growth.
I highlighted multiple articles where the site ranked #4 - #10, re-briefed the content and had it re-written.
Traffic immediately spiked after doing this. Here is an example for a single article.
If you're looking to boost your traffic quickly, focus on improving existing content that already ranks.
#3 Casino affiliate site
Casino sites are known to be a tough niche. You're going to be up against great SEOs and writers with fantastic industry knowledge.
This brand was open with me. They'd worked with many different SEO's in the past couple of years but never stuck with one — either because communication wasn't clear, or they didn't have complete trust in the recommendations.
They also came at a relatively low point in their SEO journey. Traffic was down after an algorithm update, and they hadn't received clear direction on potential causes and how to recover.
This was particularly a shame, as they had some excellent topic expertise in-house and deserved to rank higher.
The good news — we ended the year 188% up vs the prior year.
Here's an overview of performance through the year alongside when different SEO workstreams were a priority:
I'm going to touch on this briefly, but the more intriguing parts of this case study are the breadcrumbs / internal linking on URL hierarchy changes, so I'll focus there.
Interestingly, many of the technical changes at the start of the year were caused by prior SEO advice not being so great. Rather than sticking to the defaults Yoast SEO sets, developers were instructed to add custom code to:
rel="canonical". The logic for adding
rel="canonical"wasn't as comprehensive as the default from a plugin, which caused some errors.
noindextags to all pagination across the site and remove canonicals, resulting in a broken implementation — shoutout to Patrick Stox's guide on SEO's breaking pagination. The title of the article is 100% warranted.
hreflangmarkup, despite there being no language variants.
Other tech SEO issues weren't due to previous advice, like the site not reporting 404s correctly. Still, by in large, technical SEO was reverting to out of the box plugin functionality.
Casino sites are well known to have historically been heavily spammed, with Google releasing algorithms specifically for these types of industries.
The brand had historically paid for Digital PR and link building work but received the popular modern-day version of link spam — lots of guest posts.
The links built weren't spammy from a top-level view within a tool. If you scanned the backlink profile, you'd see links from sites with a decent amount of organic traffic that also had a high authority.
When you checked the domains, though, they all had the same issues:
- The article linking to the client was often not relevant to the link.
- The link didn't seem impartial. There was no reason to link to the client rather than another site, making it seem out of place.
- Other articles on the domain were very obvious guest posts and had unnatural links.
The last point is an important one. Even if points 1/2 weren't relevant, other articles on the domain still had unnatural outbound links — and lots of them.
The result likely being that Google would be extra sceptical of outbound links on the domain or just blanket devalue all outbound links.
After reviewing the links, my theory was that the links likely passed no value, and Google was extra wary of the client's backlink profile due to all the dubious links.
Starting in May 2021, I disavowed over half of the client's link profile (in stages, to be safe).
It had no impact on traffic, and traffic continued to grow after the change.
I don't believe disavowing helped improve traffic, but interesting that disavowing so many links had zero negative impact.
The most significant win from the client came from helping Google better understand the site structure.
- Improved breadcrumbs to better show site structure
- Added internal links from parent pages to sub-pages (like in a pyramid structure)
I won't go into details here, as I've explained these types of changes earlier.
However, what's interesting is that these changes made very little difference to performance.
So maybe Google already understand the structure well?
That was a possibility. However, pages within some directories performed better, and Google crawled them more, making me dubious of that.
Here's the scenario.
The site had a
/slots/ directory that most content about slots resided within, so it'd contain URLs such as:
These pages performed well. However, the 'pillar' page targeting the broadest query within the topic ('slot sites') was on
/slot-sites/ and not within the directory all other slots content could be found.
Here's where it gets interesting.
/slot-sites/ URL ranked at the bottom of page two, URLs on
/slots/ quite consistently ranked at the top half of page one.
/slot-sites/ URL also didn't get crawled by Google anywhere near as much as URLs in the
This is all despite
- Within breadcrumbs (and breadcrumb structured data) as the parent page for all other pages.
- Internally linked to more than most URLs on the site.
To give you an idea on the crawling, Google crawled the
/slot-sites/ URL once every one or two weeks, despite the URLs content changing as frequently as any other slot page, which got crawled multiple times daily.
We made a simple change —
/slot-sites/ was 301 redirected to
/slots/, and we updated all internal links to reflect the change.
Here's what happened to traffic on all Slots URLs:
What's interesting is that this growth only occurred on this directory. No other directory saw a similar increase.
Other URLs on the site have similar issues where not all content covering a topic sit within a directory, so we'll be doing further testing in the future to see if we can replicate the success of the change.
So there are a few of my favourite case studies from 2021. It's great to work across such a broad range of sites and learn more about what works and what doesn't. Hopefully, sharing some of these examples inspires you to trial and prioritise different SEO tactics in 2022.
Have a question on a case study? Tweet me.