Zum Inhalt springen
Blume
Esc
↑↓navigieren↵öffnen⌘Jvorschau
Auf dieser Seite

Audit

blume audit crawlt die gebaute Site und meldet Probleme bei SEO und Site-Gesundheit – jeder Befund nennt die Quelldatei und die Frontmatter-Zeile, mit der du ihn behebst.

blume validate liest deine Inhalte; blume audit liest die gebaute Site. Es crawlt nach einem Build das HTML in dist/ und meldet Probleme bei SEO und Site-Gesundheit – Titel, Meta-Descriptions, Canonicals, Open-Graph- und X-Cards, Überschriften, hreflang, Bilder, die Sitemap, robots.txt und strukturierte Daten.

Weil Blume die Site gebaut hat, nennt jeder Befund die Quelldatei und die Frontmatter-Zeile, mit der du ihn behebst – nicht nur die URL, die ein Crawler sehen würde:

⚠ Meta description too long or too short   5 pages
    /docs/configuration/export    content/docs/configuration/export.mdx:3
    fix: Rewrite `description` in the frontmatter to fit the length range.

Führe es nach einem Build aus:

blume build
blume audit

Befunde werden nach Check gruppiert statt pro Seite aufgelistet, sodass sich der Bericht wie eine To-do-Liste liest. Mit --verbose klappst du jede betroffene Seite mit allen Details auf, und mit --only/--skip arbeitest du dich Kategorie für Kategorie durch. blume audit --list-checks gibt den vollständigen Katalog aus, der auch als Check-Katalog am Ende dieser Seite steht – die docsUrl jedes Befunds verlinkt auf den jeweiligen Eintrag dort.

Flags

  • --fail-on error|warning|info – das CI-Gate: beendet sich ab diesem Schweregrad mit einem Exit-Code ungleich null. Standard ist error; --strict ist ein Alias für --fail-on warning.
  • --url <origin> – prüft zusätzlich ein Live-Deployment auf Statuscodes, Response-Header und konfigurierte Weiterleitungen.
  • --external – prüft ausgehende Links über das Netzwerk.
  • --ignore <glob> – zusammen mit --external: prüft keinen ausgehenden Link, dessen URL auf den Glob passt, etwa --ignore "https://api.acme.example/**". Wiederhole das Flag für weitere Muster. Der Abgleich funktioniert genauso wie bei blume validate --ignore, und interne Links werden immer geprüft.
  • --only <check|category> / --skip <check|category> – beschränkt den Bericht auf diese Checks oder Kategorien bzw. schließt sie aus (kommagetrennt). Die Audit-Anzahl in der Zusammenfassung berücksichtigt nur die verbleibenden Checks. Ein Begriff, der weder einen Check noch eine Kategorie bezeichnet, führt zu einem Fehler, der den nächstliegenden Treffer vorschlägt – so kann ein Tippfehler den Bericht nicht unbemerkt leeren.
  • --list-checks – gibt jeden Check aus, den das Audit melden kann, und beendet sich dann.
  • --verbose – listet jede betroffene Seite mit allen Details jedes Befunds auf statt nur der ersten paar.
  • --json – gibt den Bericht als JSON auf stdout aus.
  • --codex / --claude – übergibt die Befunde an Codex oder Claude Code, damit du sie interaktiv beheben kannst.

CI fehlschlagen lassen

Der Exit-Code ist der Vertrag. Standardmäßig schlägt blume audit nur bei Fehlern fehl – also bei Dingen, die definitiv kaputt sind, etwa ein Link auf eine Seite, die nie gebaut wurde, eine Redirect-Schleife oder eine ungültige Sitemap. Hinweisende Befunde (eine zu kurze Description, ein doppelter Titel) sind Warnungen und lassen den Build nicht fehlschlagen:

blume audit                      # fails on errors
blume audit --fail-on warning    # also fails on warnings

Ein Live-Deployment prüfen

Manches kann dir nur der echte Server sagen: ob eine Seite, die in dist/ existiert, hinter einem fehlerhaften Rewrite tatsächlich einen 404 liefert, ob Antworten komprimiert werden, ob ein X-Robots-Tag-Header still und leise eine Seite deindexiert, deren HTML völlig in Ordnung aussieht, und ob jede alte URL in redirects wirklich dorthin weiterleitet, wo du es konfiguriert hast. Richte das Audit auf ein Deployment, um diese Checks hinzuzufügen:

blume audit --url https://docs.example.com
blume audit --url https://docs.example.com --external   # also probe outbound links

