Index: src/assets/js/mod/admin-seo.js
===================================================================
--- src/assets/js/mod/admin-seo.js	(revision 013e16c6f24f30b8d59a5c851a20e0d9a6ddef6b)
+++ src/assets/js/mod/admin-seo.js	(revision f50a84b2ccb39b0646c595ef6a2c3ca4b494df4a)
@@ -64,8 +64,35 @@
     uit.hidden = true;
     uit.replaceChildren();
+    checkTerugweg(mbid);
   }
 
   const wis = document.getElementById('mb-wis');
   if (wis) wis.addEventListener('click', () => zet('', ''));
+
+  // DE TERUG-WEG. Wij zetten hem niet -- dat kan niet via hun API en hoort ook
+  // niet -- we kijken alleen of de artiestenpagina ons domein noemt. Zolang dat
+  // niet zo is staat er "nog eenzijdig", want een halve koppeling die als
+  // bevestigd leest is het soort stilte waar we vandaag al genoeg van zagen.
+  const terugweg = document.getElementById('mb-terugweg');
+  async function checkTerugweg(mbid) {
+    if (!terugweg) return;
+    if (!mbid) { terugweg.hidden = true; terugweg.textContent = ''; return; }
+    terugweg.hidden = false;
+    terugweg.className = 'mb-terugweg';
+    terugweg.textContent = T.aseo_mb_checking || 'Terug-weg controleren…';
+    try {
+      const r = await fetch(`/admin/seo/api/musicbrainz/terugweg?mbid=${encodeURIComponent(mbid)}`, { credentials: 'same-origin' });
+      const j = await r.json();
+      terugweg.className = 'mb-terugweg ' + (j.verified ? 'is-ok' : 'is-eenzijdig');
+      terugweg.textContent = j.verified
+        ? (T.aseo_mb_verified || 'Wederzijds.')
+        : (T.aseo_mb_unverified || 'Nog eenzijdig.');
+    } catch {
+      terugweg.hidden = true;
+    }
+  }
+  // Meteen bij het openen, want de artiest kan hem intussen op MusicBrainz
+  // hebben gezet en hoort dat hier te zien zonder opnieuw te koppelen.
+  if (idVeld.value) checkTerugweg(idVeld.value);
 
   async function zoek() {
Index: src/routes/admin-seo.js
===================================================================
--- src/routes/admin-seo.js	(revision 013e16c6f24f30b8d59a5c851a20e0d9a6ddef6b)
+++ src/routes/admin-seo.js	(revision f50a84b2ccb39b0646c595ef6a2c3ca4b494df4a)
@@ -62,5 +62,27 @@
   const q = String(req.query.q || (site && (site.publisher_name || site.title)) || '').trim();
   if (!q) return res.json({ ok: true, q: '', kandidaten: [] });
+  // Wie zijn id al kent plakt het hier. Een zoekopdracht op een UUID levert bij
+  // MusicBrainz niets op, dus zonder deze tak geeft plakken juist het slechtste
+  // resultaat.
+  if (isMbid(q)) {
+    const een = await MusicBrainz.haalArtiest(q);
+    return res.json({ ok: true, q, kandidaten: een ? [een] : [] });
+  }
   res.json({ ok: true, q, kandidaten: await MusicBrainz.zoekArtiesten(q) });
+});
+
+/**
+ * De terug-weg: noemt de MusicBrainz-pagina ons domein? (shaer-mbz)
+ *
+ * Een koppeling van onze kant is een bewering -- iedereen kan een id typen.
+ * Pas als de artiestenpagina TERUGWIJST is het een paar. Wij zetten die
+ * verwijzing niet zelf: dat kan niet via hun API en hoort ook niet, de artiest
+ * doet dat op musicbrainz.org onder "social networking".
+ */
+router.get('/api/musicbrainz/terugweg', requireGod, async (req, res) => {
+  const mbid = String(req.query.mbid || '').trim().toLowerCase();
+  const base = (process.env.PUBLIC_BASE_URL || '').replace(/\/+$/, '');
+  if (!isMbid(mbid) || !base) return res.json({ ok: true, verified: false, urls: [] });
+  res.json({ ok: true, ...(await MusicBrainz.controleerTerugweg(mbid, base)) });
 });
 
