Projekt · Verzeichnis

agentur.rocks

Blog für Marketing-Interessierte und Verzeichnis für Unternehmen auf der Suche nach der passenden Agentur.

Screenshot der Startseite von agentur.rocks, Verzeichnis
Rolle
Konzept, Umsetzung & Betrieb
Relaunch
Mai 2026
Leistungen
Migration, Konsolidierung, Design
Technik
PHP · MySQL

Ausgangslage

Ein Marketing-Blog unter 12.000 WordPress-Beiträgen

agentur.rocks lief als Blog in einer WordPress-Multisite. Beim Export kamen 12.221 Beiträge zusammen, dazu Seiten mit Marketing-Kennzahlen, zwei eigene Beitragstypen für CRM-Systeme und CRM-Anbieter und rund 10.000 Beitragsbilder auf dem alten Server.

Den weitaus größten Teil machte die Kategorie News aus, rund 11.900 Beiträge. Viele davon hatten mit Marketing wenig zu tun, von KI-Meldungen über Gaming bis zu Promi-Themen, und die meisten waren weder bei Google indexiert noch von außen verlinkt. Die eigentlichen Fachartikel zu SEO, Online-Werbung, CRM und Tools gingen in dieser Masse unter.

Technisch trug jeder Beitrag Gutenberg- und Plugin-Markup mit sich. SEO-Titel und Beschreibungen lagen in Yoast-Feldern, und die Kennzahlen-Seiten hingen unter verschachtelten Permalinks wie /kennzahlen-online-marketing/cost-per-click/.

Ziel & Rahmenbedingungen

Fokussieren, ohne Sichtbarkeit zu verschenken

Ziel war ein schlanker Blog für Marketing-Verantwortliche auf meinem eigenen CMS, mit lokalem Bildbestand und einer klaren Kategorienstruktur. Der Umzug sollte außerdem die Grundlage schaffen, die verbleibenden Artikel später gezielt zu überarbeiten.

Dabei durfte nichts verloren gehen, was nachweislich wirkt. Beiträge mit Google-Rankings oder Backlinks blieben erhalten, die bestehenden Slugs sollten gleich bleiben, und die sechs Kennzahlen-Rechner zu Kosten-Umsatz-Relation sowie Cost per Action, Order, Lead, Click und View waren von jeder Aufräumaktion ausgenommen.

Entscheidungen

Fünf Entscheidungen, die den Umzug geprägt haben

Jede dieser Entscheidungen steckt in den Import-Skripten und Migrationen und lässt sich dort nachvollziehen.

Slugs behalten, WordPress-IDs nicht

Der Import übernimmt die Slugs der Beiträge unverändert, vergibt aber eigene IDs. So bleiben alle bekannten Adressen gleich, während das CMS seine Datenbank sauber aufbaut. Einstellungen, die an einen Artikel gebunden sind, etwa die Konfiguration der Kennzahlen-Rechner, löse ich deshalb über den Slug auf und nie über eine fest eingetragene ID.

Behalten, was Google kennt oder verlinkt

Statt die News-Kategorie pauschal zu entfernen, habe ich jeden der rund 11.900 News-Beiträge gegen zwei Listen geprüft, die Google-Indexierung und die Backlinks. 888 Beiträge standen auf mindestens einer Liste und blieben, 11.030 wurden entfernt und liefern seitdem 410.

410 statt Weiterleitung auf die Startseite

Für gelöschte Beiträge ohne inhaltlich passendes Ziel gibt es bewusst keine Weiterleitung. Eine pauschale 301 auf die Startseite wertet Google in der Regel als Soft-404, und Besucher landen ohne Erklärung irgendwo. Der Statuscode 410 sagt eindeutig, dass der Inhalt dauerhaft entfernt wurde.

Die Kategorie schlägt das Suchmuster

Für die zweite Aufräumrunde im Juli 2026 lag eine automatisch erstellte Liste mit Off-Topic-Kandidaten vor. Stand ein Beitrag in einer Marketing-Kategorie, galt die Kategorie mehr als der Treffer des Suchmusters. So blieben 63 Vorschläge stehen, 27 Grenzfälle habe ich einzeln anhand von Titel und Text entschieden.