Diese Anfragen gehen als gewöhnlicher HTTP-Client raus, nicht als Crawler: Das Audit sendet nicht den User-Agent von Googlebot oder einem KI-Crawler, da der Bot-Schutz eines Hosts einen Client blockieren kann, der sich als einer ausgibt. Eine Firewall- oder CDN-Regel, die Crawler anders behandelt, wird dabei also nicht mitgeprüft – teste sie deshalb mit den eigenen Tools des Crawlers, etwa der URL-Prüfung der Google Search Console.

Das Audit ruft die alte URL jeder exakten Weiterleitung ab (ein Muster nennt keine einzelne URL, die sich abrufen ließe). Liefert sie einen 404, ist das ein Fehler. Antwortet sie mit 200, ist das eine Warnung: Ein Host, der die vom Build geschriebene Weiterleitungsdatei nicht liest, liefert dort statt einer HTTP-Weiterleitung die Meta-Refresh-Seite des Builds aus – der folgen Leser, Crawler aber womöglich nicht. Unter Weiterleitungen erfährst du, was welcher Host liest.

Ausgehende Links werden abgestuft bewertet, statt pauschal als Fehler zu gelten: Ein 404 oder 410 oder ein Hostname, der sich nicht auflösen lässt, ist ein kaputter Link, den du beheben kannst, während jeder andere Fehlerstatus (ein 401 oder 403 von einer Site, die Bots abweist, ein 429, ein 5xx), eine abgelehnte Verbindung oder eine Zeitüberschreitung meist auf Rate Limiting oder einen Ausfall bei jemand anderem zurückgeht und als Warnung gemeldet wird. URLs, die das Audit von dort aus, wo es läuft, nicht prüfen kann – etwa eine Platzhalter-Domain oder einen lokalen Server –, lässt du mit --ignore aus.

Befunde mit einem Agenten beheben

Wenn du Codex oder Claude Code nutzt, kann das Audit seine Befunde direkt daran übergeben:

blume audit --codex   # or --claude

Dabei wird der vollständige JSON-Bericht – jede betroffene Seite, nicht die Drei-Seiten-Vorschau des Terminals – in eine Datei geschrieben und der Agent interaktiv mit einem Prompt gestartet, der ihn durch die Befunde führt: die Quelldatei bearbeiten, die jeder Befund nennt, den vorgeschlagenen Fix anwenden und dann blume build und blume audit erneut ausführen, bis der Bericht sauber ist. Die Session ist bewusst interaktiv: Du prüfst die Änderungen über den eigenen Freigabeablauf des Agenten, und der Agent wird angewiesen, einen Befund niemals durch das Löschen von Inhalten zu beheben.

--only und --skip schränken die Übergabe genauso ein wie den Bericht, sodass du eine Kategorie nach der anderen übergeben kannst.

Was geprüft wird und was nicht

Die Auswahl an Checks ist bewusst kleiner als bei einem universellen SEO-Crawler. Vieles von dem, was ein solcher Crawler meldet, kann bei einer Blume-Site gar nicht auftreten – Blume gibt nie rel=nofollow aus, und die content-gehashten Bundles von Vite fehlen nie und leiten nie weiter. Diese Punkte als dauerhafte Nullen zu melden, würde dir nur beibringen, den Bericht zu ignorieren.

Diese Grenzen solltest du klar kennen:

  • Strukturierte Daten werden auf Wohlgeformtheit validiert (gültiges JSON, ein @context, ein @type an jedem Knoten). Blume validiert nicht gegen das vollständige schema.org-Vokabular oder die Rich-Results-Regeln von Google.
  • Kontrast wird für die Farben geprüft, die deine Theme-Konfiguration festlegt, nicht Element für Element. Das Audit rendert keine Seiten, daher wird eine Farbe, die du von Hand in MDX oder theme.css schreibst, nicht gemessen.
  • Core Web Vitals werden nicht geprüft. Dafür braucht es einen echten Browser, und ein Flag, das stillschweigend nichts misst, wäre schlimmer als gar keins – deshalb meldet blume audit die Ursachen für Layout-Verschiebungen, die es offline erkennen kann (Bilder ohne width/height, übergroße Assets), und lässt den Rest vorerst außen vor.

Alles, was das Audit nicht ausgeführt hat, wird als übersprungen gemeldet, statt stillschweigend als bestanden zu gelten:

⊘ network      skipped — pass --url <origin> (12 checks)
⊘ external     skipped — pass --external (2 checks)

Check-Katalog

Hier findest du jeden Check, den blume audit melden kann, gruppiert nach Kategorie – mit seinem Standard-Schweregrad, der Stufe, in der er läuft, und dem Fix, den der Bericht vorschlägt. --only und --skip akzeptieren diese IDs (auch ohne das Präfix BLUME_AUDIT_) oder den Schlüssel einer Kategorie. Der Schlüssel entspricht nicht immer der Überschrift der Kategorie, also halte dich an diese Tabelle: blume audit --only i18n, nicht --only Internationalization.

