10 Min. LesezeitAktualisiert < 7 Tage

Headless WordPress: Entwürfe live vorschauen (Draft Mode)

"Headless heisst, die Redaktion sieht ihre Entwürfe nicht mehr vor dem Veröffentlichen." Der häufigste Einwand gegen Headless WordPress – und er stimmt nicht. Der Vorschau-Knopf in wp-admin funktioniert weiter, er zeigt nur auf eine geschützte Draft-Route im Next.js-Frontend.

Inhalt

Es gibt einen Satz, der in fast jedem Erstgespräch über Headless WordPress fällt, sobald die Redaktion mit am Tisch sitzt: «Wenn wir headless gehen, sehen wir unsere Entwürfe nicht mehr, bevor sie live sind.» Es ist der häufigste Einwand gegen den Architektur-Wechsel – und einer der wenigen, der schlicht nicht stimmt. Der Vorschau-Button in wp-admin funktioniert auch headless weiter. Er zeigt nur nicht mehr auf das alte WordPress-Theme, sondern auf eine geschützte Draft-Route im Next.js-Frontend, die den Entwurf im echten, produktiven Design rendert.

Dieser Beitrag erklärt, wie diese Brücke konkret gebaut wird – vom Klick in wp-admin bis zur gerenderten Vorschau im Headless-Layout. Es geht weniger um die generische Next.js-Funktion (die ist gut dokumentiert) als um den WordPress-spezifischen Teil: URL-Umschreibung, Token-Übergabe und die authentifizierte Abfrage unveröffentlichter Inhalte. Wer das grössere Bild sucht – also wie sich der gesamte Redaktionsalltag headless anfühlt –, findet das in unserem Beitrag zu Redaktion und Editor-UX bei Headless WordPress. Wie diese Bausteine ins Gesamtsystem passen, zeigt das Themen-Pillar Headless WordPress.

Verliert die Redaktion bei Headless WordPress die Live-Vorschau?

Nein. Die Vorschau bleibt erhalten – sie wird nur umgeleitet. Der native Vorschau-Button in wp-admin zeigt statt auf das WordPress-Theme auf eine geschützte Route im Next.js-Frontend, die den Entwurf zur Request-Zeit rendert. Editoren merken im Workflow keinen Unterschied, sehen aber das echte Headless-Layout statt des alten Themes.

Der psychologische Effekt ist nicht zu unterschätzen: Der am häufigsten geäusserte Einwand gegen Headless ist zugleich der am leichtesten zu entkräftende. Technisch passiert Folgendes: Ein kleines WordPress-Plugin schreibt die native Preview-URL auf die Frontend-Domain um und hängt die Post-ID sowie einen Token an. Klickt die Redaktion auf «Vorschau», landet sie nicht auf example.com/?p=123&preview=true, sondern auf frontend.example.com/api/draft?id=123&token=….

Wichtig für die Akzeptanz: Das funktioniert nicht nur für neue Entwürfe, sondern auch für ausstehende Beiträge und Revisionen bereits veröffentlichter Seiten. Eine Redakteurin kann also eine Korrektur an einer Live-Seite vorbereiten und sie im produktiven Design prüfen, bevor sie veröffentlicht wird – exakt der Workflow, den sie aus dem klassischen WordPress kennt.

Der häufigste Einwand gegen Headless WordPress ist auch der am leichtesten zu widerlegende: Die Live-Vorschau verschwindet nicht, sie zeigt nur auf eine andere Stelle.

Wie Next.js Draft Mode technisch funktioniert

Draft Mode ist eine offizielle Next.js-Funktion, kein Plugin und kein Hack. Eine Route Handler ruft draftMode().enable() auf und setzt damit das Cookie __prerender_bypass. Solange dieses Cookie gesetzt ist, rendert Next.js die Seite dynamisch zur Request-Zeit statt aus dem Build-Cache – so erscheinen unveröffentlichte Inhalte sofort, ohne einen erneuten Build.

