/docs

pSEO Wizard Dokumentation

Alles, was Sie brauchen, um von Ihrer Website zu veröffentlichten Seiten zu kommen: wie der Assistent funktioniert, wie die Seiten ohne Code auf Ihre Website kommen und was zu tun ist, wenn etwas nicht klappt.

Zuletzt aktualisiert: September 2026

/how-it-works

So funktioniert's

Der Assistent hat fünf Schritte. Bis zur Bezahlung können Sie jeden Schritt noch ändern.

  1. 01

    Website einfügen

    Wir lesen Ihre Startseite und einige wichtige Unterseiten (Leistungen, Preise, Speisekarte, Über uns, Kontakt) und erkennen Ihre Branche. Ergänzen Sie wichtige Fakten, die jede Seite verwenden soll.

  2. 02

    Muster wählen

    Wählen Sie die Form Ihrer Suchanfragen, zum Beispiel „{Leistung} in {Stadt}“ oder „{Produkt} für {Zielgruppe}“, und eine Seitenvorlage.

  3. 03

    Werte eintragen

    Listen Sie die Leistungen, Städte oder Zielgruppen auf, die kombiniert werden sollen. Jede Kombination wird eine Seite. Bei Orten prüfen wir, ob sie zu der Art passen, wie Sie Ihre Kunden bedienen.

  4. 04

    Erstellen

    Erstellen Sie zuerst Ihre kostenlose Seite. Wenn sie Ihnen gefällt, bezahlen Sie den Rest (mindestens 10 Seiten), und die Seiten werden nacheinander geschrieben.

  5. 05

    Veröffentlichen oder herunterladen

    Senden Sie die Seiten an WordPress, Shopify, Webflow oder WooCommerce, oder laden Sie sie als fertige HTML-Dateien herunter.

/html-export

Seiten herunterladen

In Schritt 5 erhalten Sie mit Paket herunterladen eine ZIP-Datei mit allem, was Sie brauchen, um die Seiten überall zu hosten:

  • dist/Pro Seite eine fertige HTML-Datei mit eingebautem Styling – sie sieht ohne weitere Dateien richtig aus.
  • dist/index.htmlEine einfache Liste aller Seiten mit Links.
  • sitemap.xmlEine Sitemap, die Sie in der Google Search Console einreichen können.
  • data/Dieselben Seiten als JSON (Titel, Slug, Meta-Beschreibung und HTML) für Entwickler.

So gehen sie online

  1. Entpacken Sie die Datei.
  2. Laden Sie die Dateien aus dist/ auf Ihren Webspace hoch, am besten in einen Ordner /blog – zum Beispiel über den Dateimanager Ihres Hosters oder per FTP.
  3. Öffnen Sie eine Seite im Browser, um sie zu prüfen, und reichen Sie dann sitemap.xml in der Google Search Console ein.

/json

JSON für Entwickler

Der Download enthält Ihre Seiten auch als Daten, damit Sie sie aus Ihrer eigenen App ausliefern können. data/wizard-data.json ist ein Array mit einem Objekt pro Seite:

Felder jedes Seitenobjekts in data/wizard-data.json
FeldTypInhalt
titlestringDer Seitentitel in den Suchergebnissen, höchstens 60 Zeichen.
meta_descriptionstringDie Meta-Beschreibung unter dem Titel in den Suchergebnissen.
h1stringDie Hauptüberschrift der Seite.
body_htmlstringDas vollständige HTML-Dokument: Head, Inline-CSS, strukturierte Daten und die „Auch lesenswert“-Links. Unverändert ausliefern.
slugstringDer letzte Teil der Seiten-URL, zum Beispiel plumber-in-camden.
keywordsobjectDie Werte für diese Seite, einer pro Variable in Ihrem Muster.
statusstringBei Seiten im Export immer „success“.
localestringDer Sprachcode der Seite, zum Beispiel en oder ar.

data/content.json enthält dieselben Seiten mit drei zusätzlichen Namen, die manche Tools erwarten: content (wie body_html) sowie metaDescription und description (beide wie meta_description).

Beispiel für ein Seitenobjekt (body_html gekürzt)