Kategorie Schlüssel
Barrierefreiheit accessibility
Inhalt content
Duplikate duplicates
Indexierbarkeit indexability
Links links
Weiterleitungen redirects
Social Cards social
Internationalisierung i18n
Assets assets
Sitemap sitemap
robots.txt robots
Auffindbarkeit für KI ai
Strukturierte Daten structured-data
Live-Deployment network

Inhalt

Title-Tag fehlt oder ist leer

BLUME_AUDIT_TITLE_MISSING · Fehler · aus dem gebauten HTML

Behebung: Füge dem Frontmatter der Seite einen title hinzu.

Mehrere Title-Tags

BLUME_AUDIT_TITLE_MULTIPLE · Fehler · aus dem gebauten HTML

Behebung: Entferne das zusätzliche <title> aus dem Layout oder MDX der Seite.

Titel zu lang oder zu kurz

BLUME_AUDIT_TITLE_LENGTH · Warnung · aus dem gebauten HTML

Behebung: Formuliere title im Frontmatter so um, dass er in den Längenbereich passt.

Meta-Description fehlt oder ist leer

BLUME_AUDIT_DESCRIPTION_MISSING · Warnung · aus dem gebauten HTML

Behebung: Füge dem Frontmatter der Seite eine description hinzu.

Mehrere Meta-Description-Tags

BLUME_AUDIT_DESCRIPTION_MULTIPLE · Fehler · aus dem gebauten HTML

Behebung: Entferne das zusätzliche Description-<meta> aus dem Layout oder MDX der Seite.

Meta-Description zu lang oder zu kurz

BLUME_AUDIT_DESCRIPTION_LENGTH · Warnung · aus dem gebauten HTML

Behebung: Formuliere description im Frontmatter so um, dass sie in den Längenbereich passt.

H1-Tag fehlt oder ist leer

BLUME_AUDIT_H1_MISSING · Warnung · aus dem gebauten HTML

Behebung: Gib der Seite einen title – Blume rendert ihn als <h1> der Seite.

Mehrere H1-Tags

BLUME_AUDIT_H1_MULTIPLE · Warnung · aus dem gebauten HTML

Behebung: Stufe die zusätzliche # Heading im Body auf ## herab – Blume rendert title bereits als h1.

Geringe Wortanzahl

BLUME_AUDIT_LOW_WORD_COUNT · Info · aus dem gebauten HTML

Behebung: Erweitere die Seite oder führe sie mit einer größeren zusammen.

Überschriftenebenen werden übersprungen (z. B. h2 zu h4)

BLUME_AUDIT_HEADING_SKIP · Info · aus dem gebauten HTML

Behebung: Setze die Überschrift auf die nächsttiefere Ebene – übersprungene Ebenen zerstören die Verschachtelung des Inhaltsverzeichnisses und die Gliederung für Screenreader.

Seite ist in die Zukunft datiert

BLUME_AUDIT_FUTURE_DATED_PAGE · Info · aus dem gebauten HTML

Behebung: Korrigiere das date oder halte die Seite zurück, bis sie live gehen soll.

Viewport nicht gesetzt

BLUME_AUDIT_VIEWPORT_MISSING · Fehler · aus dem gebauten HTML

Behebung: Stelle das Viewport-<meta> in deinem ejecteten Layout wieder her.

Duplikate

Doppelter Titel

BLUME_AUDIT_DUPLICATE_TITLE · Warnung · aus dem gebauten HTML

Behebung: Gib jeder Seite einen eigenen title – Suchmaschinen zeigen ihn als Überschrift des Suchergebnisses an.

Doppelte Meta-Description

BLUME_AUDIT_DUPLICATE_DESCRIPTION · Warnung · aus dem gebauten HTML

Behebung: Gib jeder Seite eine eigene description.

Doppelte Seiten ohne Canonical

BLUME_AUDIT_DUPLICATE_CONTENT · Warnung · aus dem gebauten HTML

Behebung: Führe die Seiten zusammen oder lass seo.canonical auf allen außer einer auf die Seite zeigen, die indexiert werden soll.

Indexierbarkeit

deployment.site ist nicht gesetzt

BLUME_AUDIT_SITE_NOT_SET · Warnung · aus dem gebauten HTML

Behebung: Setze deployment.site in blume.config.ts auf die öffentliche URL der Site.

deployment.site wird erst beim Deployment ermittelt

