Was zu tun ist — in zwei Phasen und nach Zuständigkeit. Grundlage: fairtransform Vollreport Kapitel 7. Jede Änderung mit Datum in fairtransform Aenderungsprotokoll, sonst ist der Vorher-Nachher-Vergleich wertlos. Bildstand vor Beginn: fairtransform Bildstand

🧑 ManuelZugänge, Konten, Serverfragen, Ausrollen. Nicht delegierbar
🤖 AgentDrupal-Konfiguration und Theme in der lokalen Kopie
👤 VaterTexte und inhaltliche Freigaben

Zwei Regeln über allem

1 · Keine einzige URL wird geändert. Der Hawila-Artikel beweist, dass diese Website es nicht verträgt — 301 vorhanden, Rankings trotzdem weg.

2 · Eine Welle nach der anderen, jede mit Datum freigeschaltet. Zwei gleichzeitig heisst: hinterher weiss niemand, was gewirkt hat.


Warum die Trennung mehr ist als Ordnung

Phase 1 verändert keinen einzigen Satz, den ein Mensch liest. Nur Technik, Konfiguration und maschinenlesbare Angaben. Phase 2 fasst Texte an und braucht deshalb den Vater.

Das hat drei Folgen, und die dritte ist die wichtigste:

1 · Phase 1 startet sofort. Sie wartet auf niemanden. Phase 2 hängt an Freigaben, die Wochen dauern können.

2 · Phase 1 ist der billigere Teil — und der mit dem grösseren Hebel. Die vier Adressvarianten und die Crawler-Sperre kosten zusammen anderthalb bis zweieinhalb Stunden.

3 · Phase 1 allein beantwortet die Kernfrage des ganzen Piloten

Die Diagnose lautet: Diese Website hat kein Inhaltsproblem, sondern ein Zuordnungsproblem.

Wenn Phase 1 die indexierten Seiten von 42 auf über 100 bringt und die Impressionen steigen — ohne dass ein einziges Wort geändert wurde —, ist die Diagnose bewiesen. Kein anderer Aufbau könnte das so sauber zeigen, weil sich Technik- und Textwirkung sonst vermischen.

Und wenn sich nichts bewegt, hat die Website ein Nachfrageproblem. Dann wäre es falsch, den Vater Texte schreiben zu lassen — man würde in ein Loch investieren.

Deshalb liegt zwischen den Phasen eine Messpause. Sie ist keine Verzögerung, sondern der Test.


Phase 0 · Bevor irgendetwas angefasst wird

  • 🧑 Vollbackup: Datenbank und sites/default/files. Ohne das nichts
  • 🧑 Lokale Kopie herstellen — siehe „Was der Agent braucht”
  • 🧑 Bildstand aufnehmen, 10 Seiten Desktop und Mobil erledigt 01.09.2026fairtransform Bildstand
  • 🧑 Nullmessung einfrieren: GA4- und Search-Console-Export mit heutigem Datum ins Archiv
  • 🧑 Domain-Property in der Search Console anlegen — die bestehende misst nur https://www.fairtransform.ch/ und damit ein Viertel der Realität
  • 🧑 Bing Webmaster Tools einrichten und verifizieren — fehlt komplett. ChatGPTs Suche stützt sich auf Bings Index, und „AI Performance” zeigt dort seit 11.02.2026, welche Nutzerfrage die Seite als Beleg gezogen hat
  • 🧑 GA4 aufräumen: internen Verkehr filtern, Aufbewahrung auf 14 Monate
  • 🧑 Vollcrawl mit Screaming Frog als Referenzstand ablegen
  • 🧑 Klären, wo die Crawler-Sperre sitzt.htaccess oder Hoster-Panel? Im zweiten Fall kommt der Agent nicht dran und es braucht ein Ticket

Aufwand: 2–3 h


Phase 1 · Technik — kein Text ändert sich

Alles hier ist Konfiguration, Weiterleitung oder maschinenlesbare Angabe. Was ein Besucher liest, bleibt Wort für Wort gleich.

