Index: src/views/pages/admin-seo.ejs
===================================================================
--- src/views/pages/admin-seo.ejs	(revision 81bb9c588cda25bc4e200a46e001bf780d57c10f)
+++ src/views/pages/admin-seo.ejs	(revision 1ff004363790da4fd47e4c572ebaa3bb8663d228)
@@ -29,5 +29,5 @@
       <label>
         <span><%= t('aseo.canonical') %> <small class="form-hint-inline">— <%= t('aseo.canonical_hint') %></small></span>
-        <input type="text" name="canonical" value="<%= site.canonical || '' %>" placeholder="https://jouw-domein.com" maxlength="200">
+        <input type="text" name="canonical" value="<%= site.canonical || '' %>" placeholder="https://yourdomain.com" maxlength="200">
       </label>
       <label>
@@ -41,5 +41,5 @@
       <label>
         <span><%= t('aseo.og_image') %> <small class="form-hint-inline">— <%= t('aseo.og_image_hint') %></small></span>
-        <input type="text" name="og_image_default" value="<%= site.og_image_default || '' %>" placeholder="https://jouw-domein.com/share.jpg" maxlength="500">
+        <input type="text" name="og_image_default" value="<%= site.og_image_default || '' %>" placeholder="https://yourdomain.com/share.jpg" maxlength="500">
       </label>
       <label>
@@ -72,9 +72,9 @@
       <label>
         <span><%= t('aseo.publisher_url') %></span>
-        <input type="text" name="publisher_url" value="<%= site.publisher_url || '' %>" placeholder="https://jouw-domein.com" maxlength="200">
+        <input type="text" name="publisher_url" value="<%= site.publisher_url || '' %>" placeholder="https://yourdomain.com" maxlength="200">
       </label>
       <label>
         <span><%= t('aseo.publisher_logo') %></span>
-        <input type="text" name="publisher_logo" value="<%= site.publisher_logo || '' %>" placeholder="https://jouw-domein.com/logo.png" maxlength="500">
+        <input type="text" name="publisher_logo" value="<%= site.publisher_logo || '' %>" placeholder="https://yourdomain.com/logo.png" maxlength="500">
       </label>
     </fieldset>
Index: src/views/shell.ejs
===================================================================
--- src/views/shell.ejs	(revision 81bb9c588cda25bc4e200a46e001bf780d57c10f)
+++ src/views/shell.ejs	(revision 1ff004363790da4fd47e4c572ebaa3bb8663d228)
@@ -42,8 +42,10 @@
 }
 
-// ── Canonical URL (only when we have one configured) ─────────────
+// ── Canonical URL: per-site override (admin SEO), else the .env base
+//    (PUBLIC_BASE_URL, via ogOrigin → falls back to the request host) ──
 let _canonical = null;
-if (safeSite.canonical) {
-  const _base = safeSite.canonical.replace(/\/+$/, '');
+const _canonBase = safeSite.canonical || (typeof ogOrigin !== 'undefined' ? ogOrigin : '');
+if (_canonBase) {
+  const _base = _canonBase.replace(/\/+$/, '');
   let _path = '/';
   if (typeof post !== 'undefined' && post && post.slug) _path = '/' + post.slug;