BLUME_AUDIT_SITE_INFERRED_AT_DEPLOY · Info · aus dem gebauten HTML

Behebung: Prüfe einen produktionsähnlichen Build (z. B. VERCEL=1 VERCEL_PROJECT_PRODUCTION_URL=<host> blume build) oder das Deployment selbst mit --url <origin>. Trage deployment.site nicht fest ein – die Plattform setzt es bei jedem Deployment.

Seite ist noindex, deklariert aber ein Canonical

BLUME_AUDIT_CANONICAL_ON_NOINDEX · Warnung · aus dem gebauten HTML

Behebung: Entferne das Canonical von noindex-Seiten – Google wertet die Kombination als widersprüchlich und ignoriert möglicherweise eine der beiden Angaben.

Entwurfsseite ist im Build

BLUME_AUDIT_DRAFT_PAGE_PUBLISHED · Warnung · aus dem gebauten HTML

Behebung: Baue vor dem Deployment ohne --preview neu oder entferne draft: true, wenn die Seite bereit zur Veröffentlichung ist.

Canonical-URL fehlt

BLUME_AUDIT_CANONICAL_MISSING · Warnung · aus dem gebauten HTML

Behebung: Setze deployment.site, damit Blume absolute Canonical-URLs ausgeben kann.

Nicht-kanonische Seite

BLUME_AUDIT_CANONICAL_NOT_SELF · Info · aus dem gebauten HTML

Behebung: Lass seo.canonical auf diese Seite zeigen oder entferne es, um das standardmäßige Self-Canonical zu verwenden.

Canonical zeigt auf eine kaputte oder weiterleitende Seite

BLUME_AUDIT_CANONICAL_BAD_TARGET · Fehler · aus dem gebauten HTML

Behebung: Lass seo.canonical auf eine Seite zeigen, die existiert und nicht weiterleitet.

Canonical-Protokoll passt nicht zur Site

BLUME_AUDIT_CANONICAL_PROTOCOL_MISMATCH · Fehler · aus dem gebauten HTML

Behebung: Verwende in seo.canonical dasselbe Protokoll wie in deployment.site.

Seite ist nicht indexierbar

BLUME_AUDIT_ROBOTS_META_UNEXPECTED · Info · aus dem gebauten HTML

Behebung: Entferne noindex aus dem Frontmatter der Seite, wenn sie indexiert werden soll.

Seite überschreitet das 2-MB-Crawl-Limit von Googlebot

BLUME_AUDIT_HTML_TOO_LARGE · Fehler · aus dem gebauten HTML

Behebung: Teile die Seite auf – Googlebot hört nach 2 MB auf, ein HTML-Dokument zu lesen.

X-Robots-Tag-Header widerspricht dem Robots-Meta der Seite

BLUME_AUDIT_ROBOTS_HEADER_CONFLICT · Fehler · benötigt --url

Behebung: Entferne den X-Robots-Tag-Header oder gleiche ihn an das Robots-Meta der Seite an.

BLUME_AUDIT_LINK_TO_BROKEN · Fehler · aus dem gebauten HTML

Behebung: Korrigiere das Linkziel oder erstelle die Seite, auf die der Link zeigt.

Ist deployment.base gesetzt, wird hier ein root-relativer Link ohne die Base gemeldet, da der Host dort nichts von diesem Build ausliefert. Eine vollständige URL auf demselben Host außerhalb der Base wird nicht gemeldet: Auf diese Weise verlinkt eine Seite auf eine andere App, die der Host neben der Dokumentation ausliefert.

BLUME_AUDIT_LINK_TO_REDIRECT · Warnung · aus dem gebauten HTML

Behebung: Verlinke direkt auf das Ziel statt über die Weiterleitung.

Verwaiste Seite (nur über die Navigation erreichbar)

BLUME_AUDIT_ORPHAN_PAGE · Warnung · aus dem gebauten HTML

Behebung: Verlinke diese Seite aus dem Body einer verwandten Seite.

BLUME_AUDIT_INTERNAL_LINK_ABSOLUTE · Warnung · aus dem gebauten HTML

Behebung: Verwende einen root-relativen Pfad (/docs/x), damit der Link auch in Previews und mit basePath funktioniert.

BLUME_AUDIT_INTERNAL_LINK_NOFOLLOW · Info · aus dem gebauten HTML

Behebung: Entferne rel="nofollow" – es verhindert, dass diese Seite intern Autorität weitergibt.

Doppelter Schrägstrich in der URL

BLUME_AUDIT_DOUBLE_SLASH_URL · Fehler · aus dem gebauten HTML

Behebung: Prüfe basePath / deployment.base – ein abschließender Schrägstrich dort erzeugt //.

