For the first time in my SEO career I recently came across a canonical loop whilst conducting a technical SEO audit for a client at my day job at PushON.
A canonical loop is when 2 pages (or more) have the canonical tag set to each other. Page A canonical is set to page B, and page B is canonicalised to page A. It’s an odd situation, which makes you think how would the Google bot treat that situation, would it send the Googlebot in an infinite loop until it figures out it is in a loop, I wonder how the Google engineers have programmed Googlebot for when it falls in to a canonical loop? Some food for thought there! I haven’t been given access to the server logs so I can run log file analysis, darn GDPR red tape.
I suppose I could conduct a test of my own to see how the Googlebot behaves, I think I know the answer to that one though, after a couple of runs between the 2 URLs it will likely disregard the canonical tag. The next question on my mind is will the URLs be indexed? Probably yes, as Google is piss poor with handling canonicals especially on paginated pages (even with rel=prev/next). The probability is though you unlikely to stumble on those URL naturally in the SERP unless your using a serp operator.
If your relatively new to technical SEO and you suspect something odd is going on with the canonicalization on your site, use Screaming Frog to sniff out for gremlins with canonicals. You never know, you might stumble on a loop. I think I might run some test on chaining canonicals to see how far I get them going and loop them. I’m guessing the bigger the loop, the harder the time Googlebot will have at parsing the information to realise it’s caught in a loop. Worth a test I suppose to an SEO geek like myself.
Oh, by the way canonical loops are bad news for key pages that yourself or organisation required indexing. So, don’t try this one at home kids.
I mentioned canonicals not always working on paginated subsets such as category pages on an e-commerce site or wordpress blog. Yep, I have noticed it’s something around 70% the canonical directive request is honoured, and the other 30% pissing in the wind. Why that happens, I’m unsure. The rel=prev/next tag is supposed to help the big G better understand pagination, I don’t think they have quite fully nailed it yet.
If paginated pages with a canonical set to parent are being indexed on your website. Check to see if you have rel=prev/next tags correctly, I see it quite a lot especially on e-commerce sites (such as Magento) that the rel=prev/next has not been set. I wouldn’t recommend slapping in a noindex robots tag neither, firstly because you’ll be sending conflicting signals to Google with the canonical and a noindex, and secondly long-term noindex’s also will trigger a nofollow. Meaning if your lucky enough to have inbound links pointing to those paginated pages, or on the off-chance in the future someone links to the paginated page any link equity would likely be lost. More info on canonical mishaps here.
If you need some assistance or need deciding the best approach canonicalization strategy, get in touch. I will gladly help. I run tech SEO audits most weeks so I’m versed in the snags that canonicalization can throw up.