Strapi und SEO

Strapi ist ein Headless-CMS ohne Frontend, daher wird Ihr SEO dadurch bestimmt, wie das Frontend rendert – plus Content-Modellierung, das SEO-Plugin, Sitemaps, Entwürfe und Preview-Hygiene.

Erstveröffentlicht: 27. Juni 2026 · Zuletzt aktualisiert: 3. Aug. 2026 · Fortgeschritten
Sprachen

Strapi ist ein Open-Source-Headless-CMS ohne Rendering-Ebene, daher ist es SEO-neutral – jedes Ergebnis wird durch das Frontend (Next.js, Nuxt, Astro) bestimmt, das seine API konsumiert. Rendern Sie in HTML zur Build- oder Anfragezeit (SSG/SSR), nicht im Browser (CSR). Modellieren Sie SEO-Felder in Ihren Inhaltstypen (nutzen Sie das Community-SEO-Plugin), halten Sie Entwürfe und Preview/Staging-Bereitstellungen aus dem Index heraus, blockieren Sie das /admin-Panel und rohes /api-JSON und erstellen Sie sitemap.xml und robots.txt im Frontend. Wenn Sie das Rendering richtig hinbekommen, kann eine Strapi-Site ein traditionelles CMS bei Core Web Vitals schlagen.