Welle 1 · Eine Adresse

Zustand: Alle vier Varianten antworten mit 200 und eigenem Canonical.

  • 🤖 .htaccess: eine 301-Regel in einem Sprung auf https://www.fairtransform.ch
  • 🤖 HSTS-Kopfzeile setzen
  • 🧑 Ausrollen, nachmessen: drei 301, ein 200httpstatus.io oder curl -sIL
  • 🧑 Beide Sitemaps in der neuen Domain-Property einreichen

Drupal baut den Canonical aus dem angefragten Host. Die Weiterleitung löst das Canonical-Problem mit — kein separater Eingriff.

Aufwand: 1–1.5 h · Der wichtigste Handgriff überhaupt

Welle 1b · Crawler-Sperre

Zustand, selbst geprüft am 02.09.2026: Sechs Kennungen bekommen 403 von Apache, obwohl robots.txt keinen einzigen KI-Crawler erwähnt.

TokenZweckWas passieren soll
GPTBot · ClaudeBot · Bytespider · Amazonbot · meta-externalagentTrainingSperre bleibt — kostet keine Sichtbarkeit
PerplexityBotSuchindexfreigeben — das ist der Fehler
  • 🤖 PerplexityBot aus der Sperrliste entfernen
  • 🤖 Die gewollten Trainingssperren zusätzlich in robots.txt schreiben. Serversperren allein sind kein sauberes Opt-out — die Bots bekommen auch auf robots.txt einen 403 und können nicht erfahren, was gilt
  • 🤖 Sitemap:-Zeilen für beide Sprachen — fehlen heute ganz
  • 🧑 Nachmessen mit der Schleife aus Aussenerhebung Prüfliste, Ebene A3
  • 🧑 Server-Log auf echte Crawler-Zugriffe prüfen — nur dort zeigt sich, ob die Sperre auch die echten Dienste trifft und nicht bloss meinen Test mit gesetzter Kennung

Aufwand: 0.5–1 h

Welle 2 · Verzeichnis

Zustand: 42 von 202 URLs indexiert. Deutsche Sitemap 102, englische 100, kein Sammelverzeichnis/sitemap.xml leitet nur auf die deutsche Fassung.

  • 🤖 Simple Sitemap: /node/95 ausschliessen — echter HTTP 404
  • 🤖 Simple Sitemap: /de/blog und /en/blog aufnehmen — fehlen heute
  • 🤖 Simple Sitemap: weiterleitende URL mit Priorität 1.0 entfernen
  • 🤖 Metatag: Taxonomy- und Blätterseiten auf noindex, follow
  • 🤖 Redirect-Modul: verwaiste 404 auf books-and-medias abfangen
  • 🧑 Beide Sitemaps bei Google und Bing einreichen
  • 🧑 IndexNow anstossen — wirkt bei Bing, Yandex, Seznam. Google nutzt es nicht

Aufwand: 3–4 h · Erwartung: 42 → über 100 indexierte Seiten

Welle 3a · Muster für Titel und Beschreibungen

Warum das noch Technik ist

Es wird kein Text geschrieben. Die Muster erzeugen Titel und Beschreibungen automatisch aus dem, was schon dasteht — Artikeltitel plus Markenzusatz, Beschreibung aus dem vorhandenen Anrisstext. Niemand muss etwas formulieren oder freigeben.

Zustand: Von zehn geprüften Seiten hat genau eine eine brauchbare eigene Beschreibung. Der Rest ist derselbe Standardsatz — auf /de, /de/blog und sogar der 404-Seite wortgleich. Titel tragen auf Deutsch keinen Markenzusatz, auf Englisch schon.

  • 🤖 Metatag-Standardmuster je Sprache und Inhaltstyp — repariert rund 200 Seiten auf einen Schlag. Titel als [node:title] | FairTransform, Beschreibung aus dem Anrisstext auf 160 Zeichen gekürzt
  • 🤖 Die drei Seiten mit Handtext aussparen: buecher-und-medien, impressum, hoffnungstraeger — die kommen in Phase 2
  • 🧑 Stichprobe: erzeugen die Muster auf zehn Seiten brauchbare Ergebnisse?