Link-Fragment passt zu keiner ID auf der Zielseite

BLUME_AUDIT_ANCHOR_BROKEN · Warnung · aus dem gebauten HTML

Behebung: Lass das Fragment auf eine Überschrift zeigen, die auf der Zielseite existiert, oder korrigiere die gemeinte Überschrift.

URL enthält Großbuchstaben, Unterstriche oder Leerzeichen

BLUME_AUDIT_URL_STYLE · Info · aus dem gebauten HTML

Behebung: Benenne die Quelldatei in einen kleingeschriebenen Slug mit Bindestrichen um – und füge eine Weiterleitung von der alten URL hinzu, falls sie bereits veröffentlicht war.

Weiterleitungen

Kaputte Weiterleitung

BLUME_AUDIT_REDIRECT_BROKEN · Fehler · aus dem gebauten HTML

Behebung: Lass die Weiterleitung auf eine existierende Seite zeigen.

Weiterleitungsschleife

BLUME_AUDIT_REDIRECT_LOOP · Fehler · aus dem gebauten HTML

Behebung: Durchbrich den Zyklus in redirects – er löst sich nie auf.

Weiterleitungskette

BLUME_AUDIT_REDIRECT_CHAIN · Warnung · aus dem gebauten HTML

Behebung: Lass jeden Zwischenschritt direkt auf das endgültige Ziel zeigen.

Meta-Refresh-Weiterleitung

BLUME_AUDIT_META_REFRESH · Warnung · aus dem gebauten HTML

Behebung: Verwende statt eines Meta-Refresh eine echte Weiterleitung in blume.config.ts.

Weiterleitungsquelle ist auch eine echte Seite

BLUME_AUDIT_REDIRECT_SOURCE_IS_PAGE · Fehler · aus dem gebauten HTML

Behebung: Entferne die Weiterleitung oder lösche die Seite, mit der sie kollidiert – ein Pfad kann nicht beides sein, und welches von beiden Leser erhalten, hängt vom Host ab.

Weiterleitung von HTTPS auf HTTP

BLUME_AUDIT_REDIRECT_TO_HTTP · Fehler · benötigt --url

Behebung: Leite auf die HTTPS-URL weiter.

Live-Site leitet nicht wie konfiguriert weiter

BLUME_AUDIT_REDIRECT_NOT_SERVED · Fehler · benötigt --url

Behebung: Deploye die Weiterleitungsdatei, die dein Host liest (siehe Weiterleitungen in der Deployment-Dokumentation), oder gib den Host in deployment an.

Eine Warnung statt eines Fehlers, wenn die alte URL mit 200 antwortet (die Meta-Refresh-Seite) oder auf ein anderes als das konfigurierte Ziel weiterleitet.

Social Cards

Open-Graph-Tags fehlen oder sind unvollständig

BLUME_AUDIT_OG_INCOMPLETE · Warnung · aus dem gebauten HTML

Behebung: Füge eine description hinzu – Blume füllt die restlichen Open-Graph-Tags für dich aus.

Open-Graph-Bild fehlt

BLUME_AUDIT_OG_IMAGE_MISSING · Warnung · aus dem gebauten HTML

Behebung: Setze deployment.site, um generierte OG-Bilder zu aktivieren, oder setze seo.image auf der Seite.

Open-Graph-Bild ist nicht im Build

BLUME_AUDIT_OG_IMAGE_BROKEN · Warnung · aus dem gebauten HTML

Behebung: Lass seo.image auf eine existierende Datei zeigen oder baue neu – ein totes og:image wird überall, wo die Seite geteilt wird, als leere Card dargestellt.

Open-Graph-Bild ist zu klein für große Cards

BLUME_AUDIT_OG_IMAGE_SMALL · Warnung · aus dem gebauten HTML

Behebung: Verwende ein Bild mit mindestens 1200×630 – kleinere werden unscharf dargestellt oder für Layouts mit kleinen Cards zugeschnitten.

Open-Graph-URL stimmt nicht mit dem Canonical überein

BLUME_AUDIT_OG_URL_MISMATCH · Warnung · aus dem gebauten HTML

Behebung: Gleiche og:url an die Canonical-URL der Seite an.

X-(Twitter-)Card fehlt oder ist unvollständig

BLUME_AUDIT_TWITTER_CARD_INCOMPLETE · Warnung · aus dem gebauten HTML

Behebung: Setze seo.x.handle in blume.config.ts, damit X die Card zuordnen kann.

Internationalisierung

HTML-lang-Attribut fehlt

BLUME_AUDIT_HTML_LANG_MISSING · Fehler · aus dem gebauten HTML