Die API ist schlank. Aus next/headers importiert man draftMode() und arbeitet mit drei Methoden: isEnabled prüft den Zustand, enable() setzt das Cookie, disable() löscht es wieder. Seit Next.js 15 ist draftMode() eine asynchrone Funktion und muss awaited werden; eingeführt wurde die Funktion bereits in Version 13.4.0 (Next.js-Dokumentation, draftMode). In der Seite selbst schaltet man dann anhand von draftMode().isEnabled zwischen der Live-Query und der Draft-Query um – derselbe Seiten-Code, zwei Datenquellen.

Der entscheidende Mechanismus für die Frische der Vorschau: Bei aktivem Draft Mode werden gecachte Funktionen und Komponenten frisch ausgeführt statt aus dem Cache bedient, und die Antworten tragen nicht-cachebare Header (private, no-cache, no-store, max-age=0, must-revalidate) (Next.js-Dokumentation, Draft Mode Guide). Genau deshalb sieht die Redaktion jede Änderung am Entwurf sofort – und genau deshalb landet kein Entwurf versehentlich im CDN-Cache.

Ebenso wichtig wie das Aktivieren ist das saubere Beenden der Vorschau. Eine zweite Route ruft disable() auf und löscht das Cookie wieder; standardmässig endet die Draft-Sitzung ohnehin, sobald der Browser geschlossen wird. Eine praktische Stolperstelle aus der Dokumentation: Verlinkt man die Exit-Route mit der Next.js-<Link>-Komponente, muss prefetch={false} gesetzt sein – sonst löscht ein automatischer Prefetch das Cookie und beendet die Vorschau, bevor die Redakteurin überhaupt klickt (Next.js-Dokumentation, draftMode). Solche Details entscheiden darüber, ob sich die Vorschau im Alltag verlässlich anfühlt oder nicht.

Der WordPress-spezifische Teil: vom Vorschau-Button zur Draft-Route

Der eigentliche Aufwand liegt nicht im Draft Mode selbst, sondern in der Brücke zwischen wp-admin und Next.js. Ein Plugin schreibt die WordPress-Vorschau-URL auf die Frontend-Domain um und hängt einen Token plus die Post-ID an. Die Next.js-Route prüft den Token, aktiviert Draft Mode und leitet auf den richtigen Slug weiter.

Im Detail sendet WordPress Post-ID und Post-Type sowie ein Secret oder einen kurzlebigen Token an die Route. Die Route validiert das Secret, ruft enable() auf und führt einen redirect() auf den Post-Slug aus. Ein Punkt verdient besondere Aufmerksamkeit, weil er eine reale Sicherheitslücke ist: Niemals direkt auf searchParams.slug redirecten. Die offizielle Next.js-Dokumentation empfiehlt ausdrücklich, das Secret zu validieren, den Post anhand des Slugs zu verifizieren und dann auf post.slug zu redirecten – nicht auf den rohen Query-Parameter, sonst entsteht eine Open-Redirect-Schwachstelle (Next.js-Dokumentation, Draft Mode Guide).

Hier liegt auch die ehrliche Positionierung dieses Themas: Das generische Stichwort «Draft Mode» gehört nextjs.org, und ein weiteres Tutorial dazu braucht niemand. Der Mehrwert für ein Headless-WordPress-Projekt ist genau diese WordPress-Glue-Schicht – die Verbindung vom Preview-Button im Backend zur Draft-Route im Frontend. Eine praktische Hürde dabei: Entwürfe haben oft noch keinen sauberen Permalink. Das HeadstartWP-Framework von 10up löst das, indem es serverseitig ein REST-Feld _headless_wp_preview_link ergänzt, das den korrekten Vorschau-Pfad liefert (HeadstartWP-Dokumentation, Previews).

Authentifizierung: unveröffentlichte Inhalte aus WordPress laden

