Index: src/routes/admin-seo.js
===================================================================
--- src/routes/admin-seo.js	(revision f50a84b2ccb39b0646c595ef6a2c3ca4b494df4a)
+++ src/routes/admin-seo.js	(revision bb9e54cec02ebc6188104575f97e2d80a9b52679)
@@ -95,4 +95,16 @@
   const schemaType = f.schema_type === 'Organization' ? 'Organization' : 'Person';
 
+  // De MusicBrainz-koppeling (shaer-mbz). Alleen een echte MBID komt de kolom
+  // in: zonder deze zeef sluipt er een URL of een handle in het veld dat naar
+  // buiten gaat, en het gaat naar TWEE uitgangen -- de JSON-LD en de actor.
+  // Leeg is een geldige keuze; dat is ontkoppelen.
+  //
+  // Deze twee regels stonden BINNEN de template-literal hieronder, dus ze waren
+  // geen code maar tekst in de SQL. Daardoor faalde elke opslag op dit paneel
+  // met `near "/": syntax error` -- niet alleen de koppeling, ook het
+  // titelsjabloon, de omschrijving en alle verificatiecodes.
+  const mbRuw = String(f.mb_artist_id || '').trim().toLowerCase();
+  const mbArtistId = isMbid(mbRuw) ? mbRuw : null;
+
   db.prepare(`
     UPDATE sites SET
@@ -118,11 +130,4 @@
       updated_at = CURRENT_TIMESTAMP
     WHERE id = ?
-  // De MusicBrainz-koppeling (shaer-mbz). Alleen een echte MBID komt de kolom
-  // in: zonder deze zeef sluipt er een URL of een handle in het veld dat naar
-  // buiten gaat, en het gaat naar TWEE uitgangen -- de JSON-LD en de actor.
-  // Leeg is een geldige keuze; dat is ontkoppelen.
-  const mbRuw = String(f.mb_artist_id || '').trim().toLowerCase();
-  const mbArtistId = isMbid(mbRuw) ? mbRuw : null;
-
   `).run(
     f.robots_index ? 1 : 0,