Aufwand: 2–3 h

Welle 4 · Strukturierte Daten und Person

Zustand, am Artikel „Warten auf den richtigen Wind” ausgelesen. Sechs Fehler, alle in der Schema-Metatag-Konfiguration:

#FeldIstSoll
1Article.@id…/dedie Startseitedie Node-URL. Alle Artikel gelten sonst als dieselbe Sache
2Titelfeldnameheadline
3datePublished2026-05-20T19:27:17+0200.ohne Punkt. Ungültiges ISO-8601 — vermutlich der Grund, warum Google das ganze Objekt verwirft. dateModified ist korrekt, der Punkt steht also im Token
4isAccessibleForFree"True" als Textechter Wahrheitswert
5author · image · publisherfehlenergänzen
6WebPage.description bei Artikelnglobaler Standardtextaus dem Artikel
  • 🤖 Die sechs Punkte in der Schema-Metatag-Konfiguration beheben
  • 🤖 Person für Daniel Haller mit sameAs auf LinkedIn, Verlag, Buchhandel
  • 🤖 Organization für FairTransform
  • 🤖 Book für „Klar zur Wende!”
  • 👤 Eine Zeile Bestätigung: Anzeigename statt d.haller, und welche Profile in sameAs
  • 🤖 Byline d.haller → Anzeigename — Benutzerfeld oder Twig-Template
  • 🧑 Gegenprüfen mit Rich Results Test und validator.schema.org

Punkt 5 erklärt die leere Tabelle „Darstellung in der Suche”. Ohne author und image erzeugt Article keine erweiterten Ergebnisse. Und die fehlende Personenangabe erklärt, warum bei der Namenssuche LinkedIn vor der eigenen Website rankt: Für eine Suchmaschine ist LinkedIn eine bestätigte Person, die Website ein Anmeldename.

Aufwand: 6–9 h

Welle 6a · Technisches Aufräumen

  • 🤖 x-default bei den Sprachverknüpfungen ergänzen — heute nur de und en
  • 🤖 Doppelte h1 beheben — 29 von 84 Seiten, nicht die Artikelseiten
  • 🤖 Logo als WebP — 175 KB
  • 🧑 PageSpeed-Kontrolle, dass nichts schlechter wurde

Aufwand: 2–3 h

Drei Punkte fallen aus dem Umfang — geprüft, in Ordnung

Alle 55 Bilder haben Alternativtexte. Keine Seite scrollt auf dem Handy quer. Die Ladezeit ist unauffällig. Erics XS-Stufe sieht Alternativtexte als Arbeitsschritt vor — hier wäre er bezahlte Beschäftigung. → fairtransform Bildstand · GEO-Pakete


⏸ Messpause — der eigentliche Test

Vier bis acht Wochen nach Abschluss von Phase 1. In dieser Zeit wird nichts geändert.

  • 🧑 Indexierte Seiten ablesen — Erwartung: 42 → über 100
  • 🧑 Impressionen in der neuen Domain-Property, getrennt nach Sprache
  • 🧑 Erste erweiterte Suchergebnisse sichtbar?
  • 🧑 Crawler-Zugriffe im Server-Log — kommt Perplexity jetzt durch?
  • 🧑 Die fünfzehn Assistenten-Fragen wiederholen
  • 🧑 Zwischenbericht schreiben und entscheiden, ob Phase 2 kommt

Was das Ergebnis bedeutet

Bewegung ohne eine einzige Textänderung → die Diagnose stimmt, Phase 2 lohnt sich, und wir haben einen Referenzfall, den niemand wegdiskutieren kann.

Keine Bewegung → die Website hat ein Nachfrageproblem, kein Auffindbarkeitsproblem. Dann wäre Phase 2 verlorene Zeit des Vaters — und das ist ein wertvolles Ergebnis, kein Scheitern. → fairtransform Vollreport Kapitel 8