Entwürfe sind nicht öffentlich – WPGraphQL liefert Inhalte mit Status DRAFT nur an authentifizierte Anfragen aus. Die Draft-Route muss sich also als berechtigter Nutzer ausweisen, typisch per JWT oder Headless-Secret. Erst dann gibt WordPress den unveröffentlichten Inhalt oder die Revision für die Vorschau frei.

Das ist kein Sonderfall, sondern Standardverhalten: WPGraphQL behandelt private und unveröffentlichte Inhalte wie das WordPress-Backend selbst – sie sind nur mit Authentifizierung abrufbar. Als Optionen nennt die offizielle Dokumentation das WPGraphQL-JWT-Authentication-Plugin sowie die Cookie-plus-Nonce-Variante; WPGraphQL respektiert dabei die WordPress-Rollen und -Rechte (WPGraphQL-Dokumentation, Authentication and Authorization). Bei JWT authentifiziert das Plugin den Request als angemeldeten Nutzer, sodass die gewohnten Berechtigungsprüfungen greifen (WPGraphQL JWT Authentication). In der Praxis arbeitet man in der Draft-Query mit einem Muster wie asPreview: Boolean, das zwischen Live- und Revisions-Daten umschaltet.

Wie tief diese Authentifizierung im Detail geht – Token-Lebensdauer, Cookie-Nonce-Handhabung, die Unterschiede zwischen den Schnittstellen – behandelt unser Beitrag zu Authentifizierung und Draft-Queries: WPGraphQL vs. REST API. Hier genügt der für die Vorschau relevante Kern: ohne Auth keine Entwürfe, mit Auth der volle, kontrollierte Zugriff. Wer die generelle Angriffsfläche im Blick behalten will, findet die Einordnung im Beitrag zur Sicherheit und Angriffsfläche von Headless WordPress.

Fertige Lösungen: Faust.js vs. HeadstartWP vs. Eigenbau

Sie müssen die Brücke nicht selbst bauen. Faust.js von WP Engine und HeadstartWP von 10up liefern fertige Preview-Handler plus passendes WordPress-Plugin. Ein Eigenbau über den reinen Next.js Draft Mode ist möglich und gibt maximale Kontrolle – gegen mehr Wartungsaufwand. Die Wahl hängt vom restlichen Stack ab, nicht von einer pauschalen Empfehlung.

Faust.js setzt auf das FaustWP-Plugin zusammen mit einem Headless-Secret und einem authorizeHandler; die Vorschau läuft über eine asPreview-Variable in der GraphQL-Query und nutzt die WordPress-Template-Hierarchie (Faust.js-Dokumentation, Post Previews). HeadstartWP verfolgt einen anderen Ansatz: Es nutzt einen kurzlebigen, WordPress-seitig generierten JWT-Token (Default fünf Minuten gültig) und eine Route unter app/api/preview mit dem previewRouteHandler – ein hartkodiertes Secret entfällt damit (HeadstartWP-Dokumentation, Previews). Der Eigenbau schliesslich kombiniert den nativen Draft Mode mit eigener WPGraphQL-Authentifizierung: schlank und ohne Framework-Lock-in, aber jede Zeile davon will gepflegt sein.

Preview-Lösungen für Headless WordPress im Vergleich, Stand Juni 2026
LösungAuth-MechanismusPreview-RouteWordPress-PluginEignung
Faust.js (WP Engine)Headless-Secret + authorizeHandlerApp-Router-Handler bzw. pages/previewFaustWP-PluginVoller Faust-Stack, Template-Hierarchie erwünscht
HeadstartWP (10up)Kurzlebiger JWT (Default 5 Min.)app/api/preview mit previewRouteHandlerEigenes PluginStrukturierte App-Router-Projekte ohne hartkodiertes Secret
Eigenbau (nativer Draft Mode)Eigenes Secret oder JWT via WPGraphQLapp/api/draft Route HandlerMinimal / eigenes Mu-PluginMaximale Kontrolle, kein Lock-in, höhere Wartung
Quelle: offizielle Faust.js-, HeadstartWP- und Next.js-Dokumentation, eigene Projekterfahrung 2024–2026.