Index: src/services/MusicBrainzService.js
===================================================================
--- src/services/MusicBrainzService.js	(revision 013e16c6f24f30b8d59a5c851a20e0d9a6ddef6b)
+++ src/services/MusicBrainzService.js	(revision f50a84b2ccb39b0646c595ef6a2c3ca4b494df4a)
@@ -80,4 +80,58 @@
 }
 
+/**
+ * Een MBID rechtstreeks opzoeken. Wie zijn id al kent hoeft niet te zoeken --
+ * en een zoekopdracht op een UUID levert bij MusicBrainz niets op, dus zonder
+ * deze tak zou plakken juist het slechtste resultaat geven.
+ */
+export async function haalArtiest(mbid) {
+  if (!isMbid(mbid)) return null;
+  const url = `${BASIS}/artist/${encodeURIComponent(mbid)}?inc=url-rels&fmt=json`;
+  try {
+    await opDeBeurt();
+    const r = await safeFetch(url, { headers: { Accept: 'application/json', 'User-Agent': userAgent() } });
+    if (!r || !r.ok) return null;
+    return kandidaat(await r.json());
+  } catch {
+    return null;
+  }
+}
+
+/**
+ * DE TERUG-WEG. Noemt de MusicBrainz-pagina van deze artiest ons domein?
+ *
+ * Een koppeling van onze kant is een bewering: iedereen kan een MBID in een
+ * veld typen. Pas als de artiestenpagina TERUGWIJST is het een paar, en dan
+ * weet een lezer dat dezelfde persoon aan allebei de kanten stond. Dat is
+ * dezelfde gedachte als rel="me" bij Mastodon.
+ *
+ * Wij zetten die terugwijzing NIET zelf: via hun API kan het niet, en het hoort
+ * ook niet -- de artiest doet dat op musicbrainz.org onder "social networking".
+ * Wij kijken alleen of hij er staat.
+ *
+ * Geeft { verified, urls } -- bij een storing verified:false en een lege lijst,
+ * want niet kunnen kijken is niet hetzelfde als niet gevonden.
+ */
+export async function controleerTerugweg(mbid, domein) {
+  const leeg = { verified: false, urls: [] };
+  if (!isMbid(mbid) || !domein) return leeg;
+  let host;
+  try { host = new URL(domein).host.toLowerCase(); } catch { return leeg; }
+  const url = `${BASIS}/artist/${encodeURIComponent(mbid)}?inc=url-rels&fmt=json`;
+  try {
+    await opDeBeurt();
+    const r = await safeFetch(url, { headers: { Accept: 'application/json', 'User-Agent': userAgent() } });
+    if (!r || !r.ok) return leeg;
+    const doc = await r.json();
+    const urls = (doc.relations || [])
+      .map((rel) => rel && rel.url && rel.url.resource)
+      .filter((u) => typeof u === 'string');
+    const wijst = urls.some((u) => { try { return new URL(u).host.toLowerCase() === host; } catch { return false; } });
+    return { verified: wijst, urls };
+  } catch {
+    return leeg;
+  }
+}
+
 /** Een kandidaat, teruggebracht tot wat een mens nodig heeft om te kiezen. */
 function kandidaat(a) {
@@ -104,3 +158,3 @@
 // ze precies wonen.
 export { isMbid, artiestUrl };
-export default { zoekArtiesten, isMbid, artiestUrl };
+export default { zoekArtiesten, haalArtiest, controleerTerugweg, isMbid, artiestUrl };
Index: src/services/i18n.js
===================================================================
--- src/services/i18n.js	(revision 013e16c6f24f30b8d59a5c851a20e0d9a6ddef6b)
+++ src/services/i18n.js	(revision f50a84b2ccb39b0646c595ef6a2c3ca4b494df4a)
@@ -360,17 +360,20 @@
     'aaud.fedi_off': 'Niet op de fediverse gedeeld (alleen webspeler, bestand verborgen) — klik om te delen',
     'aaud.embed_player': 'Embedbare speler',
-    'aseo.mb_legend': 'MusicBrainz (dezelfde artiest elders)',
-    'aseo.mb_search_label': 'Zoek jezelf op',
-    'aseo.mb_search_hint': 'de naam waaronder je muziek uitbrengt',
-    'aseo.mb_hint': 'MusicBrainz is het open register van de muziekwereld. Koppel je eigen pagina en je komt als sameAs in de JSON-LD van deze site én in je fediverse-profiel te staan — zo weten zoekmachines en muziekdiensten dat jouw muziek van jou is. Je verandert er niets mee bij MusicBrainz zelf; we verwijzen er alleen naar.',
-    'aseo.mb_search': 'Zoeken',
-    'aseo.mb_placeholder': 'Je artiestennaam',
-    'aseo.mb_none': 'Niets gevonden. Sta je er nog niet in? Dan kun je jezelf aanmelden op musicbrainz.org — dat kan alleen daar, niet vanuit Klonkt.',
-    'aseo.mb_pick': 'Dit ben ik',
+    'aseo.mb_legend': 'MusicBrainz Koppeling',
     'aseo.mb_linked': 'Gekoppeld aan',
     'aseo.mb_unlink': 'Ontkoppelen',
     'aseo.mb_open': 'Bekijk op MusicBrainz',
+    'aseo.mb_pick': 'Dit ben ik',
+    'aseo.mb_none': 'Niets gevonden. Sta je er nog niet in? Dan kun je jezelf aanmelden op musicbrainz.org — dat kan alleen daar, niet vanuit Klonkt.',
     'aseo.mb_busy': 'Zoeken…',
     'aseo.mb_fail': 'MusicBrainz is even niet bereikbaar.',
+    'aseo.mb_hint': 'Hier koppel je je MusicBrainz artiest id aan je domein, met terug-weg validatie van je "social networking" profiel pagina.',
+    'aseo.mb_search_label': 'Zoek op je naam',
+    'aseo.mb_search_hint': 'je artiestennaam of je MusicBrainz id als je die kent',
+    'aseo.mb_placeholder': 'Ozzy Osbourne',
+    'aseo.mb_search': 'Opzoeken',
+    'aseo.mb_verified': 'Wederzijds: de MusicBrainz-pagina wijst terug naar dit domein.',
+    'aseo.mb_unverified': 'Nog eenzijdig. Zet dit domein op je MusicBrainz-pagina onder "social networking", dan is de koppeling van twee kanten bevestigd.',
+    'aseo.mb_checking': 'Terug-weg controleren…',
     'aaud.embed_hint': 'Plak deze code op je eigen website/blog om je muziek met deze speler in te sluiten:',
     'aaud.preview_player': 'Speler-voorbeeld openen',
@@ -1320,17 +1323,20 @@
     'aaud.fedi_off': 'Not shared on the fediverse (web player only, file hidden) — click to share',
     'aaud.embed_player': 'Embeddable player',
-    'aseo.mb_legend': 'MusicBrainz (the same artist elsewhere)',
-    'aseo.mb_search_label': 'Look yourself up',
-    'aseo.mb_search_hint': 'the name you release music under',
-    'aseo.mb_hint': 'MusicBrainz is the music world\u2019s open register. Link your own page and it appears as sameAs in this site\u2019s JSON-LD and in your fediverse profile — so search engines and music services know your music is yours. It changes nothing at MusicBrainz itself; we only point at it.',
-    'aseo.mb_search': 'Search',
-    'aseo.mb_placeholder': 'Your artist name',
-    'aseo.mb_none': 'Nothing found. Not in there yet? You can add yourself on musicbrainz.org — that can only be done there, not from Klonkt.',
-    'aseo.mb_pick': 'This is me',
+    'aseo.mb_legend': 'MusicBrainz link',
     'aseo.mb_linked': 'Linked to',
     'aseo.mb_unlink': 'Unlink',
     'aseo.mb_open': 'View on MusicBrainz',
+    'aseo.mb_pick': 'This is me',
+    'aseo.mb_none': 'Nothing found. Not in there yet? You can add yourself on musicbrainz.org — that can only be done there, not from Klonkt.',
     'aseo.mb_busy': 'Searching…',
     'aseo.mb_fail': 'MusicBrainz is unreachable right now.',
+    'aseo.mb_hint': 'Link your MusicBrainz artist id to your domain here, with back-way validation from your "social networking" profile page.',
+    'aseo.mb_search_label': 'Search for your name',
+    'aseo.mb_search_hint': 'your artist name, or your MusicBrainz id if you know it',
+    'aseo.mb_placeholder': 'Ozzy Osbourne',
+    'aseo.mb_search': 'Look up',
+    'aseo.mb_verified': 'Mutual: the MusicBrainz page points back at this domain.',
+    'aseo.mb_unverified': 'Still one-sided. Add this domain to your MusicBrainz page under "social networking" and the link is confirmed from both ends.',
+    'aseo.mb_checking': 'Checking the back-way…',
     'aaud.embed_hint': 'Paste this code on your own website/blog to embed your music with this player:',
     'aaud.preview_player': 'Open player preview',
@@ -2279,17 +2285,20 @@
     'aaud.fedi_off': 'Nicht im Fediverse geteilt (nur Web-Player, Datei verborgen) — zum Teilen klicken',
     'aaud.embed_player': 'Einbettbarer Player',
-    'aseo.mb_legend': 'MusicBrainz (dieselbe Künstlerin anderswo)',
-    'aseo.mb_search_label': 'Dich selbst suchen',
-    'aseo.mb_search_hint': 'der Name, unter dem du Musik veröffentlichst',
-    'aseo.mb_hint': 'MusicBrainz ist das offene Register der Musikwelt. Verknüpfe deine Seite, und sie erscheint als sameAs im JSON-LD dieser Website und in deinem Fediverse-Profil — so wissen Suchmaschinen und Musikdienste, dass deine Musik von dir ist. Bei MusicBrainz selbst ändert sich nichts; wir verweisen nur darauf.',
-    'aseo.mb_search': 'Suchen',
-    'aseo.mb_placeholder': 'Dein Künstlername',
-    'aseo.mb_none': 'Nichts gefunden. Noch nicht dabei? Du kannst dich auf musicbrainz.org eintragen — das geht nur dort, nicht aus Klonkt heraus.',
-    'aseo.mb_pick': 'Das bin ich',
+    'aseo.mb_legend': 'MusicBrainz-Verknüpfung',
     'aseo.mb_linked': 'Verknüpft mit',
     'aseo.mb_unlink': 'Trennen',
     'aseo.mb_open': 'Bei MusicBrainz ansehen',
+    'aseo.mb_pick': 'Das bin ich',
+    'aseo.mb_none': 'Nichts gefunden. Noch nicht dabei? Du kannst dich auf musicbrainz.org eintragen — das geht nur dort, nicht aus Klonkt heraus.',
     'aseo.mb_busy': 'Suche läuft…',
     'aseo.mb_fail': 'MusicBrainz ist gerade nicht erreichbar.',
+    'aseo.mb_hint': 'Hier verknüpfst du deine MusicBrainz-Künstler-ID mit deiner Domain, mit Rückweg-Validierung über deine "social networking"-Profilseite.',
+    'aseo.mb_search_label': 'Nach deinem Namen suchen',
+    'aseo.mb_search_hint': 'dein Künstlername oder deine MusicBrainz-ID, falls du sie kennst',
+    'aseo.mb_placeholder': 'Ozzy Osbourne',
+    'aseo.mb_search': 'Nachschlagen',
+    'aseo.mb_verified': 'Gegenseitig: die MusicBrainz-Seite verweist zurück auf diese Domain.',
+    'aseo.mb_unverified': 'Noch einseitig. Trage diese Domain auf deiner MusicBrainz-Seite unter "social networking" ein, dann ist die Verknüpfung von beiden Seiten bestätigt.',
+    'aseo.mb_checking': 'Rückweg wird geprüft…',
     'aaud.embed_hint': 'Füge diesen Code auf deiner eigenen Website/deinem Blog ein, um deine Musik mit diesem Player einzubetten:',
     'aaud.preview_player': 'Player-Vorschau öffnen',
Index: src/views/pages/admin-seo.ejs
===================================================================
--- src/views/pages/admin-seo.ejs	(revision 013e16c6f24f30b8d59a5c851a20e0d9a6ddef6b)
+++ src/views/pages/admin-seo.ejs	(revision f50a84b2ccb39b0646c595ef6a2c3ca4b494df4a)
@@ -107,4 +107,9 @@
         <button type="button" class="btn" id="mb-wis"><%= t('aseo.mb_unlink') %></button>
       </p>
+      <%# De terug-weg. Een koppeling van onze kant is een BEWERING -- iedereen
+          kan een id typen. Pas als de MusicBrainz-pagina terugwijst is het een
+          paar, en dat staat hier met zoveel woorden zodat "eenzijdig" niet als
+          "klaar" leest. %>
+      <p class="mb-terugweg" id="mb-terugweg" hidden></p>
 
       <label>
Index: test/musicbrainz.test.js
===================================================================
--- test/musicbrainz.test.js	(revision 013e16c6f24f30b8d59a5c851a20e0d9a6ddef6b)
+++ test/musicbrainz.test.js	(revision f50a84b2ccb39b0646c595ef6a2c3ca4b494df4a)
@@ -162,2 +162,42 @@
   assert.equal(term.sameAs['@type'], '@id', 'het is een URI en geen tekst');
 });