data/wizard-data.json → [0]
{
  "title": "Plumber in Camden | Example Plumbing",
  "meta_description": "Same-day plumbing in Camden: boiler service from £89 and leak repairs by Gas Safe registered engineers.",
  "h1": "Plumber in Camden",
  "body_html": "<!DOCTYPE html><html lang=\"en\" dir=\"ltr\"><head>…</head><body>…</body></html>",
  "slug": "plumber-in-camden",
  "keywords": { "Service": "Plumber", "Area": "Camden" },
  "status": "success",
  "locale": "en"
}

Seiten aus Ihrer App ausliefern

Senden Sie body_html als komplette Antwort für die URL der Seite. Betten Sie es nicht in Ihr eigenes Layout ein: Head, Styles und strukturierte Daten sind schon enthalten. Wählen Sie das Beispiel für Ihren Stack:

Statisches Hosting (ohne Framework)

terminal / nginx
# Put the exported pages under /blog on any static host
unzip your-site-bundle.zip -d export
mkdir -p public/blog
cp export/dist/*.html public/blog/
# /blog/plumber-in-camden.html works now. For /blog/plumber-in-camden,
# turn on "clean URLs" (Netlify, Vercel, Cloudflare Pages) or, on nginx:
location /blog/ {
  try_files $uri $uri.html =404;
}

Next.js

app/blog/[slug]/route.ts
import pages from '@/data/wizard-data.json';

export async function GET(_req: Request, { params }: { params: Promise<{ slug: string }> }) {
  const { slug } = await params;
  const page = pages.find(p => p.slug === decodeURIComponent(slug));
  if (!page) return new Response('Not found', { status: 404 });
  return new Response(page.body_html, {
    headers: { 'Content-Type': 'text/html; charset=utf-8' }
  });
}

Astro

src/pages/blog/[slug].astro
---
import pages from '../../data/wizard-data.json';

export function getStaticPaths() {
  return pages.map(page => ({ params: { slug: page.slug }, props: { page } }));
}

const { page } = Astro.props;
---
<Fragment set:html={page.body_html} />

Nuxt

server/routes/blog/[slug].ts
import pages from '~~/data/wizard-data.json';

export default defineEventHandler((event) => {
  const slug = decodeURIComponent(getRouterParam(event, 'slug') ?? '');
  const page = pages.find(p => p.slug === slug);
  if (!page) throw createError({ statusCode: 404 });
  setHeader(event, 'Content-Type', 'text/html; charset=utf-8');
  return page.body_html;
});

PHP (Laravel)

routes/web.php
use Illuminate\Support\Facades\Route;

Route::get('/blog/{slug}', function (string $slug) {
    $pages = json_decode(file_get_contents(storage_path('app/wizard-data.json')), true);
    $page = collect($pages)->firstWhere('slug', $slug);
    abort_unless($page, 404);

    return response($page['body_html'])
        ->header('Content-Type', 'text/html; charset=utf-8');
});

„Auch lesenswert“-Links und /blog-URLs funktionsfähig halten

  • Links zwischen den Seiten folgen der URL-Struktur aus Schritt 3: /blog/{slug} oder mit Sprachpräfix /{prefix}/blog/{slug}. Liefern Sie jede Seite genau unter diesem Pfad auf der Website aus Schritt 1 aus, dann stimmen die Links und die strukturierten Daten der Seite ohne jede Änderung.
  • Liegen Ihre Seiten unter einem anderen Pfad, bearbeiten Sie das HTML nicht von Hand. Jeder „Auch lesenswert“-Link hat ein data-pseo-link-Attribut mit dem Slug der Zielseite, sodass Sie alle auf einmal umschreiben können:
    read-also.js
    // Each "Read also" link carries data-pseo-link="<slug>"
    const html = page.body_html.replace(
      /href="[^"]*"(\s+data-pseo-link="([^"]+)")/g,
      (_, attr, slug) => `href="/guides/${slug}"${attr}`
    );
  • Die HTML-Dateien in dist/ verlinken sich dagegen als {slug}.html. Laden Sie sie zusammen in denselben Ordner hoch (am besten /blog), dann funktionieren sie – mit oder ohne saubere URLs.
  • Importieren Sie alle Seiten einer Kampagne zusammen. Ein Link auf eine nicht importierte Seite führt zu einem 404: Der HTML-Export entfernt solche Links automatisch, und in Ihrer eigenen App können Sie Links überspringen, deren Slug nicht in Ihren Daten vorkommt.
  • Ändern Sie einen Slug nicht mehr, wenn die Seite live ist. Falls doch nötig, richten Sie eine 301-Weiterleitung von der alten auf die neue Adresse ein.

/publish

Ohne Code veröffentlichen

Verbinden Sie Ihre Website in Schritt 5, und wir übertragen die Seiten für Sie. Sie brauchen nur einmal einen Schlüssel von Ihrer Plattform; die Schritte unten zeigen, wo Sie ihn finden.

WordPress

Die Seiten kommen als Beitragsentwürfe an, sodass Sie sie vor der Veröffentlichung prüfen können.

  1. Öffnen Sie im WordPress-Admin Benutzer → Profil und scrollen Sie zu Anwendungspasswörter.
  2. Geben Sie einen Namen wie „pSEO Wizard“ ein, klicken Sie auf Neues Anwendungspasswort hinzufügen und kopieren Sie das angezeigte Passwort. Es wird nur einmal angezeigt.
  3. Wählen Sie in Schritt 5 WordPress und geben Sie Ihre Website-Adresse, Ihren WordPress-Benutzernamen und dieses Anwendungspasswort ein (nicht Ihr normales Login-Passwort).
  4. Klicken Sie auf Veröffentlichen und öffnen Sie dann in WordPress Beiträge → Entwürfe, um die Seiten zu prüfen und freizuschalten.

Shopify

Die Seiten werden als veröffentlichte Artikel im gewählten Blog angelegt.

  1. Öffnen Sie im Shopify-Admin Einstellungen → Apps und Vertriebskanäle → Apps entwickeln und erstellen Sie eine App.
  2. Aktivieren Sie unter Admin-API-Bereiche konfigurieren read_content und write_content, speichern Sie und klicken Sie auf App installieren.
  3. Öffnen Sie API-Anmeldedaten und kopieren Sie das Admin-API-Zugriffstoken. Es beginnt mit shpat_.
  4. Wählen Sie in Schritt 5 Shopify, geben Sie Ihre Shop-Adresse (ihrshop.myshopify.com) und das Token ein, wählen Sie einen Blog und klicken Sie auf Veröffentlichen.

Webflow

Die Seiten werden als Einträge einer CMS-Collection angelegt und gehen live, sobald Sie Ihre Website das nächste Mal veröffentlichen.

  1. Legen Sie im Webflow Designer eine CMS-Collection an (z. B. „Ratgeber“) mit einem Rich-Text-Feld Post Body und einem Textfeld Post Summary. Die Blog-Vorlage von Webflow hat beide bereits.
  2. Öffnen Sie die Vorlagenseite der Collection und verknüpfen Sie Name und Post Body mit Ihrem Layout.
  3. Erstellen Sie ein API-Token unter Website-Einstellungen → Apps & Integrationen → API-Zugriff.
  4. Wählen Sie in Schritt 5 Webflow, fügen Sie das Token ein, wählen Sie Website und Collection, klicken Sie auf Veröffentlichen und veröffentlichen Sie danach Ihre Website in Webflow.

WooCommerce

Die Seiten werden als Produktentwürfe angelegt – passend für Seiten über etwas, das Sie verkaufen.

  1. Öffnen Sie im WordPress-Admin WooCommerce → Einstellungen → Erweitert → REST-API und klicken Sie auf Schlüssel hinzufügen.
  2. Geben Sie dem Schlüssel Lese-/Schreibrechte und kopieren Sie Consumer Key (ck_…) und Consumer Secret (cs_…).
  3. Wählen Sie in Schritt 5 WooCommerce, geben Sie Ihre Shop-Adresse und beide Schlüssel ein, klicken Sie auf Veröffentlichen und prüfen Sie die Entwürfe unter Produkte.

Wix

Eine direkte Wix-Verbindung gibt es noch nicht, aber Sie können die Seiten von Hand einfügen.

  1. Laden Sie Ihre Seiten in Schritt 5 herunter (siehe „Seiten herunterladen“ weiter oben).
  2. Fügen Sie im Wix Editor eine neue Seite hinzu, dann Code einbetten → HTML einbetten, und fügen Sie den vollständigen Inhalt der .html-Datei einer Seite ein.
  3. Stellen Sie URL und SEO-Titel der Seite in Wix passend ein. Suchmaschinen lesen eingebettetes HTML weniger zuverlässig als normale Seiten, daher ranken WordPress, Shopify oder Webflow meist besser.

/pricing

Preise & Zahlung

Sie zahlen einmal pro Seite. Es gibt kein Abo, und jedes Konto erhält die erste Seite kostenlos.

Preis pro Seite
SeitenPreis pro Seite
1–5000,30 $
501–1.5000,25 $
1.501–3.5000,20 $
3.501+0,15 $
  • Die Preise sind gestaffelt: Jeder Preis gilt nur für die Seiten in seinem Bereich. Beispiel: 600 Seiten kosten 500 × 0,30 $ + 100 × 0,25 $ = 175 $.
  • Bezahlte Bestellungen umfassen mindestens 10 Seiten. Es gibt keine Rabatte oder Gutscheincodes.
  • Wenn Sie eine bezahlte Kampagne ändern, wird der Betrag für noch nicht erstellte Seiten Ihrem Konto als Guthaben für die nächste Bestellung gutgeschrieben.
  • Zahlungen wickelt Dodo Payments als unser Merchant of Record ab. Akzeptiert werden Karten und lokale Zahlungsarten; anfallende Umsatzsteuer wird an der Kasse hinzugefügt.
Zur vollständigen Preisseite

/facts

So bleiben die Seiten korrekt

Suchmaschinen und Kunden strafen Seiten ab, die Dinge erfinden. Diese Regeln gelten für jede Seite:

  • Fakten kommen von Ihrer Website

    Preise, Leistungen, Bewertungen und Zahlen stammen nur von Ihrer Website und aus den Fakten, die Sie eingeben. Eine Zahl, die nicht auf Ihrer Website steht, wird von der Seite entfernt.

  • Jede Seite ist anders

    Jede Seite bekommt ihren eigenen Plan, und fertige Seiten werden miteinander verglichen. Eine Seite, die sich zu sehr mit anderen überschneidet, wird neu geschrieben.

  • Ehrlich bei Standorten

    Wenn Kunden zu Ihnen kommen, warnen wir Sie vor weit entfernten Orten. Wenn Sie zu Ihren Kunden fahren, sagen die Seiten, dass Sie die Gegend bedienen – nie, dass Sie dort eine Filiale haben.

  • Veröffentlicht unter /blog

    Standardmäßig landen die Seiten in einem Ordner /blog. So bleibt eine große Zahl neuer Seiten vom Rest Ihrer Website getrennt.

/help

Fehlerbehebung

WordPress meldet falsche Zugangsdaten (401 oder 403)
Verwenden Sie ein Anwendungspasswort statt Ihres normalen Passworts, zusammen mit Ihrem WordPress-Benutzernamen (nicht Ihrer E-Mail). Manche Sicherheits-Plugins blockieren die WordPress-REST-API; erlauben Sie sie für Ihren Benutzer und versuchen Sie es erneut.
Shopify verbindet sich nicht
Verwenden Sie das Admin-API-Zugriffstoken, das mit shpat_ beginnt, und geben Sie der App die Bereiche read_content und write_content. Installieren Sie die App nach einer Änderung der Bereiche neu und kopieren Sie das neue Token.
Nach dem Hochladen zeigt eine Seite 404
Prüfen Sie, ob die Datei in dem Ordner liegt, den die URL der Seite erwartet (z. B. /blog/), und ob das in Schritt 3 festgelegte Sprachpräfix zu Ihrer Website passt.
Buttons führen auf die falsche Seite
Buttons führen zur Ziel-URL aus Schritt 1 oder zur passenden Seite auf Ihrer Website (Buchung, Speisekarte, Preise, Kontakt), falls es eine gibt. Legen Sie die Ziel-URL vor dem Erstellen fest; bei bestehenden Seiten ändern Sie den Link im Seiten-Editor in Schritt 4.

Kommen Sie nicht weiter? Schreiben Sie an support@wizardseo.co – wir helfen gern.