[{"data":1,"prerenderedAt":71},["ShallowReactive",2],{"help-article-canonical-urls":3},{"data":4},{"title":5,"excerpt":6,"content":7,"help_category":8,"seo":11},"Canonical URLs","Learn what a canonical URL is, how m18t derives it from your brand, type, locale, and slug, how to override it for syndication, and what m18t leaves to you.","\u003Cp>\u003Cstrong>What you&#39;ll learn\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>What a canonical URL is and why duplicate content hurts ranking.\u003C\u002Fli>\n\u003Cli>How m18t derives the canonical from your brand, type, locale, and slug.\u003C\u002Fli>\n\u003Cli>How to override the canonical for syndicated content, and what m18t does \u003Cem>not\u003C\u002Fem> do for you.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Chr>\n\u003Ch2>The concept: one address is the master copy\u003C\u002Fh2>\n\u003Cp>A canonical URL is a tag in a page&#39;s \u003Ccode>&lt;head&gt;\u003C\u002Fcode> — \u003Ccode>&lt;link rel=&quot;canonical&quot; href=&quot;…&quot; \u002F&gt;\u003C\u002Fcode> — that tells search engines which address is the original when the same content appears at more than one URL. Without it, syndicating an article to Medium or a partner site can split ranking signals across copies, and search engines may pick the wrong one to surface.\u003C\u002Fp>\n\u003Cp>m18t&#39;s job is to compute the right canonical and put it in the metadata it pushes to your CMS. Because it&#39;s derived from structured inputs rather than typed by hand, the same kind of content produces the same URL shape every time. That predictability is the point — see \u003Ca href=\"\u002Fhelp\u002Fthe-seo-philosophy\">The SEO Philosophy\u003C\u002Fa> for why m18t leans on derivation over free text.\u003C\u002Fp>\n\u003Ch2>How m18t derives the canonical\u003C\u002Fh2>\n\u003Cp>When you create a piece, m18t builds the canonical from four inputs:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>The brand&#39;s website URL\u003C\u002Fstrong> (set on the brand) — the domain, with any trailing slash stripped.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>The content type&#39;s path prefix\u003C\u002Fstrong> (from \u003Ca href=\"\u002Fhelp\u002Fconfiguring-seo-defaults\">Content Types\u003C\u002Fa>) — e.g. \u003Ccode>\u002Fblog\u002F\u003C\u002Fcode>. A root type (\u003Ccode>\u002F\u003C\u002Fcode>) contributes no prefix.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>The locale\u003C\u002Fstrong> — the piece&#39;s primary locale adds nothing; a non-primary locale prepends \u003Ccode>\u002F{locale}\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>The slug\u003C\u002Fstrong> — the piece&#39;s URL slug.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>So a primary-locale blog post resolves to \u003Ccode>https:\u002F\u002Fbrand.example\u002Fblog\u002Fmy-post\u003C\u002Fcode>, and its Arabic sibling (if Arabic isn&#39;t that brand&#39;s primary locale) resolves to \u003Ccode>https:\u002F\u002Fbrand.example\u002Far\u002Fblog\u002Fmy-post\u003C\u002Fcode>. The canonical field is pre-filled when you create the piece; if you change the type or slug, click \u003Cstrong>Re-derive from SEO index\u003C\u002Fstrong> next to the field to recompute it.\u003C\u002Fp>\n\u003Cp>This derived canonical is also handed to the \u003Ca href=\"\u002Fhelp\u002Fthe-seo-ai-prompt\">SEO AI prompt\u003C\u002Fa>. When the model drafts JSON-LD, it&#39;s instructed to use only that exact URL — which is how m18t keeps generated structured data from pointing at invented addresses.\u003C\u002Fp>\n\u003Ch2>Overriding for syndication\u003C\u002Fh2>\n\u003Cp>There&#39;s one case where the derived canonical is wrong on purpose: when you&#39;re re-publishing content that originated somewhere else, and you want to credit the original. Example — you reproduce a piece that first ran on another publication and want search engines to treat that publication as the source.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Open the piece in the content editor and go to the \u003Cstrong>SEO\u003C\u002Fstrong> tab.\u003C\u002Fli>\n\u003Cli>In the \u003Cstrong>Canonical URL\u003C\u002Fstrong> field, replace the derived value with the original external URL (e.g. \u003Ccode>https:\u002F\u002Fexample.com\u002Fthe-original-article\u003C\u002Fcode>).\u003C\u002Fli>\n\u003Cli>Save the piece.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>When you \u003Ca href=\"\u002Fhelp\u002Fpushing-to-your-cms\">push to your CMS\u003C\u002Fa>, the metadata carries your override instead of the derived URL.\u003C\u002Fp>\n\u003Ch2>An honest limit: redirects are not m18t&#39;s job\u003C\u002Fh2>\n\u003Cp>If you change a published piece&#39;s slug, its canonical changes too — which breaks existing inbound links to the old URL. m18t updates the metadata, but it does \u003Cstrong>not\u003C\u002Fstrong> create the 301 redirect from the old address to the new one. That redirect lives in your front-end or web server (Nuxt, Next.js, Astro, a reverse proxy, etc.). Set it there so old links keep working.\u003C\u002Fp>\n\u003Cp>Likewise, m18t emits the canonical into the payload it sends your CMS — it doesn&#39;t render your public pages. If the tag isn&#39;t showing up in the live HTML, the gap is on the rendering side. Walk it in \u003Ca href=\"\u002Fhelp\u002Fseo-troubleshooting\">SEO troubleshooting\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch2>What&#39;s next\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Ca href=\"\u002Fhelp\u002Fconfiguring-seo-defaults\">Configuring SEO Defaults (in Content Types)\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fhelp\u002Fstructured-data-json-ld\">Structured Data &amp; JSON-LD\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"\u002Fhelp\u002Fseo-troubleshooting\">SEO Troubleshooting\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>FAQ\u003C\u002Fh2>\n\u003Cp>\u003Cstrong>How does m18t build the canonical URL?\u003C\u002Fstrong>\nFrom the brand website URL + the content type&#39;s path prefix + a locale segment (only for non-primary locales) + the piece&#39;s slug. Change the type or slug and click \u003Cstrong>Re-derive from SEO index\u003C\u002Fstrong> to recompute.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Can I point the canonical at an external site?\u003C\u002Fstrong>\nYes. On the piece&#39;s SEO tab, replace the Canonical URL with the external original and save. The override is what gets pushed to your CMS.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>I changed a slug and old links 404. Does m18t redirect?\u003C\u002Fstrong>\nNo. m18t updates the canonical metadata; the 301 redirect from old to new URL is configured in your front-end or web server, not in m18t.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Why doesn&#39;t the canonical tag appear on my live page?\u003C\u002Fstrong>\nm18t pushes the canonical into the CMS payload; your front-end has to render it into the page \u003Ccode>&lt;head&gt;\u003C\u002Fcode>. If it&#39;s correct in m18t but absent in the HTML, the issue is rendering — see \u003Ca href=\"\u002Fhelp\u002Fseo-troubleshooting\">SEO troubleshooting\u003C\u002Fa>.\u003C\u002Fp>\n",{"slug":9,"title":10},"seo","SEO",{"meta_title":12,"meta_description":6,"keywords":13,"canonical_url":14,"og_title":5,"og_description":15,"og_image":16,"robots":17,"json_ld":18},"Canonical URLs | m18t Help","canonical url, duplicate content, syndication, canonical tag, 301 redirect, locale segment, derived url","https:\u002F\u002Fm18t.com\u002Fhelp\u002Fcanonical-urls","m18t derives the canonical from brand website, type path prefix, locale, and slug — predictable URLs, overridable for syndication.","https:\u002F\u002Fm18t.com\u002Fog-default.png","index, follow",{"@context":19,"@graph":20},"https:\u002F\u002Fschema.org",[21,34,55],{"@type":22,"headline":5,"description":6,"articleSection":10,"inLanguage":23,"datePublished":24,"dateModified":24,"image":16,"author":25,"publisher":29,"mainEntityOfPage":32},"Article","en","2026-06-25",{"@type":26,"name":27,"url":28},"Organization","m18t","https:\u002F\u002Fm18t.com",{"@type":26,"name":27,"url":28,"logo":30},{"@type":31,"url":16},"ImageObject",{"@type":33,"@id":14},"WebPage",{"@type":35,"mainEntity":36},"FAQPage",[37,43,47,51],{"@type":38,"name":39,"acceptedAnswer":40},"Question","How does m18t build the canonical URL?",{"@type":41,"text":42},"Answer","From the brand website URL + the content type's path prefix + a locale segment (only for non-primary locales) + the piece's slug. Change the type or slug and click Re-derive from SEO index to recompute.",{"@type":38,"name":44,"acceptedAnswer":45},"Can I point the canonical at an external site?",{"@type":41,"text":46},"Yes. On the piece's SEO tab, replace the Canonical URL with the external original and save. The override is what gets pushed to your CMS.",{"@type":38,"name":48,"acceptedAnswer":49},"I changed a slug and old links 404. Does m18t redirect?",{"@type":41,"text":50},"No. m18t updates the canonical metadata; the 301 redirect from old to new URL is configured in your front-end or web server, not in m18t.",{"@type":38,"name":52,"acceptedAnswer":53},"Why doesn't the canonical tag appear on my live page?",{"@type":41,"text":54},"m18t pushes the canonical into the CMS payload; your front-end has to render it into the page head. If it's correct in m18t but absent in the HTML, the issue is rendering.",{"@type":56,"itemListElement":57},"BreadcrumbList",[58,62,66,69],{"@type":59,"position":60,"name":61,"item":28},"ListItem",1,"Home",{"@type":59,"position":63,"name":64,"item":65},2,"Help","https:\u002F\u002Fm18t.com\u002Fhelp",{"@type":59,"position":67,"name":10,"item":68},3,"https:\u002F\u002Fm18t.com\u002Fhelp\u002Fcategories\u002Fseo",{"@type":59,"position":70,"name":5,"item":14},4,1786312170274]