Index: src/views/pages/admin-migrate.ejs
===================================================================
--- src/views/pages/admin-migrate.ejs	(revision 861c228ab92d14eec6f839d5157dfaba09749127)
+++ src/views/pages/admin-migrate.ejs	(revision e9128bc5aab022193bf90a325fb16b03b9d6540f)
@@ -5,4 +5,21 @@
   <% if (typeof success !== 'undefined' && success) { %><div class="alert alert-success"><%= success %></div><% } %>
   <% if (typeof error !== 'undefined' && error) { %><div class="alert alert-error"><%= error %></div><% } %>
+
+  <%# ── Je oude account claimen (FEP-7628 alsoKnownAs) ─────────── %>
+  <%# Bewust als EERSTE: zonder deze claim weigert de oude instantie de Move
+      met no_backreference, en kan de ophaalknop hieronder ook niets. Dit stond
+      op de site-bewerkpagina tussen de kleuren; daar zoekt niemand het als hij
+      aan het verhuizen is. %>
+  <section class="mig-card">
+    <h2><%= t('mig.alias_title') %></h2>
+    <p class="form-hint"><%= t('mig.alias_hint') %></p>
+    <form method="post" action="/admin/migrate/aliases">
+      <label for="mig-alias"><%= t('mig.alias_label') %></label>
+      <textarea id="mig-alias" name="ap_aliases" rows="3" class="mig-input"
+        placeholder="@oud@mastodon.social&#10;https://oude-klonkt.nl/ap/users/jij"><%= aliassen || '' %></textarea>
+      <p class="form-hint"><%= t('mig.alias_note') %></p>
+      <button type="submit" class="btn"><%= t('mig.alias_btn') %></button>
+    </form>
+  </section>
 
   <%# ── Exporteren ─────────────────────────────────────────────── %>
@@ -182,4 +199,26 @@
   </section>
 
+  <%# ── De verhuizing aankondigen (FEP-7628 Move) ──────────────── %>
+  <%# ONDERAAN, en met een rode knop. Dit is de enige knop op deze pagina die
+      de fediverse in gaat en niet terug te draaien is: je volgers verhuizen
+      mee en dit account gaat op slot. Alles hierboven kun je overdoen. %>
+  <section class="mig-card mig-card-danger">
+    <h2><%= t('mig.move_title') %></h2>
+    <p class="form-hint"><%= t('mig.move_hint') %></p>
+    <% if (movedTo) { %>
+      <p class="alert alert-error"><%= t('mig.move_done') %> <code><%= movedTo %></code></p>
+    <% } else { %>
+      <form method="post" action="/admin/sites/<%= site.slug %>/move"
+            onsubmit="return confirm('<%= t('mig.move_confirm') %>');">
+        <input type="hidden" name="next" value="/admin/migrate">
+        <label for="mig-move"><%= t('mig.move_label') %></label>
+        <input type="text" id="mig-move" name="move_target" class="mig-input"
+               placeholder="@nieuw@andere-server.nl" required>
+        <p class="form-hint mig-warn"><%= t('mig.move_warn') %></p>
+        <button type="submit" class="btn btn-danger"><%= t('mig.move_btn') %></button>
+      </form>
+    <% } %>
+  </section>
+
   <%# ── Wie je volgt ────────────────────────────────────────────── %>
   <section class="mig-card">
@@ -206,4 +245,6 @@
   .mig-report code { word-break: break-all; font-size: .88rem; }
   .mig-warn { color: var(--accent); }
+  .mig-card-danger { border-color: color-mix(in srgb, var(--accent, #c33) 45%, var(--rule)); }
+  textarea.mig-input { font-family: inherit; resize: vertical; }
   .mig-report { border-left: 3px solid var(--accent); padding: .8rem 1rem; margin-bottom: 1.2rem;
                 background: color-mix(in srgb, var(--ink, #000) 4%, transparent); border-radius: 0 8px 8px 0; }
Index: src/views/pages/admin-site-edit.ejs
===================================================================
--- src/views/pages/admin-site-edit.ejs	(revision 861c228ab92d14eec6f839d5157dfaba09749127)
+++ src/views/pages/admin-site-edit.ejs	(revision e9128bc5aab022193bf90a325fb16b03b9d6540f)
@@ -179,13 +179,13 @@
     </fieldset>
 
+    <%# Aliassen en verhuizen staan sinds 14-8 op /admin/migrate, bij elkaar met
+        exporteren, importeren en ophalen (Robin: alle migratie-opties op de
+        migrate-pagina). Ze hoorden hier ook niet thuis: dit scherm gaat over hoe
+        je site eruitziet, en een verhuizing is geen uiterlijk. Alleen de
+        wegwijzer blijft, want wie ze hier zocht moet ze kunnen vinden. %>
     <fieldset>
       <legend><%= t('asite.aliases') %></legend>
-      <p class="form-hint"><%= t('asite.aliases_hint') %></p>
-      <label>
-<%# typeof-guard on purpose: during a deploy an old route can render this new
-    template for one request (view cache fills on first hit). A missing local
-    must degrade to an empty field, not take the whole page down with a 500. %>
-        <textarea name="ap_aliases" rows="3" placeholder="@oud@mastodon.social&#10;https://andere-klonkt.example/ap/users/naam"><%= typeof apAliases !== 'undefined' ? apAliases : '' %></textarea>
-      </label>
+      <p class="form-hint"><%= t('asite.moved_to_migrate') %></p>
+      <p><a href="/admin/migrate" class="btn"><%= t('admin.b_migrate') %></a></p>
     </fieldset>
 
@@ -237,20 +237,4 @@
   </form>
 
-<% if (!isNew) { %>
-  <form method="post" action="/admin/sites/<%= site.slug %>/move" class="admin-form"
-        onsubmit="return confirm('<%= t('asite.move_confirm') %>');">
-    <fieldset>
-      <legend><%= t('asite.move') %></legend>
-      <p class="form-hint"><%= t('asite.move_hint') %></p>
-      <% if (typeof site.moved_to === 'string' && site.moved_to) { %>
-        <p class="form-hint"><strong><%= t('asite.moved_to') %>:</strong> <%= site.moved_to %></p>
-      <% } %>
-      <label>
-        <input type="text" name="move_target" placeholder="@nieuw@andere-server.example" required>
-      </label>
-      <button type="submit" class="btn btn-danger"><%= t('asite.move_btn') %></button>
-    </fieldset>
-  </form>
-<% } %>
 </div>
 