+
+// ── De terug-weg (Robins "social networking"-validatie) ───────────────────
+
+test('een MBID in het zoekveld wordt rechtstreeks opgezocht', async () => {
+  // Zoeken op een UUID levert bij MusicBrainz niets op, dus zonder deze tak
+  // geeft plakken juist het slechtste resultaat.
+  globalThis.fetch = async (url) => {
+    verzoeken.push({ url: String(url) });
+    return { ok: true, json: async () => ({ id: '8be31978-1884-4773-beae-f73df35b92aa', name: 'robo-burr', disambiguation: 'AKA roboburr' }) };
+  };
+  verzoeken.length = 0;
+  const een = await MB.haalArtiest('8be31978-1884-4773-beae-f73df35b92aa');
+  assert.equal(een.naam, 'robo-burr');
+  assert.match(verzoeken[0].url, /\/artist\/8be31978-1884-4773-beae-f73df35b92aa\?/, 'de lookup, niet de zoekopdracht');
+  assert.equal(await MB.haalArtiest('nirvana'), null, 'geen MBID, geen lookup');
+});
+
+test('de terug-weg is pas waar als de pagina ONS domein noemt', async () => {
+  // Echt gemeten op 13-8: robo-burr heeft precies een url-relatie, type
+  // "social network", naar sound-fabrics.com. Dus voor dev.klonkt.com hoort
+  // hier false uit te komen -- en dat is de waarde van de controle.
+  globalThis.fetch = async () => ({
+    ok: true,
+    json: async () => ({ relations: [{ type: 'social network', url: { resource: 'https://sound-fabrics.com/' } }] }),
+  });
+  const mbid = '24abe2be-c0bc-4c63-9642-d6f89ec6a00a';
+  const mis = await MB.controleerTerugweg(mbid, 'https://dev.klonkt.com');
+  assert.equal(mis.verified, false, 'een andere site is geen terugweg');
+  assert.deepEqual(mis.urls, ['https://sound-fabrics.com/']);
+
+  const raak = await MB.controleerTerugweg(mbid, 'https://sound-fabrics.com');
+  assert.equal(raak.verified, true, 'dezelfde host telt, ongeacht pad of slash');
+});
+
+test('niet kunnen kijken is niet hetzelfde als niet gevonden', async () => {
+  // Bij een storing false EN een lege lijst -- nooit stilletjes "wederzijds".
+  globalThis.fetch = async () => { throw new Error('weg'); };
+  const uit = await MB.controleerTerugweg('24abe2be-c0bc-4c63-9642-d6f89ec6a00a', 'https://dev.klonkt.com');
+  assert.deepEqual(uit, { verified: false, urls: [] });
+});