Behebung: Stelle das lang-Attribut an <html> in deinem ejecteten Layout wieder her.

HTML-lang-Attribut ungültig

BLUME_AUDIT_HTML_LANG_INVALID · Fehler · aus dem gebauten HTML

Behebung: Verwende für die Locale einen gültigen BCP-47-Tag (z. B. en, en-GB).

Hreflang und HTML-lang stimmen nicht überein

BLUME_AUDIT_HREFLANG_LANG_MISMATCH · Fehler · aus dem gebauten HTML

Behebung: Das <html lang> der Seite muss zu ihrer eigenen hreflang-Annotation passen.

Hreflang-Annotation ungültig

BLUME_AUDIT_HREFLANG_INVALID · Fehler · aus dem gebauten HTML

Behebung: Verwende in der hreflang-Annotation einen gültigen BCP-47-Tag.

Selbstreferenzierende hreflang-Annotation fehlt

BLUME_AUDIT_HREFLANG_SELF_MISSING · Warnung · aus dem gebauten HTML

Behebung: Die hreflang-Angaben einer Seite müssen eine Selbstreferenz enthalten.

X-default-hreflang-Annotation fehlt

BLUME_AUDIT_HREFLANG_XDEFAULT_MISSING · Info · aus dem gebauten HTML

Behebung: Füge eine x-default-Alternate hinzu, die auf die Seite der Standard-Locale zeigt.

Fehlendes wechselseitiges hreflang (kein Return-Tag)

BLUME_AUDIT_HREFLANG_NO_RETURN_TAG · Fehler · aus dem gebauten HTML

Behebung: Jede Seite in einer hreflang-Gruppe muss auf jede andere zurückverlinken.

Hreflang zeigt auf eine kaputte, weiterleitende oder nicht-kanonische Seite

BLUME_AUDIT_HREFLANG_BAD_TARGET · Fehler · aus dem gebauten HTML

Behebung: Lass die hreflang-Alternate auf eine Seite zeigen, die existiert und kanonisch ist.

Hreflang-Gruppe hat einen Sprachkonflikt

BLUME_AUDIT_HREFLANG_CONFLICT · Fehler · aus dem gebauten HTML

Behebung: Jede Sprache in einer hreflang-Gruppe muss genau eine Seite benennen.

Barrierefreiheit

Diese Checks laufen auf deiner Theme-Konfiguration, nicht auf jeder einzelnen Seite: Eine Theme-Farbe ist eine Entscheidung für die ganze Site. Der Check löst Farben so auf, wie es der Build tut (der Farbton eines Presets für jeden Modus sowie weiße oder dunkle Beschriftungen auf Flächen), und misst jede Textfarbe, die das Theme darstellt, im hellen und dunklen Modus am WCAG-AA-Kontrastverhältnis für Fließtext von 4,5:1.

Theme-Farben verfehlen den WCAG-AA-Kontrast

BLUME_AUDIT_THEME_CONTRAST_LOW · Warnung · aus der Theme-Konfiguration

Behebung: Wähle für den hellen Modus einen dunkleren Farbton oder für den dunklen Modus einen helleren – pro Modus mit theme.accent: { light, dark }.

Geprüft werden Akzenttext auf der Seite, Beschriftungen auf Akzent- und action-Flächen sowie Fließ- und Sekundärtext auf einem eigenen background. Jeder Befund nennt das Farbpaar, den Modus und das Kontrastverhältnis.

Theme-Farbe kann nicht auf Kontrast geprüft werden

BLUME_AUDIT_THEME_COLOR_UNCHECKED · Info · aus der Theme-Konfiguration

Behebung: Gib die Farbe als Hex-Wert, rgb(), hsl(), hwb(), lab(), lch(), oklab(), oklch() oder als benannte Farbe an, damit ihr Kontrast geprüft werden kann.

Assets

Fehlender Alt-Text

BLUME_AUDIT_IMAGE_ALT_MISSING · Warnung · aus dem gebauten HTML

Behebung: Füge einen beschreibenden alt-Text hinzu oder alt="", wenn das Bild dekorativ ist.

Bild kaputt

BLUME_AUDIT_IMAGE_BROKEN · Fehler · aus dem gebauten HTML

Behebung: Korrigiere den Bildpfad oder füge die Datei zu public/ hinzu.

Dateigröße des Assets zu groß

BLUME_AUDIT_ASSET_TOO_LARGE · Warnung · aus dem gebauten HTML

Behebung: Komprimiere das Asset oder liefere ein modernes Format aus (WebP/AVIF).

Bild hat keine width/height