Kennzahlen-Rechner hart geschützt

Die sechs Rechnerseiten und ihr Begleitartikel standen auf einer Schutzliste, die keine automatische Regel überschreiben konnte. Sie gehören zu den Seiten mit dauerhaftem Nutzen für die Zielgruppe. In der Abschlussprüfung antworteten alle sechs Rechner weiter mit 200.

Technische Umsetzung

Import, Bereinigung und Weiterleitungen

Import aus einer temporären Datenbank

Die WordPress-Datenbank habe ich zuerst in eine temporäre Datenbank eingespielt. Ein PHP-Skript liest daraus Beiträge, Kategorien, Autoren, Yoast-Titel und -Beschreibungen sowie die Lesezeit und schreibt sie in das Artikel-Schema des CMS. Gutenberg-Kommentare und Plugin-Markup entfernt es dabei, die Texte selbst bleiben unverändert. Zwei weitere Skripte übernehmen die CRM-Beitragstypen und neun WordPress-Seiten, darunter den Kennzahlen-Hub und die sechs Rechner.

Bilder lokal statt auf dem alten Server

Die rund 10.000 Beitragsbilder lädt ein eigenes Skript parallel per curl_multi vom alten Server und legt sie nach Jahr und Monat ab, zusammen etwa 1,4 GB. Danach zeigt das Bildfeld jedes Artikels auf die lokale Datei.

301 und 410 im Router

Für die alten Kennzahlen-Adressen legt der Import sechs 301-Weiterleitungen an. Alte Permalinks mit Kategorie-Präfix prüft der Router gegen die Tabellen für Weiterleitungen und gelöschte Beiträge, bevor er 404 meldet. Gelöschte Slugs stehen in einer eigenen Tabelle und liefern 410.

Konsolidierung in zwei idempotenten Migrationen

Die Aufräumrunde im Juli 2026 lief über zwei Migrationen, die sich gefahrlos mehrfach ausführen lassen. Die erste setzt 872 Off-Topic-Beiträge auf 410. Die zweite führt 17 Kategorien mit weniger als drei Artikeln per 301 in ihre Eltern- oder Themenkategorie zusammen und löst die Kategorien news und uncategorized auf. Eine bestehende Weiterleitung habe ich dabei direkt auf das neue Ziel umgebogen, damit keine Kette entsteht.

Vor dem Lauf habe ich die betroffenen Tabellen gesichert. Nach dem Deploy leerte ich den Cloudflare-Cache erst, als die Migrationen durchgelaufen waren.

Einblicke

So sieht es aus

agentur.rocks/marketing/seo-suchmaschinenoptimierung
Screenshot agentur.rocks/marketing/seo-suchmaschinenoptimierung am Desktop
Die Themenseite SEO bündelt nach der Konsolidierung 32 Artikel. Auf dem Smartphone öffnet die Startseite mit den neuesten Beiträgen.
Mobile Ansicht von agentur.rocks
Screenshot agentur.rocks/marketing
Eine Kategorieseite führt in ihr Thema ein und listet die Artikel des Bereichs.
Screenshot agentur.rocks/was-ist-largest-contentful-paint-lcp
Eine Inhaltsseite aus dem übernommenen Bestand, hier mit Verweis auf die Bild-Tools von imagenimble.
Screenshot agentur.rocks/kosten-umsatz-relation
Sonderfall Rechnerseite: die Kosten-Umsatz-Relation rechnet direkt auf der Seite und war bei beiden Aufräumrunden geschützt.

Das Ergebnis

Ein Blog mit klarem Marketing-Fokus

12.221
Beiträge importiert
322
Artikel nach der Konsolidierung
925
live geprüfte URLs ohne Abweichung

Stand der Zahlen 15. September 2026

Aus mehr als 12.000 importierten Beiträgen sind nach zwei Aufräumrunden 322 Artikel in 27 Kategorien geworden. Jede entfernte Adresse antwortet mit 410, jede zusammengelegte Kategorie leitet ohne Kette direkt auf ihr Ziel. Das habe ich nicht in der Datenbank geprüft, sondern per HTTP gegen die Live-Seite, 925 URLs ohne eine einzige Abweichung.

