Handling canonical tags, pagination & URL parameters
The canonical link element rel=”canonical”, pagination tags rel=”previous”/rel=”next” & URL parameters are all essential elements individually for a website, however, they often work in conjunction.
Therefore I feel covering them together is a good idea!
There are some FAQs at the bottom of this article covering all the extras and basics you need to know about canonical tags, pagination & URL parameters.
In terms of a practical example, check out the content below to see how to handle canonical tags, pagination tags and URL parameters individually and as a set.
Handling these as a set is where things can get confusing.
Every page on your website you want indexed needs to have a self-referencing canonical tag. Examples:
<link rel=”canonical” href=”https://www.inty.com.au” />
<link rel=”canonical” href=”https://www.inty.com.au/keyword-research-guide/” />
Self referencing canonical tags are used on pages you want indexed. This is to remove any potential duplicate content and tell search engines which page they should be looking at.
Canonical tags need to always match URLs in your sitemap files too! This ensures that every page you are submitting to search engines is the correct page. Doing so will alleviate any indexation issues and wasted crawl budget.
Self-referencing canonical tags still apply on pages within a paginated series (page-2, 3, 4 and so on).
Google treats paginated pages as individual pages, so they need to be canonicalised. Examples:
<link rel=”canonical” href=”https://www.inty.com.au/category/sub-category/page-2/” />
<link rel=”prev” href=”https://www.inty.com.au/category/sub-category/” />
<link rel=”next” href=”https://www.inty.com.au/category/sub-category/page-3/” />
The previous tag always needs to point to the default page in the sequence, not /page-1/, not /page-0/. The canonical should still be self-referencing.
If you have any familiarity with pagination, then you may remember that in March 2019, Google announced that pagination has been deprecated as an indexing signal.
This was met with much confusion and frustration with those in the SEO industry, as this was an out of the blue announcement that came with many mixed signals from Google.
We were left with a few options on how to do pagination:
1. Use a view all page & rel=canonical
The idea behind this is to move each page within a paginated series to a “view all” page, removing the need for pagination and consolidating all linking signals into a single page.
This CAN be a great option, depending on how many products you have.
Large ecommerce sites will not want to put 10,000+ products on a single page. That would be a horrible user experience and would also not help search engines with product discovery.
Which leads me to the next point:
2. Still use rel=prev/next
Google states that they are smart enough to find to paginated pages simply by looking at the links on your page.
Google deprecating the prev & next tags as an indexing signal doesn’t mean that they still don’t refer to pagination tags, it just means Google doesn’t necessarily need to use them.
Pagination tags are still used by Bing for discovery.
They are in the WCAG standards for accessibility (a11y).
AND they still serve a purpose for websites that need to serve a large amount of content or products that could not be reasonably served on a single page.
As I mentioned above, serving a single page for your products when you have a product range in the thousands, or even millions, is just silly.
Pagination serves as an easy navigational function that aids discovery for both users and search engines going through your site on to deeper pages, making it a core technical SEO element to ecommerce websites.
When you have a huge range of products, serving thousands of paginated pages does not make sense and does your website no favours.
To handle pagination in a scenario like this, here are the key things to consider:
1. Go granular in your categories
Within reason, the more categories you can make to house unique products the better. This helps users & crawling bots go through your website and discover products that would otherwise be buried.
It will also help you site rank for the related category name keyword terms.
2. Utilise mid-point pagination
This is important! Crawling bots follow links on your website, so if you have 1000 pages in a paginated series, where your pagination is set up sequentially (1, 2, 3, 4, 5, 6, 7, 8 ,9 10) for example, then the crawl depth on your deeper categories is very high.
A high crawl depth means crawlers may not discover your page paginated pages.
Google still uses paginated pages for product discovery. So in turn, products on your website may not get indexed if their linking category page cannot be crawled.
Lets say you have 1,000 products in a category, the best way to set up mid-point pagination is like this:
1, 2, 3, 4, 100, 205, 206, 207, 208
Or if you have a smaller range of products, it can be built with shorter intervals:
1, 2, 3, 10, 17, 18, 19
Regardless of your product inventory, the idea of mid-point pagination is to allow crawling bots quick access options to deeper levels in your website in just a few steps.
The SEO benefit of mid-point pagination works like this:
Increased crawl rate of deeper pages = more links followed to product pages = increased product discovery = more products indexed by Google = increased rankings.
Final note on this: Mid-point pagination will not change the sequence of your rel=”previous” & rel=”next” tags.
Handling parameters (page filters) is a bit trickier.
For pages with parameters, such as ?sort=price or “?colour=blue, the canonical tag should always point to the default page without a parameter.
This is done to avoid marking up multiple pages as an indexable version, and thus avoid duplicate content.
The previous and next tags however need to still reference the parameters. Pagination follows a logical sequence, so it is necessary to include any filters as part of that sequence in your mark up. Examples:
<link rel=”canonical” href=”https://www.inty.com.au/category/sub-category/” />
<link rel=”next” href=”https://www.inty.com.au/category/sub-category/page-2/?sort=price” />
<link rel=”canonical” href=”https://www.inty.com.au/category/sub-category/page-2/” />
<link rel=”prev” href=”https://www.inty.com.au/category/sub-category/?sort=price” />
<link rel=”next” href=”https://www.inty.com.au/category/sub-category/page-3/?sort=price” />
Note in this second example here that the canonical points to the paginated page without the parameter, but the previous tag points to the base page with the parameter.
A canonical tag (rel=”canonical”) is an html element that is used to signify the preferred version of a page.
This is done to prevent duplicate content issues, where multiple page versions may get indexed. This splits ranking value, confuses search engines and ultimately hurts SEO.
A canonical tag also ensures crawling bots index the correct page, even if multiple versions are discovered (see parameter page example above)
Adding a canonical using the rel=”canonical” html tag is the easiest way to implement this snippet of code.
All you need to do is add the snippet of code to the head section of your webpages:
<link rel=”canonical” href=”your webpage here” />
Adding a canonical tag in WordPress is super easy.
Navigate to the required page or post > Click edit > Click advanced > Paste in your canonical URL in the “Canonical URL” box.
Yep! But not every page should have a self referencing canonical tag.
Only pages you want indexed should have a self-referencing canonical tag.
Duplicates of pages you want indexed, such as those with parameters, will need a canonical tag placed pointing to the preferred version.
Canonical tags ensure the preferred version of a page is indexed. Without indexation, there will be no rankings.
So in short, the canonical link element helps index & ultimately rank pages whilst also preventing duplicate pages from. being indexed.
The biggest issue here is crawling & indexation.
Search engines such as Google will choose their own canonical tags if one has not been specified. This can lead to incorrect pages being set as the preferred version (this can be a major issue in ecommerce).
A missing canonical also means that duplicates can be crawled and indexed. Duplicate content dilutes the value of SEO and will hurt your websites ability to rank for whatever the duplicate pages are targeting.
Paginated simply means the process of numbering a document. Think of it like a book.
When it comes to websites, pagination is used to split resource load between pages, whether that be for articles or more commonly, for product listings on an ecommerce website.
The benefit of this is faster load times and a better user experience for customers.
Yes. Google treats a paginated page as it does any other normal webpage.
Links are followed, meta data is read, and they can be indexed.
Also known as query strings, URL parameters are code snippets appended to the end of a URL, often following a question mark.
They are used for functions such as analytics tracking, product filtering and internal searches.
Think of parameters as descriptions. They are used to describe changes of a page and populate associated information. Here is a broken down explanation:
?: where the parameter starts
colour: the key/identifier/what is being looked up
blue: the value of what’s being identified
&: a seperator, to start a new parameter
price: the key/identifier again
lowest: the value again
So this parameter would sort the page by blue items only, starting with the lowest price.
Yes! Parameters are often a core part of a website’s architecture (guaranteed to be so on ecommerce sites).
There are pitfalls with parameters if not handled correctly.
They can be indexed, which leads to duplicate content. Indexed parameter pages will dilute value of your base ranking page, while bloating your index at the same time.
The canonical, pagination and parameter link elements are a basic but essential component for every website.
Incorrect handling of canonicals, pagination and URL parameters can be one of the most detrimental things for the SEO of ecommerce sites. It will hinder your rankings.
If you have any further questions, please leave a comment below!
Or get in touch with us via our contact form.