Alle drei Wege nutzen letztlich den Next.js Draft Mode unter der Haube – der Unterschied liegt darin, wie viel Brücke schon fertig geliefert wird. Für ein reines App-Router-Setup ohne Framework-Bindung ist der Eigenbau oft der sauberste Weg, weil er keine Framework-Konventionen mitschleppt, die man später nur teilweise nutzt.

Vorschau-Routen dürfen nie öffentlich indexiert werden. Drei Pflichtmassnahmen sichern das ab: Das HttpOnly-Cookie __prerender_bypass trägt einen pro Build neu erzeugten, nicht erratbaren Wert und schützt so vor Manipulation, die Draft-Route trägt noindex, nofollow, und sie steht nicht in der Sitemap. So sieht die Redaktion Entwürfe, der Google-Bot aber nie.

Im Einzelnen: Das Cookie __prerender_bypass ist HttpOnly, sein Wert wird bei jedem Build neu und nicht erratbar generiert (Next.js-Dokumentation, draftMode) – ein Angreifer kann eine Vorschau-Sitzung also nicht einfach nachbauen. Die Draft-Route selbst muss auf noindex, nofollow gesetzt werden, sonst landet ein unfertiger Entwurf im Suchindex. Ebenso wichtig: Vorschau-Pfade aus sitemap.ts und llms.txt ausschliessen, damit weder klassische Suchmaschinen noch KI-Suchmaschinen wie ChatGPT, Perplexity oder Gemini den Pfad als kanonisch verstehen.

Zwei weitere Punkte runden die Absicherung ab. Erstens muss die Route den Token oder das Secret prüfen, bevor enable() läuft – andernfalls hätte man einen offenen Cache-Bypass, über den sich jeder das dynamische Rendering erzwingen könnte. Zweitens tragen Draft-Mode-Antworten nicht-cachebare Header (private, no-cache, no-store, max-age=0, must-revalidate) (Next.js-Dokumentation, Draft Mode Guide), sodass kein CDN je einen Entwurf zwischenspeichert. Diese Disziplin ist dieselbe, die auch beim Rendern von Gutenberg-Blöcken im Headless-Frontend gilt: Was nicht öffentlich sein soll, darf an keiner Stelle der Auslieferungskette öffentlich werden.

Ehrlich eingeordnet: wann sich der Aufwand lohnt

Offen gesagt: Diese Funktion sucht kaum jemand aktiv über Google – aber fast jede Redaktion fragt im Gespräch danach. Live-Vorschau ist kein SEO-Thema, sondern ein Vertrauens- und Akzeptanz-Thema. Wer Redaktionen für Headless gewinnen will, muss diesen Einwand vor dem Projekt lösen, nicht danach.

Das macht die Vorschau zu einem klassischen Fall von hohem Geschäftswert bei geringem Suchvolumen. Die Live-Vorschau ist in der Praxis die häufigste Akzeptanz-Hürde bei Redaktions-Teams – und sie ist emotional aufgeladen, weil sie an den alltäglichen Arbeitsfluss rührt. Unsere klare Empfehlung: Den Vorschau-Workflow vor Projektstart demonstrieren, nicht erst beim Go-live. Eine fünfminütige Demo, in der jemand einen Entwurf schreibt, auf «Vorschau» klickt und das produktive Layout sieht, entkräftet den Einwand zuverlässiger als jede Architektur-Folie.