TL;DR — Strapi ist ein reines Backend-Headless-CMS (REST + GraphQL, selbst gehostet oder Strapi Cloud) ohne Rendering-Ebene, daher ist es SEO-neutral – die Rendering-Art des Frontends entscheidet alles. SSG/SSR liefern vollständig gerendertes HTML und sind sicher; CSR ist riskant (ein Crawler, der nur das anfängliche HTML abruft, sieht eine leere Hülle – so verhalten sich derzeit mehrere große KI-Crawler); ISR hat die Falle mit veraltetem Inhalt bei der ersten Anfrage. Modellieren Sie SEO-Felder in Ihren Inhaltstypen (das Community-Plugin @strapi/plugin-seo speichert und zeigt sie in der Vorschau, gibt aber kein HTML, keine Sitemaps und keine robots.txt aus – das ist die Aufgabe des Frontends). Halten Sie Entwürfe über den Veröffentlichungs-Workflow fern (übergeben Sie niemals Auth-Tokens in öffentlichen Anfragen), setzen Sie noindex für Vorschau/Staging auf Host-Ebene, halten Sie /admin und rohes /api/*-JSON aus der Suche heraus und erstellen Sie sitemap.xml + robots.txt im Frontend. Strapi ist neutral; Ihre Architektur ist das Produkt.

Strapi ist nicht die SEO-Entscheidung – das Frontend ist es

Das wichtigste Konzept bei Strapi-SEO: Strapi hat keine Rendering-Ebene. Es ist eine Inhaltspeicherung, ein Inhaltsmodell, eine Bearbeitungsoberfläche und eine API. Jedes SEO- Ergebnis – Indexierbarkeit, Metadaten, Geschwindigkeit, strukturierte Daten – wird durch das Frontend-Framework bestimmt, das die Strapi-API nutzt. Strapis Aufgabe ist es ausschließlich, die richtigen Felder zu speichern und bereitzustellen.

Evidence for this claim Strapi provides REST and GraphQL content APIs rather than rendering a public website. Scope: GraphQL requires Strapi's GraphQL plugin; REST is available for content types. Confidence: high · Verified: Strapi: REST API

Das macht „Strapi ist schlecht für SEO“ zum falschen Rahmen. Strapi ist neutral. Wie Strapis eigenes Team es ausdrückt: “headless architectures require developers to take ownership of SEO aspects that traditional content management systems handle automatically.” (Übersetzung) „Headless-Architekturen erfordern, dass Entwickler die Verantwortung für SEO-Aspekte übernehmen, die traditionelle Content-Management-Systeme automatisch handhaben.“ Eine Strapi- + Next.js-Site, die mit SSG rendert und eine disziplinierte Metadaten-Ebene hat, wird besser abschneiden als eine vernachlässigte WordPress-Installation. Eine Strapi-Site mit einem client-gerenderten React-SPA ohne Metadaten-Anbindung wird stillschweigend auseinanderfallen. Gleiches Backend, gegenteilige Ergebnisse – weil die Rendering-Entscheidungen unterschiedlich sind. Dies ist derselbe Punkt, den ich zu JavaScript-SEO allgemein mache: Die Frage, mit der man beginnen sollte, ist immer wie rendert das Frontend diesen Inhalt?

Die vier Rendering-Modi (die kritischste Entscheidung)

  • SSG – Static Site Generation. HTML wird zur Build-Zeit erstellt und als statische Dateien ausgeliefert. Best-Case-SEO: vollständig gerendertes HTML beim ersten Abruf, schnelle TTFB und Core Web Vitals. Kompromiss: Neue/geänderte Inhalte benötigen einen Rebuild. Gatsby und Astro sind SSG-first; Next.js macht es pro Route.
  • SSR – Server-Side Rendering. HTML wird pro Anfrage auf einem Server oder Edge gerendert. Immer aktuelle, vollständig gerenderte HTML. Kompromiss: Die Strapi-API-Latenz fließt direkt in Ihre TTFB bei jeder Anfrage ein. Next.js, Nuxt, SvelteKit, Remix.
  • ISR – Incremental Static Regeneration. Statische Seiten werden im Hintergrund nach einem Revalidierungsfenster neu generiert. Ein guter Mittelweg mit einer Falle (unten).
  • CSR – Client-Side Rendering. Eine fast leere Hülle wird ausgeliefert und der Browser ruft von Strapi ab und baut das DOM auf. Schlechteste SEO-Option: Google muss die Seite für eine spätere Rendering-Welle in die Warteschlange stellen – “Googlebot queues all pages with a 200 HTTP status code for rendering, unless a robots meta tag or header tells Google not to index the page” (Übersetzung) „Googlebot stellt alle Seiten mit einem HTTP-Statuscode 200 für das Rendering in die Warteschlange, es sei denn, ein Robots-Meta-Tag oder -Header teilt Google mit, die Seite nicht zu indexieren“ – Ihr Inhalt existiert also nicht, bis diese Welle läuft. KI-Crawler und Bing gehen damit weitaus schlechter um als Google. Nur akzeptabel für eingeloggte Dashboards, die Sie ohnehin nicht indexiert haben möchten. Ein rohes React/Vue-SPA über Strapi landet hier standardmäßig – vermeiden Sie es für öffentliche Inhalte.
Evidence for this claim Google sends pages with successful HTTP responses to a rendering queue and recommends server-side or pre-rendering for reliable content delivery. Scope: Google Search JavaScript processing; rendering is not an assurance of indexing. Confidence: high · Verified: Google: JavaScript SEO basics

Die ISR-Falle: Wenn das Revalidierungsfenster abläuft, erhält die nächste Anfrage – die von Googlebot sein könnte – immer noch die veraltete gecachte Seite; die frische wird nur bei der darauffolgenden Anfrage ausgeliefert. Für volatile Daten (Preise, Bestände) bevorzugen Sie SSR. ISR ist ideal für Inhalte, die sich im Bereich von Stunden oder Tagen ändern.

Inhaltsmodellierung für SEO in Strapi

Strapi gibt dem Frontend nichts zum Rendern, es sei denn, Sie fügen die Felder in das Inhaltsmodell ein. Fügen Sie für jeden öffentlichen Inhaltstyp eine SEO-Komponente mit mindestens Folgendem hinzu:

  • metaTitle, metaDescription
  • canonicalURL
  • ogImage (und Open-Graph-/Twitter-Felder)
  • eine Robots-Direktive – z. B. ein preventIndexing-Boolean für die Noindex-Steuerung pro Eintrag

Verwenden Sie Strapis UID-Feld für Slugs – es wird automatisch aus dem Titel generiert und erzwingt Eindeutigkeit. Für mehrsprachige Websites aktivieren Sie Strapis integriertes i18n pro Inhaltstyp, lokalisieren Sie Slug und SEO-Felder pro Locale und geben Sie dann im Frontend <link rel="alternate" hreflang="..."> aus, indem Sie die localizations-Beziehung nutzen, die jeder Eintrag bereitstellt. Wie SALT.agency anmerkt, kann der Titel “can either be populated with the Strapi SEO Plugin or by creating a text field where the title tag will be stored, with conditions added such as not being shorter than or not exceeding a set amount of characters.” (Übersetzung) „Er kann entweder mit dem Strapi-SEO-Plugin befüllt werden oder durch die Erstellung eines Textfelds, in dem der Title-Tag gespeichert wird, mit Bedingungen wie einer Mindest- oder Höchstlänge.“

Das Frontend liest diese Felder dann aus der API und füllt den <head> – Next.js generateMetadata, Nuxt useSeoMeta, Astros Layout-<head>. Die Zuverlässigkeitsregel ist dieselbe wie bei allen Headless-SEO: HTML-Ebene-Metadaten schlagen JS-injizierte Metadaten, weil Google sie beim ersten Abruf sieht.

Das Strapi-SEO-Plugin – was es tut und was nicht

Das Community-SEO-Plugin (@strapi/plugin-seo, früher @strapi-community/plugin-seo, im Strapi-Market gelistet) ist das Standardwerkzeug. Es “embeds a side panel in every Content-Type edit view where you can set meta titles, descriptions, canonical URLs, and social share images,” fügt eine SERP-Vorschau hinzu und führt eine In-Content-Analyse durch – grüne, orange oder rote Indikatoren für Lesbarkeit, Keyword-Verteilung und Schema-Konformität. (Übersetzung) „Es bettet ein Seitenpanel in jede Bearbeitungsansicht eines Inhaltstyps ein, in dem Sie Meta-Titel, Beschreibungen, kanonische URLs und Social-Sharing-Bilder festlegen können.“

Was es nicht tut, und das ist das häufigste Missverständnis:

  • Es generiert nicht das <head>-HTML – das Frontend rendert die Felder.
  • Es generiert keine Sitemap – das ist ein separates Plugin (bei Strapi 5 das Webtools-Sitemap-Add-on oder strapi-5-sitemap-plugin).
  • Es schreibt kein robots.txt und implementiert keine strukturierten Daten – das ist Aufgabe des Frontends.

Mit anderen Worten: Das Plugin bietet Redakteuren eine gute Authoring-UX und speichert saubere Felder. Das Frontend muss die eigentliche SEO-Ausgabe übernehmen.

Entwürfe, Vorschau, /admin und /api – die falschen Dinge aus dem Index heraushalten

Hier hat Strapi mehr Fehlermodi als eine gehostete Plattform wie Shopify.

  • Entwurf/Veröffentlichung. Strapi markiert Entwürfe mit publishedAt: null; die API gibt nur veröffentlichte Einträge an nicht authentifizierte Anfragen zurück. Die kritische Disziplin: Übergeben Sie niemals ein authentifiziertes API-Token in öffentlichen Frontend-Anfragen, sonst werden alle Entwurfsinhalte abrufbar. Das Sitemap-Plugin/Add-on respektiert den Veröffentlichungsstatus und nimmt nur veröffentlichte URLs auf.
  • Vorschau-/Staging-Umgebungen. Vercel-Branch-Deploys, Netlify-Deploy-Previews und dedizierte Vorschau-Hosts, die Strapi-Entwürfe konsumieren, sind in der Regel öffentlich erreichbar. Blockieren Sie sie mit einem mehrschichtigen Ansatz: ein X-Robots-Tag: noindex-Header auf Host-Ebene (nicht nur ein Meta-Tag, das eine CSR-Seite spät injiziert), Disallow: / in robots.txt, ein noindex-Meta-Tag auf jeder Seite und HTTP-Authentifizierung, wo möglich. Beobachten Sie die Search Console auf unerwartete Hostnamen – das ist Ihre Frühwarnung.
  • Das /admin-Panel. Strapis Admin ist eine React-SPA; stellen Sie sicher, dass es <meta name="robots" content="noindex"> trägt (Strapi v4+ tut das), halten Sie es von öffentlichen Links fern und schützen Sie es mit einem Passwort – ein ungeschütztes /admin ist per Google-Dorking auffindbar.
  • Das rohe /api/*-JSON. Es wird nicht als Seite ranken, aber es verschwendet Crawl-Budget und kann Daten leaken. Die meisten Produktions-Setups platzieren die API auf einer eigenen Subdomain (cms.example.com / api.example.com); blockieren Sie diese Subdomain vollständig in robots.txt und halten Sie sie von der Sitemap fern. Wenn API und Frontend dieselbe Domain teilen, Disallow: /api/.

Sitemaps und robots.txt – im Frontend erstellt

Es gibt kein Yoast, also sind beide explizit. Zwei Sitemap-Routen:

  1. Ein Sitemap-Plugin in Strapi – generiert XML und enthält nur veröffentlichte Einträge. Auf Strapi 5 ist die gepflegte Option das Webtools-Sitemap-Add-on (strapi-plugin-webtools + webtools-addon-sitemap) für größere, mehrsprachige Websites oder strapi-5-sitemap-plugin für einfachere. Das ältere eigenständige strapi-plugin-sitemap (pluginpal) endet bei Strapi 4 – seine eigene Dokumentation verweist v5-Nutzer stattdessen an Webtools, also installieren Sie es nicht in einem v5-Projekt. Zitat aus der Plugin-Dokumentation: Wenn Entwurf/Veröffentlichung aktiviert ist, “this setting will make sure that all draft pages are excluded from the sitemap.” (Übersetzung) „Diese Einstellung stellt sicher, dass alle Entwurfsseiten von der Sitemap ausgeschlossen werden.“
  2. Frontend-generiert – Next.js sitemap.ts, Astro @astrojs/sitemap, Nuxt- Sitemap-Module, die veröffentlichte URLs von der Strapi-API abrufen. Mehr Kontrolle über kanonische URLs, lastmod und changefreq.

robots.txt wird vom Frontend ausgeliefert (Next.js robots.ts, Astro public/robots.txt). Fügen Sie eine Sitemap:-Direktive hinzu, blockieren Sie Vorschau-Hosts mit Disallow: / und – wie bei jedem Headless-Stack – blockieren Sie niemals .js oder .css (das blockiert das Rendering).

Das wertvolle Muster ist der Webhook-Workflow: Strapi feuert einen Webhook beim Veröffentlichen → löst einen Vercel/Netlify-Rebuild oder eine On-Demand-Revalidierung aus → generiert die Sitemap neu → pingt Google Search Console und IndexNow. Da Headless-Content-Updates über eine API statt über ein Plugin fließen, das Suchmaschinen pingt, ist IndexNow (Bing, Yandex und andere) besonders wertvoll, wenn es an diesen Veröffentlichungs-Webhook angeschlossen ist.

Strapi Cloud vs. Self-Hosting – die SEO-Auswirkungen

Das Hosting von Strapi beeinflusst die API-Antwortzeit, die je nach Rendering-Modus unterschiedlich wichtig ist:

  • SSG/ISR: Die Geschwindigkeit der Strapi-API ist zur Build-Zeit wichtig, nicht zur Laufzeit – Seiten sind vorgebaut, daher berührt die API-Latenz nicht die TTFB des Nutzers.
  • SSR: Die Strapi-API-Latenz addiert sich direkt zur TTFB bei jeder Anfrage → beeinflusst LCP → ein echtes Ranking-Eingangssignal. Das ist der Fall, den es zu optimieren gilt.

Strapi Cloud ist verwaltete Infrastruktur mit einem Asset-CDN – gut für Teams ohne DevOps. Self-Hosting gibt Ihnen volle Kontrolle über Caching (Redis), Datenbank-Indizierung und geografische Nähe zum Frontend. In jedem Fall: Cachen Sie Strapi-API-Antworten auf der CDN-Ebene oder verwenden Sie ISR mit kurzer Revalidierung, um die Frontend-Laufzeit von der Strapi-Latenz zu entkoppeln. Ein Hinweis, den man klar aussprechen sollte – das CDN von Strapi Cloud bedient die Strapi-API und Assets, nicht Ihre Frontend-Website; Ihre Core Web Vitals werden gegen das Frontend gemessen, das separat gehostet wird (Vercel, Netlify, Cloudflare Pages).

Migration zu oder von Strapi

WordPress → Strapi ist der häufige Weg, und Migrationen sind der Punkt, an dem Headless-SEO tatsächlich schiefgeht:

  • Ordnen Sie jeden bestehenden Slug exakt dem UID-Feld von Strapi zu; jede Slug-Änderung benötigt eine 301-Weiterleitung (verwenden Sie strapi-plugin-redirect-urls oder Smart Redirect Manager, gelesen vom Frontend/Middleware).
  • Migrieren Sie Meta-Titel, Beschreibungen und og:image von wp_postmeta in die SEO-Komponentenfelder und Bild-Alt-Texte in das alternativeText-Feld der Medienbibliothek.
  • Erfassen Sie jede URL – nicht nur Beiträge: Tag-Seiten, paginierte Archive, Parameter-URLs – und erstellen Sie die Weiterleitungskarte vor dem Go-Live.
  • Migrieren Sie Kanonische explizit; gehen Sie nicht davon aus, dass das Frontend sie automatisch korrekt generiert.
  • Nach dem Launch: Führen Sie einen Screaming-Frog-Crawl-Vergleich durch, verifizieren Sie strukturierte Daten erneut mit dem Rich Results Test, reichen Sie Sitemaps erneut bei GSC und Bing ein und richten Sie IndexNow ein.

Strapi-SEO ist wirklich eine spezialisierte Anwendung von JavaScript SEO und Rendering – der verwandte Artikel zu Headless-CMS-SEO behandelt die plattformunabhängige Version von all dem.

Add an expert note

Pin an expert quote

New person? Create their unclaimed profile at /admin/experts/ → Pin a quote first.