BLUME_AUDIT_IMAGE_MISSING_DIMENSIONS · Warnung · aus dem gebauten HTML

Behebung: Setze width und height, damit der Browser Platz reservieren kann (vermeidet Layout-Verschiebungen).

Referenziertes Skript, Stylesheet oder Asset fehlt im Build

BLUME_AUDIT_SUBRESOURCE_MISSING · Fehler · aus dem gebauten HTML

Behebung: Korrigiere die Referenz oder stelle die fehlende Datei wieder her.

HTTPS/HTTP-Mixed-Content

BLUME_AUDIT_MIXED_CONTENT · Fehler · aus dem gebauten HTML

Behebung: Lade die Subressource über HTTPS – Browser blockieren Mixed Content.

Sitemap

Indexierbare Seite nicht in der Sitemap

BLUME_AUDIT_INDEXABLE_PAGE_NOT_IN_SITEMAP · Warnung · aus dem gebauten HTML

Behebung: Entferne draft/hidden/noindex aus dem Frontmatter der Seite, wenn sie indexiert werden soll. Eine public/sitemap.xml ersetzt die generierte Sitemap – füge die Seite also dort hinzu oder lösche diese Datei.

Noindex-Seite in der Sitemap

BLUME_AUDIT_NOINDEX_IN_SITEMAP · Fehler · aus dem gebauten HTML

Behebung: Eine noindex-Seite sollte nicht in der Sitemap aufgeführt werden.

Nicht-kanonische Seite in der Sitemap

BLUME_AUDIT_NON_CANONICAL_IN_SITEMAP · Fehler · aus dem gebauten HTML

Behebung: Führe in der Sitemap nur kanonische URLs auf.

Sitemap nennt eine Seite, die nicht existiert oder weiterleitet

BLUME_AUDIT_SITEMAP_BAD_URL · Fehler · aus dem gebauten HTML

Behebung: Entferne die URL aus der Sitemap oder baue die Seite, die sie nennt.

Sitemap hat einen Syntaxfehler oder ein falsches Format

BLUME_AUDIT_SITEMAP_INVALID · Fehler · aus dem gebauten HTML

Behebung: Sitemaps müssen gültiges XML im urlset- oder Sitemap-Index-Format von sitemaps.org sein.

Sitemap überschreitet 50 MB oder 50.000 URLs

BLUME_AUDIT_SITEMAP_TOO_LARGE · Fehler · aus dem gebauten HTML

Behebung: Teile die Sitemap auf – die Grenzen liegen bei 50 MB und 50.000 URLs.

lastmod der Sitemap ist ungültig oder liegt in der Zukunft

BLUME_AUDIT_SITEMAP_LASTMOD_INVALID · Warnung · aus dem gebauten HTML

Behebung: Verwende ein echtes W3C-Datum, das nicht in der Zukunft liegt – Suchmaschinen, die eine Sitemap bei falschen Angaben zur Aktualität ertappen, vertrauen ihrem lastmod überhaupt nicht mehr.

Sitemap enthält URLs außerhalb ihres Geltungsbereichs

BLUME_AUDIT_SITEMAP_OUT_OF_SCOPE · Warnung · aus dem gebauten HTML

Behebung: Eine Sitemap darf nur URLs auf ihrem eigenen Origin auflisten.

Sitemap ist nicht erreichbar

BLUME_AUDIT_SITEMAP_NOT_ACCESSIBLE · Fehler · benötigt --url

Behebung: Mach sitemap.xml im Root der Site erreichbar.

robots.txt

robots.txt fehlt

BLUME_AUDIT_ROBOTS_MISSING · Warnung · aus dem gebauten HTML

Behebung: Setze seo.robots: true, um robots.txt zu generieren.

robots.txt hat einen Syntaxfehler

BLUME_AUDIT_ROBOTS_INVALID · Fehler · aus dem gebauten HTML

Behebung: Jede Zeile in robots.txt muss eine Field: value-Direktive oder ein Kommentar sein.

robots.txt sperrt eine Seite, die in der Sitemap steht

BLUME_AUDIT_ROBOTS_DISALLOWS_INDEXABLE · Fehler · aus dem gebauten HTML

Behebung: Eine Seite kann nicht gleichzeitig in robots.txt gesperrt und in der Sitemap aufgeführt sein.

robots.txt sperrt einen einzelnen Crawler für Seiten, die in der Sitemap stehen

BLUME_AUDIT_ROBOTS_BLOCKS_CRAWLER · Warnung · aus dem gebauten HTML

Behebung: Schränke die Regel in der User-agent-Gruppe dieses Crawlers ein oder entferne sie, wenn er diese Seiten lesen soll. Einen KI-Crawler absichtlich auszusperren ist in Ordnung; überspringe in dem Fall diesen Check.

