Eastside Co partnered with a globally-known brand as a marketing client in October 2020. The site’s SEO had been in decline for months, with a corresponding reduction in traffic and organic visibility.
This case study shows how we investigated, identified and fixed technical SEO issues which resulted in a huge uplift in impressions and clicks.
The website itself has versions in two territories - both were very large, with tens of thousands of URLs. We began our work with an in-depth SEO site audit to understand what was causing the problems with performance, and what the best strategy would be to reverse the trend - and move to growth.
The primary output of the audit was that we identified significant technical issues that were making it difficult for search engines to understand the site and rank it effectively.
What Were The SEO Issues?
The two main issues flagged up by the audit were how canonicalisation and hreflang had been implemented on the site. Here we take a look into: what the problems were; why they were causing issues; the solutions we implemented; and the results we saw following the changes.
Issue 1: Canonicalisation
Each page should have a canonical tag in its source code. This tag indicates to search engines whether the page is a) unique and should be indexed, or b) is part of a duplicate cluster, and an alternative page should be indexed. Canonicalisation is a ‘hint’ to search engines, but they will only follow these hints and signals if all of them are consistent. In this case, there were issues around the output of the tags on product pages, which were sending conflicting signals to Google.
The problem was that the site had been configured to output custom canonical tags that embedded the category name into the page url. There was a conflict between this and the Shopify xml sitemap, which confused search engines.
In addition, collection pages were linking to alternate versions of the product urls as well, adding further confusion. This meant Google did not understand which version to index leading to a situation where lots of duplicate pages were indexed.
The reason this is a problem is that too many urls create ‘bloat’ and dilute the SEO value across all of the pages. This in turn limits the potential of the correct page to rank as well as it should, as it is always competing with several others.
We adapted the function that outputs canonical tags on product pages to make sure they used a consistent structure. This structure is also aligned with the urls outputted by the sitemap. In addition, we made sure all internal links from collection pages to product pages went directly to the canonical product page url.
Following our amendment to how canonicals were managed across the site, Google de-indexed thousands of duplicate pages, reducing bloat and making it easier for the correct pages to rank. In effect, we’d directed the flow of SEO value to the most important pages. Instead of lots of pages competing to rank for the same terms, we gave Google a clearer structure and more consistent ‘hints’ so it was able to understand the site better. Ultimately it meant the right pages were ranking for the right terms, with no competition from other pages on site.
Issue 2: Hreflang
Hreflang is a HTML attribute which indicates to search engines when there are alternate versions of a page intended for a different region/language audience.
Hreflang can be implemented in different ways but the most common is a simple meta tag which goes on any page that has alternate versions.
The hreflang tag contains two key attributes:
1 - Href The href is a link to the alternate page. It has to be the full URL address and it must be a working page. It tells search engines “this is an alternate version of the page currently being viewed”.
2 - Hreflang The hreflang attribute contains the language code (ISO 639-1) and optionally the country code (ISO 3166-1) of the alternate page's target audience. The country code is optional but the language code is a requirement.
Piecing the ‘href’ and the ‘hreflang’ together, search engines will know that this alternate URL (the href), is meant for this specific audience (the hreflang).
For it to be valid, they have to be return links (i.e. page A and page B have to link to each other). Reciprocal hreflang link to signal that the pages are linked. If they’re not in place, it doesn’t work.
Links also have to be live pages (i.e. return a 200 status). If there is a 404 page error or a redirect, it will not work.
That’s the basic premise - for more detail, you can read more about it in our Ultimate Guide to Hreflang.
The issue with our client was that the tags did not reference the actual urls because they hadn’t been translated - so they were not referencing the alternate, translated url on the alternate site. The result was that many thousands of urls were returning a 404 error and Googlebot was using a lot of the site’s crawl budget on these errors, instead of crawling live, valid pages.
We removed all of the dynamically generated, incorrect content and replaced it with a bespoke solution which utilised the Custom Fields app. Using its .csv bulk upload feature enabled us to quickly fix and manage thousands of urls. We were then able to upload the correct code to each page which fixed the issue.
Our remedial measures allowed Google to understand the relationship between the two sites and eliminated the 404 issue. This allowed Googlebot to use its crawl budget on valid, live pages, giving Google a better view of the site content which is more beneficial for SEO.
Google recommends consistency when it comes to SEO, and these changes have brought consistency to our signals. Following these technical SEO amends we saw a huge uplift in results and corresponding traffic:
- Clicks improved by 21%
- Impressions went up by 25%
This demonstrates the importance of fixing technical issues that make it difficult for Google to understand your site. It is always best to remove ambiguity and errors - it gives Google the opportunity to properly understand your site and it is likely to improve your SEO performance and traffic.