Die Sitemap listet heute 355 Adressen, vom Marketing-Hub über die Kategorieseiten bis zu den Rechnern. Neue Beiträge verbinden das Portal inzwischen auch mit eigenen Werkzeugen wie myfeedr und imagenimble.

Was ich daraus mitnehme

Übertragbar auf andere Migrationen

  • Gegen die Live-Seite abgleichen. Meine lokale Datenbank hing einen Monat hinter der Produktion zurück. Erst der Abgleich mit der Live-Sitemap zeigte 14 Adressen, die lokal fehlten oder nur als Entwurf existierten.
  • Per HTTP verifizieren, nicht in der Datenbank. Ob eine Adresse wirklich 410 oder 301 liefert, zeigt nur der Aufruf von außen, inklusive aller Caches.
  • Schutzlisten vor jeder Automatik festlegen. Rankings, Backlinks und Rechnerseiten standen fest, bevor eine Regel lief.
  • Keine Ketten, kein 301 auf 410. Jede Weiterleitung zeigt direkt auf ein Ziel, das selbst mit 200 antwortet.
  • Den Cache erst nach der Migration leeren. Wer vorher leert, kann veraltete Antworten erneut in den Cache schreiben.

Häufige Fragen

Häufige Fragen zur WordPress-Migration

Wie finde ich heraus, welche alten Beiträge ich löschen kann?

Ich habe zwei Listen gebaut, alle Adressen, die Google indexiert hat, und alle Adressen mit mindestens einem Backlink. Was auf keiner der beiden Listen steht, bringt über die Suche keine Besucher und keine Linkkraft und ist ein Löschkandidat. Grenzfälle mit Marketing-Bezug habe ich trotzdem einzeln gelesen, bevor ich sie entfernt habe.

Warum 410 und nicht eine Weiterleitung auf die Startseite?

Eine Weiterleitung lohnt sich nur, wenn es eine inhaltlich passende Zielseite gibt. Leitet man gelöschte Beiträge pauschal auf die Startseite, behandelt Google das meist wie einen Soft-404, und Besucher landen ohne Erklärung auf einer Seite, die sie nicht gesucht haben. Der Statuscode 410 sagt eindeutig, dass der Inhalt dauerhaft entfernt wurde.

Bleiben die URLs bei einer WordPress-Migration gleich?

Bei agentur.rocks ja. Der Import übernimmt die Slugs unverändert, nur die internen IDs sind neu. Für Seiten mit verschachtelten Permalinks gibt es gezielte 301-Weiterleitungen, und alte Adressen mit Kategorie-Präfix prüft der Router gegen die Weiterleitungs- und Löschlisten, bevor er einen 404 ausgibt.

Was passiert mit den Bildern aus WordPress?

Die Beitragsbilder habe ich vom alten Server heruntergeladen und lokal abgelegt, rund 10.000 Dateien mit zusammen etwa 1,4 GB. Ein Skript lädt sie parallel und schreibt anschließend den neuen Pfad in das Bildfeld jedes Artikels. Am Text der Beiträge ändert es nichts.

Wie lange dauert eine Migration von über 10.000 Beiträgen?

Der technische Umzug mit Import, Bildern und der ersten News-Bereinigung ist Ende Mai 2026 innerhalb weniger Tage entstanden. Die inhaltliche Konsolidierung folgte im Juli 2026 als eigener Schritt mit Analyse, zwei Migrationen und Live-Prüfung. Aufwendiger als der Import waren die Entscheidungen, was bleiben soll.

Eingesetzt

Leistungen & Technik

Leistungen

WordPress-MigrationKonsolidierungDesign-UmsetzungRedaktion

Technik

PHPMySQLImport-SkripteCloudflare

Marketing & KI

SEOContent-Strategiegpt-image-2Claude Code

Ein ähnliches Projekt geplant?

Von der Idee über die Technik bis zur Sichtbarkeit — sprich mich gern an.

Kontakt aufnehmen