Ein Crawler, der in einer eigenen User-agent-Gruppe genannt wird, folgt nur dieser Gruppe – eine Regel dort (User-agent: GPTBot, gefolgt von Disallow: /) sperrt ihn also aus, während jeder andere Crawler die Seite liest. Das Audit meldet jeden Crawler nur einmal, und zwar bei der Regel, die seine erste Seite blockiert.

robots.txt verweist nicht auf die Sitemap

BLUME_AUDIT_ROBOTS_SITEMAP_MISSING · Info · aus dem gebauten HTML

Behebung: Setze deployment.site, damit robots.txt auf die Sitemap verweisen kann.

robots.txt ist nicht erreichbar

BLUME_AUDIT_ROBOTS_NOT_ACCESSIBLE · Fehler · benötigt --url

Behebung: Mach robots.txt im Root der Site erreichbar.

Auffindbarkeit für KI

llms.txt fehlt im Build

BLUME_AUDIT_LLMS_TXT_MISSING · Warnung · aus dem gebauten HTML

Behebung: Baue neu – agents.llmsTxt ist aktiviert, aber der Build enthält keine llms.txt. Wenn das beabsichtigt ist, setze agents.llmsTxt: false.

llms.txt listet eine Seite, die der Build nicht ausliefert

BLUME_AUDIT_LLMS_TXT_STALE_ENTRY · Warnung · aus dem gebauten HTML

Behebung: Baue neu, damit llms.txt zur Site passt – ein veralteter Eintrag schickt einen KI-Agenten auf eine Seite, die es nicht gibt.

Indexierbare Seite fehlt in llms.txt

BLUME_AUDIT_LLMS_TXT_PAGE_MISSING · Warnung · aus dem gebauten HTML

Behebung: Baue neu, damit llms.txt zur Site passt; wenn die Seite absichtlich ausgeschlossen ist, setze ai.exclude: true in ihrem Frontmatter.

Keine DNS-AID-Records zur Agent-Discovery

BLUME_AUDIT_DNS_AID_MISSING · Info · benötigt --url

Behebung: Veröffentliche bei deinem DNS-Anbieter einen SVCB- oder HTTPS-Record im ServiceMode unter _index._agents.<host>, damit Agenten die Site per DNS finden können (DNS-AID).

DNS-AID-Records sind nicht per DNSSEC authentifiziert

BLUME_AUDIT_DNS_AID_UNSIGNED · Info · benötigt --url

Behebung: Aktiviere DNSSEC für die Zone, damit validierende Resolver authentifizierte DNS-AID-Antworten liefern; falls dein DNS-Anbieter DNSSEC nicht unterstützt, funktionieren die Records auch unsigniert.

Strukturierte Daten

Strukturierte Daten sind kein gültiges JSON

BLUME_AUDIT_JSONLD_INVALID · Fehler · aus dem gebauten HTML

Behebung: Der JSON-LD-Block muss gültiges JSON sein.

Strukturierten Daten fehlen erforderliche Eigenschaften

BLUME_AUDIT_JSONLD_INCOMPLETE · Warnung · aus dem gebauten HTML

Behebung: Jeder JSON-LD-Knoten braucht @context und @type.

Live-Deployment

4XX-Seite

BLUME_AUDIT_HTTP_4XX · Fehler · benötigt --url

Behebung: Die Seite ist verlinkt oder steht in der Sitemap, aber das Deployment liefert für sie einen 404.

5XX-Seite

BLUME_AUDIT_HTTP_5XX · Fehler · benötigt --url

Behebung: Das Deployment liefert auf dieser Seite Fehler.

Zeitüberschreitung

BLUME_AUDIT_HTTP_TIMEOUT · Fehler · benötigt --url

Behebung: Die Seite hat nicht rechtzeitig geantwortet.

Nicht komprimiert

BLUME_AUDIT_NOT_COMPRESSED · Warnung · benötigt --url

Behebung: Aktiviere gzip oder brotli auf dem Host.

Langsame Seite

BLUME_AUDIT_SLOW_RESPONSE · Warnung · benötigt --url

Behebung: Die Seite hat langsam geantwortet.

BLUME_AUDIT_EXTERNAL_LINK_BROKEN · Fehler · benötigt --external

Behebung: Korrigiere oder entferne den ausgehenden Link.

BLUME_AUDIT_EXTERNAL_LINK_REDIRECT · Info · benötigt --external

Behebung: Verlinke direkt auf das Ziel.

Zuletzt aktualisiert am

War diese Seite hilfreich?