Phase 2 · Inhalt — hier ändern sich Texte

Startet erst nach der Messpause. Alles hier braucht den Vater.

Welle 3b · Die zwanzig wichtigsten Seiten von Hand

  • 👤 Freigabe für 20 Titel und Beschreibungen — Entwürfe in fairtransform Titel und Beschreibungen
  • 🤖 Die freigegebenen Texte eintragen
  • 🤖 buecher-und-medien, impressum und hoffnungstraeger mit richtigen Beschreibungen versehen — heute asdfasdfa, Impressum und 472 Zeichen
  • 🧑 Ränge 21 bis 40 acht Wochen unverändert lassen — das ist die Vergleichsgruppe. Ohne sie gibt es keine Ursachenaussage, und sie kostet null Stunden

Aufwand: 6–8 h · Erwartung: Klickrate /en von 0.22 % auf über 1.5 %

Welle 5 · Handlungsziel

  • 👤 Inhalt für die Bücherseite — in der Navigation verlinkt und leer
  • 🤖 Bücherseite aufbauen, sobald der Text da ist
  • 👤 Entscheiden, was auf die Kontaktseite gehört
  • 🤖 Kontaktseite und Formular anlegen — /de/kontakt führt heute ins Leere
  • 🧑 Schlüsselereignisse in GA4 definieren

Ohne diese Welle ist nicht messbar, ob Aufmerksamkeit zu etwas führt. Es gibt heute keinen Ort, an dem Interesse landet.

Aufwand: 3–4 h

Welle 6b · Sprachliches Aufräumen

  • 👤 Englische Titel für die englischen Seiten — heute teils deutsch
  • 🤖 Eintragen
  • 👤 Einheitliche Namensschreibweise festlegen
  • 🤖 Umsetzen

Aufwand: 1 h


Aufwand und Zuordnung zum Vollreport

PhaseWellenAufwandBlockiert durch
0 · Vorbereitung2–3 hZugänge
1 · Technik1 · 1b · 2 · 3a · 4 · 6a14.5–21.5 hnichts — startet sofort
Messpause1–2 h Auswertungvier bis acht Wochen Wartezeit
2 · Inhalt3b · 5 · 6b10–13 hFreigaben des Vaters
Gesamt 26.5–37.5 h

Die Wellennummern entsprechen fairtransform Vollreport Kapitel 7. Nur Welle 3 und 6 sind geteilt: 3a und 6a sind Technik, 3b und 6b Inhalt. Sonst ändert sich nichts an Umfang oder Reihenfolge.


Was der Agent braucht, bevor er anfangen kann

Ohne das ist „lokal” nur ein Wort:

  1. Codebasis — Git-Repository oder Abzug des Docroots inklusive .htaccess, sites/default/settings.php, Theme und config/sync
  2. Datenbankabzug — sonst gibt es keine Inhalte zum Testen und keine Konfiguration zum Ändern
  3. Dateiensites/default/files, mindestens die Bilder der Testseiten
  4. Lokale Umgebung — DDEV oder Lando. Drupal 11 braucht PHP 8.3 aufwärts
  5. Drush — die halbe Arbeit läuft über drush config:export und drush config:import

Der Arbeitsweg, der Änderungen nachvollziehbar hält

Konfiguration wird nicht im Produktivsystem geklickt, sondern lokal geändert, exportiert und als Datei ausgerollt. Also drush cex nach jeder Änderung, die YAML-Dateien in Git, drush cim auf dem Server. Dann steht jede Änderung im Verlauf, mit Datum, und lässt sich einzeln zurücknehmen.

Genau das braucht das fairtransform Aenderungsprotokoll.


Arbeitsaufträge für den Agenten

Zum Kopieren. Immer nur einen auf einmal, und alle drei gehören in Phase 1.

Welle 1b — die schnellste Wirkung:

In dieser Drupal-11-Installation: In der .htaccess steht eine Sperrliste, die
sechs KI-Crawler mit 403 abweist. Entferne PerplexityBot daraus — das ist
Perplexitys Suchcrawler, nicht der Trainingscrawler, und die Sperre macht die
Seite dort unsichtbar. GPTBot, ClaudeBot, Bytespider, Amazonbot und
meta-externalagent bleiben gesperrt.

Schreibe dieselben fünf Sperren zusätzlich als Disallow in die robots.txt,
damit die Absicht auch dort lesbar ist. Ergänze Sitemap:-Zeilen für
/de/sitemap.xml und /en/sitemap.xml.

Ändere sonst nichts. Zeig mir das Diff, bevor du speicherst.

Welle 4 — der grösste Brocken:

Schema.org Metatag ist installiert und erzeugt fehlerhaftes Article-Markup.
Sechs Fehler, jeweils in der Metatag-Konfiguration, nicht im Theme:

1. Article.@id zeigt auf die Startseite statt auf die Node-URL
2. Es wird "name" gesetzt statt "headline"
3. datePublished endet auf einen Punkt -> ungültiges ISO-8601. dateModified ist
   korrekt, der Punkt steht also im Token
4. isAccessibleForFree ist der String "True" statt eines Wahrheitswerts
5. author, image und publisher fehlen ganz
6. WebPage.description ist bei Artikeln der globale Standardtext statt des
   Artikeltexts

Behebe alle sechs. Exportiere die Konfiguration mit drush cex und zeig mir die
geänderten YAML-Dateien. Kein Produktivsystem anfassen.

Welle 3a — Wirkung auf 200 Seiten, ohne einen Text zu schreiben:

Metatag ist installiert, aber Blogartikel haben keine meta description und die
deutschen Titel keinen Markenzusatz. Die englischen haben ihn bereits.

Richte Standardmuster je Sprache und Inhaltstyp ein: Titel als
"[node:title] | FairTransform", Beschreibung automatisch aus dem Anrisstext auf
maximal 160 Zeichen gekürzt. Deutsch und Englisch getrennt konfigurieren.

Wichtig: Es wird kein Text von Hand geschrieben, alles wird aus vorhandenen
Feldern erzeugt. Die Seiten buecher-und-medien, impressum und hoffnungstraeger
ausnehmen — für die kommen später freigegebene Texte.

drush cex, dann Diff zeigen.

Was der Agent nicht allein machen soll

Nichts direkt am Produktivsystem — er arbeitet in der lokalen Kopie, das Ausrollen bleibt ein bewusster Schritt.

Keine URL ändern, auch nicht „aufräumen”. Diese Website verträgt es nachweislich nicht.

Die Weiterleitungsregel aus Welle 1 nicht ungeprüft ausrollen. Eine falsche .htaccess-Regel nimmt die Seite vom Netz. Lokal testen, von Hand ausrollen, sofort nachmessen.

In Phase 1 keine Texte anfassen. Wenn eine Aufgabe verlangt, einen Satz zu formulieren, gehört sie in Phase 2 — dann nachfragen statt schreiben.


Reihenfolge

PHASE 0        PHASE 1 · Technik, kein Text ändert sich
Woche 1        Woche 2 ─────────────────────────────── Woche 5
Backup         Welle 1  →  1b  →  2  →  3a  →  4  →  6a
Zugänge        Adresse    Bots   Index  Muster  Daten  Rest
Bildstand
                                    ↓
                          ⏸ MESSPAUSE · 4–8 Wochen
                          nichts wird geändert
                          Entscheidung: kommt Phase 2?
                                    ↓
               PHASE 2 · Inhalt, Texte ändern sich
               Welle 3b  →  5  →  6b
               20 Seiten   Ziel   Sprache
                                    ↓
                    Hauptauswertung Monat 6, 6 gegen 6 Monate

Welle 1 vor allem anderen. Solange die Website unter vier Adressen existiert, ist jede spätere Messung ungültig — auch unsere eigene.

fairtransform · fairtransform Vollreport · fairtransform Bildstand · fairtransform Aenderungsprotokoll · Aussenerhebung Prüfliste