Die Vorschau ist dabei nur ein Baustein eines grösseren Bildes. Wie sich der gesamte Redaktionsalltag headless anfühlt – Blöcke, Medien, Mehrfach-Autoren, Freigabe-Workflows –, behandelt der Beitrag zur Redaktion und Editor-UX bei Headless WordPress im Detail. Die Vorschau ist die Tür; die Editor-UX ist der Raum dahinter.

Nächster Schritt

Ob die Live-Vorschau in Ihrem konkreten Setup über Faust.js, HeadstartWP oder einen schlanken Eigenbau am besten aufgehoben ist, hängt an Ihrem restlichen Stack – und lässt sich in einem kurzen Gespräch sauber einordnen. Wenn Sie eine Headless-Migration planen oder den Redaktions-Einwand im eigenen Team gerade klären müssen, vereinbaren wir gerne ein Erstgespräch – 15 Minuten, kostenlos. Was wir konkret übernehmen – von der Architektur bis zum Redaktions-Onboarding –, zeigt die Übersicht unserer Leistungen für Headless-WordPress-Projekte.

Häufige Fragen

Häufige Fragen zum Thema Entwürfe.

Sehen Redakteure bei Headless WordPress weiterhin eine Live-Vorschau ihrer Entwürfe?
Ja. Der Vorschau-Button in wp-admin bleibt funktional. Er wird per Plugin auf eine geschützte Next.js-Draft-Route umgeleitet, die den Entwurf im echten Frontend-Design rendert – inklusive Revisionen bereits veröffentlichter Seiten. Editoren merken im Workflow keinen Unterschied, sehen aber statt des alten Themes das produktive Headless-Layout.
Wie verhindert man, dass Entwurfs-Vorschauen bei Google landen?
Drei Massnahmen: Die Draft-Route trägt noindex/nofollow, sie wird aus sitemap.ts und llms.txt ausgeschlossen, und der Zugriff ist über das HttpOnly-Cookie __prerender_bypass plus Token oder Secret geschützt. Draft-Antworten werden zudem mit no-store ausgeliefert, also nicht vom CDN gecacht. So sieht die Redaktion Entwürfe, der Google-Bot aber nie.
Muss man für die Vorschau Faust.js oder HeadstartWP nutzen?
Nein. Beide Frameworks liefern fertige Preview-Handler und sparen Zeit. Man kann die Vorschau aber auch mit dem nativen Next.js Draft Mode und eigener WPGraphQL-Authentifizierung selbst bauen – schlanker, dafür mehr Eigenpflege. Die Wahl hängt davon ab, ob das restliche Projekt bereits auf einem dieser Frameworks aufsetzt.
Warum braucht die Vorschau überhaupt eine Authentifizierung?
Weil WPGraphQL Inhalte mit Status DRAFT standardmässig nicht herausgibt – sie sind nicht öffentlich. Die Draft-Route muss sich gegenüber WordPress als berechtigter Nutzer ausweisen, typisch per JWT oder Headless-Secret, damit der unveröffentlichte Inhalt geladen werden darf. Ohne Auth erhält die Route nur veröffentlichte Daten zurück.
Funktioniert die Vorschau ohne kompletten Rebuild der Seite?
Ja. Genau dafür existiert Draft Mode: Statt die statisch generierte Seite aus dem Build-Cache zu zeigen, rendert Next.js sie bei aktivem Cookie dynamisch zur Request-Zeit. Änderungen am Entwurf erscheinen sofort, ein next build ist nicht nötig. Cached Funktionen und Komponenten werden in diesem Modus frisch ausgeführt.
Erstgespräch

15 Minuten zur Einordnung. Am Ende wissen Sie, ob sich Headless für Sie lohnt — oder nicht.

Im Erstgespräch klären wir, ob Headless WordPress für Ihr Vorhaben der richtige Weg ist. Ergebnis: eine schriftliche Einordnung, die Sie intern weitergeben können.

Lieber direkt einen Termin? Slot wählen

Antwort innerhalb eines Werktags · Vertraulich behandelt · Keine Newsletter-Anmeldung