Canonical Tags in WordPress
How WordPress core handles canonicals on singular content, what it leaves out, and how to add or override them with or without a plugin.
Unlike most site builders, Webflow stays silent on canonical tags until you tell it what URL to use.
This is the detail that separates Webflow from nearly every other platform covered on this site: Webflow does not automatically output a self-referencing canonical tag. Where other platforms ship a canonical on every page with zero configuration, Webflow's default state is silence. If the global canonical field is left empty, no rel=canonical tag is emitted on your pages at all.
This is worth pausing on because Webflow's own Help Center language can be misread. It describes canonical tags as automatically included, which sounds like an out-of-the-box self-referencing tag. In fact, that description applies only to the behavior after you've entered a base URL into the global canonical field -- at which point Webflow does auto-build a canonical for every page, by combining that base URL with each page's slug. Before you set that field, automatic doesn't apply; there's nothing to be automatic about, because no canonical exists yet.
The practical consequence is that Webflow puts the burden of activation on you. A newly built Webflow site, published without ever touching the SEO tab, will serve every page with no canonical tag whatsoever -- not a wrong one, not a duplicate one, simply absent. That's a meaningfully different risk profile than the other platforms in this series, and it's the first thing to check on any Webflow site you inherit or audit.
To turn canonicalization on site-wide, go to Site settings, then the SEO tab, and find the field labeled Global canonical tag URL. Enter your site's base URL there, for example https://www.example.com, using the full protocol (https://) and, importantly, no trailing slash. Once this field holds a value, Webflow begins auto-generating a canonical tag for every page by appending that page's own slug to the base URL you entered.
This single field is the foundation for canonical tags across your entire site. Skipping it does not mean Webflow will handle it for you by default -- it means no canonical tag is generated for any page unless you separately hand-place one, which is not the normal workflow. Setting the global field should be treated as a required step in Webflow SEO setup, not an optional enhancement.
Get the base URL exactly right here, because every auto-generated canonical on the site is built from it. A wrong protocol, the wrong domain, or a stray trailing slash propagates the same error onto every single page's canonical tag at once -- this one field has outsized leverage over the correctness of your entire site's canonicalization.
For an individual static page that needs a canonical different from what the global field would auto-generate, Webflow provides a per-page override. In the Designer, open the Pages panel, select the gear icon next to the page, and go to that page's SEO settings, where you'll find a Canonical Tag URL field. Enter the full absolute URL, including https://, that you want this specific page to canonicalize to. Alternatively, you can hand-place a link rel=canonical tag directly into that page's custom head code, though that approach requires more care to avoid conflicting with the global or per-page settings.
The significant limitation here concerns CMS Collection pages -- the dynamically templated pages Webflow generates from a CMS Collection, like individual blog posts or product listings built from a single template. CMS Collection pages cannot take a per-page canonical override. The Canonical Tag URL field described above exists on static pages only. Every item in a CMS Collection instead receives the auto-generated canonical produced by the global base URL plus that item's own slug -- there is no field to hand-set a different canonical value for one specific Collection item through Webflow's native settings.
This is a real, structural constraint for anyone syndicating or republishing CMS content -- say, cross-posting a Collection item that also lives at a different, more authoritative URL elsewhere. Webflow's native tools do not give you a way to point that single CMS item's canonical somewhere else; you would need to fall back to custom code in that item's head, where Webflow's CMS supports it, or accept the auto-generated self-referencing canonical as unavoidable for that content type.
Two configuration details cause most of the real-world canonical breakage on Webflow, and both trace back to the global base URL field. First, if you include a trailing slash in the global canonical tag URL -- entering https://www.example.com/ instead of https://www.example.com -- Webflow's slug-appending logic produces malformed, double-slashed canonicals on every page, such as https://example.com//contact. That double slash is not a cosmetic issue; it's a different, technically incorrect URL that may not match what actually resolves when a crawler tries to fetch it. The fix is simple but easy to miss: omit the trailing slash from the base URL, but do keep the protocol.
Second, Webflow sites are typically built and previewed on a staging subdomain in the pattern yoursite.webflow.io before being published to a custom domain. If the global canonical base URL is set to that staging domain, or is simply never updated after the custom domain goes live, every page's canonical will point at the .webflow.io staging URL instead of your real, indexable domain. Align the global base URL with your site's actual default published domain, and re-check it any time the site's primary domain configuration changes.
A related, quieter pitfall is a www versus non-www mismatch between the global base URL and the domain your site actually serves from. If your site is reachable at www.example.com but the canonical base URL is set to the bare example.com, or the reverse, every generated canonical will point at a host that doesn't match the served page -- the same category of error as an http/https mismatch, just less commonly checked.
The most consequential mistake, precisely because it's easy to make by doing nothing, is never setting the global canonical tag URL at all. A site owner who assumes Webflow behaves like other builders and self-canonicalizes by default will publish a fully finished site with zero canonical tags anywhere on it -- a gap that often surfaces later as a Duplicate without user-selected canonical issue in Google Search Console, once Google has had to guess at canonicalization on its own.
Because Webflow's canonical behavior depends entirely on deliberate configuration rather than an automatic default, the right habit is to treat the SEO tab's Global canonical tag URL field as a required step in every project's launch checklist -- verified against the live, published domain, not just the staging preview -- rather than something to set once and forget.
No. Webflow does not output a self-referencing canonical tag by default. If the global canonical field in Site settings is left empty, no rel=canonical tag is emitted on any page until you configure it.
Go to Site settings, then the SEO tab, and enter your site's base URL, including https:// and with no trailing slash, into the Global canonical tag URL field. Webflow will then auto-generate a canonical for every page by appending each page's slug to that base URL.
Not through a per-page override. Webflow's Canonical Tag URL field in page SEO settings is available for static pages only -- CMS Collection pages cannot take a per-page canonical override and instead receive the auto-generated canonical built from the global base URL plus the item's slug.
This happens when the global canonical tag URL includes a trailing slash. Webflow appends each page's slug to whatever base URL you entered, so a trailing slash on the base produces a malformed double-slash canonical on every page. Remove the trailing slash from the global field.
The global canonical base URL is likely still set to your staging subdomain, or was never updated after you connected a custom domain. Align the global canonical tag URL with your site's actual default published domain.
How WordPress core handles canonicals on singular content, what it leaves out, and how to add or override them with or without a plugin.
How Yoast SEO adds self-referencing canonicals across your whole WordPress site, where to override them, and how to fix a wrong canonical.
How Wix sets a default canonical for every page, how to override it, and the sitemap side effect you need to watch for.