Multi-Region Canonical Tags

Hi Community,

I am building a multi-region site using Webflow’s new localisation feature. From my understanding, it’s very important for international SEO to have canonical tags set up correct in the HTML inline code. Webflow doesn’t seem to offer this functionality by default.

Is my only option to put canonical tags on each page manually?

Any help much appreciated.

The output I would like to see in the raw HTML is below.

<link rel="canonical" href="https://mysite.com/nz/solutions/pricing" hreflang="en-nz">
<link rel="alternate" href="https://mysite.com/uk/solutions/pricing" hreflang="en-gb">
<link rel="alternate" href="https://mysite.com/au/solutions/pricing" hreflang="en-au">
<link rel="alternate" href="https://mysite.com/us/solutions/pricing" hreflang="en-us">
<link rel="alternate" href="https://mysite.com/ca/solutions/pricing" hreflang="en-ca">

Hey Matt,

Webflow generates these hreflang alt links automatically with localization.
Note however that it does not generate a self-referencing hreflang, which would be nice ( both types do exist in sitemap.xml )

@memetican
Self referencing hreflang just got added a few hours ago. So that’s finally fixed. :slight_smile:

@Matt_nz
You can Webflow set canonicals automatically by providing the main URL in the SEO settings in “Global canonical tag URL”. However: I encountered that even if most localized URLs then are inserted correctly, some are missing the localization path portion of the URL thus leading to a 404…
I did not find a pattern yet, on why and where exactly this happens. Seems a bug to me.

Thanks for your help @TobiasGasser and @memetican !

I am now seeing the hreflangtags in the HTML. That is awesome.

Is anyone able to verify this looks correct?

      <link rel="alternate" hrefLang="x-default" href="https://mysite.com/nz/solutions/pricing"/>
      <link rel="alternate" hrefLang="en-NZ" href="https://mysite.com/nz/solutions/pricing"/>
      <link rel="alternate" hrefLang="en-GB" href="https://mysite.com/uk/solutions/pricing"/>
      <link href="https://mysite.com/nz/solutions/pricing" rel="canonical"/>

Assuming you’re currently on https://mysite.com/nz/solutions/pricing, this looks great.
Can you show the same markup for your homepage?

Awesome @memetican, thanks heaps.

Home page markup below. I am still yet to add all the regions on the localisation plan.


      <link rel="alternate" hrefLang="x-default" href="https://mysite.com/nz/"/>
      <link rel="alternate" hrefLang="en-NZ" href="https://mysite.com/nz/"/>
      <link rel="alternate" hrefLang="en-GB" href="https://mysite.com/uk/"/>
      <link href="https://mysite.com/nz/" rel="canonical"/>

So everything is ok except there’s technically a bug in that the homepage canonical and in the alt hrefLangs, in that the URLs end in /.

On Webflow’s setup, those paths are redirecting, e.g. /uk/ redirects to /uk. To Google, that indicates a mistake. A canonical should never redirect, because it’s meant to indicate the actual formally correct URL that should be indexed. Same with the hrefLangs.

For you, since you are using a directory for your default locale as well, that’s also getting picked up in the canonical.

Ah, nice catch @memetican. Any suggestions to fix? Much appreciated.

You can notify support, it’s a systems level issue.

I reverse proxy all client sites so this is a pretty easy fix for me to do there and just deploy to all sites.

You could probably fix it with a client-side script as well, and have that be effective-enough for Google, but if you’re using an SEO analysis tool like screamingfrog, it will still scream.

1 Like

This appears to be fixed now. Thanks Webflow team!

Having a similar issue.

Looking at my sitemap - the english (default) localization doesn’t seem to be getting labeled as canonical. When I visit alternate language pages, there’s a canonical tag pointing to the translated page.

https://www.yourmove.ai/sitemap.xml

I’ve gone ahead and set the primary canonical url to https://www.yourmove.ai

Any idea how I can go about resolving this error?

That’s the correct behavior you want. The canonical defines the correct URL for the current page. If you’re on a localized page like https://www.yourmove.ai/es/profile-poet then the canonical should point to that localized version https://www.yourmove.ai/es/profile-poet.

The hreflang links are what tell search engines about the other variants, including the default.

<link rel="alternate" hreflang="x-default" href="https://www.yourmove.ai/profile-poet">
<link rel="alternate" hreflang="en-US" href="https://www.yourmove.ai/profile-poet">
<link rel="alternate" hreflang="es-ES" href="https://www.yourmove.ai/es/profile-poet">