Was der RELACON Website-Check prüft

Der Check führt 193 Regeln in vier Bereichen aus. Jede Regel unten erklärt, was gemessen wird, warum es zählt, wie eine Lösung aussieht und woher die Anforderung stammt.

Vier Bereiche

Was abgerufen wird

Die Seite selbst, ihre http- und www-Variante, robots.txt, sitemap.xml, llms.txt, security.txt, Favicon, Web-App-Manifest, eine nicht vorhandene Adresse für den 404-Test, die MTA-STS-Richtlinie, bis zu fünf Bilder und das og:image. Zusätzlich wird die Seite einmal als Googlebot und einmal als GPTBot abgerufen (unser Prüfabruf nennt sich dabei selbst), um Bot-Sperren zu erkennen. DNS-Einträge werden über DNS-over-HTTPS gelesen.

SEO-Grundlagen (64 Prüfungen)

HTTPS

SevereSeite lädt über HTTPSseo.https.loads
Was wird geprüft
Ob die geprüfte Seite erreichbar ist und am Ende über HTTPS ausgeliefert wird.
Warum es zählt
Browser markieren HTTP-Seiten als unsicher, und Google bevorzugt HTTPS. Ohne Verschlüsselung können Dritte Inhalte mitlesen oder verändern.
Beispiel
`https://www.beispiel.at/` statt `http://www.beispiel.at/`
Quelle
web.dev: Why HTTPS matters
SevereHTTP leitet per 301 auf HTTPS umseo.https.redirect
Was wird geprüft
Ob die `http://`-Adresse der Seite dauerhaft (301 oder 308) auf die HTTPS-Adresse weiterleitet.
Warum es zählt
Alte Links und Eingaben ohne `https` landen sonst auf der unverschlüsselten Version. Eine dauerhafte Weiterleitung gibt Suchmaschinen eine klare Haupt-URL.
Beispiel
`http://beispiel.at/` → `301` → `https://beispiel.at/`
Quelle
Google Search Central: Redirects and Google Search
SevereGültiges TLS-Zertifikatseo.https.cert
Was wird geprüft
Ob die HTTPS-Verbindung ohne Zertifikatsfehler aufgebaut werden kann.
Warum es zählt
Bei einem abgelaufenen oder falschen Zertifikat zeigen Browser eine Warnseite, und Crawler brechen den Abruf ab.
Beispiel
Zertifikat für `beispiel.at` und `www.beispiel.at`, automatisch erneuert (z. B. Let's Encrypt).
Quelle
MDN: Transport Layer Security
MediumHSTS gesetztseo.https.hsts
Was wird geprüft
Ob die Antwort den Header `Strict-Transport-Security` enthält.
Warum es zählt
Mit HSTS rufen Browser die Seite nur noch über HTTPS auf, auch wenn jemand `http://` eintippt. Das schließt den ersten unverschlüsselten Aufruf aus.
Beispiel
`Strict-Transport-Security: max-age=63072000; includeSubDomains`
Quelle
MDN: Strict-Transport-Security

Weiterleitungen

Mediumwww/ohne www einheitlichseo.redirect.www
Was wird geprüft
Ob die Variante mit bzw. ohne `www` auf denselben Host führt wie die geprüfte Seite.
Warum es zählt
Liefern beide Varianten Inhalte aus, sieht die Suchmaschine doppelte Seiten, und Signale verteilen sich auf zwei Adressen.
Beispiel
`https://www.beispiel.at/` → `301` → `https://beispiel.at/`
Quelle
Google Search Central: Consolidate duplicate URLs
MediumMax. 2 Weiterleitungs-Sprüngeseo.redirect.hops
Was wird geprüft
Wie viele Weiterleitungen nötig sind, bis die Zielseite antwortet.
Warum es zählt
Jeder Sprung kostet Ladezeit, und langen Ketten folgen Crawler nicht unbegrenzt.
Beispiel
`http://beispiel.at` → `https://beispiel.at/` in einem Schritt statt über `www` und einen Sprachpfad.
Quelle
Google Search Central: Redirects and Google Search
LowKeine 302 für Dauerumleitungseo.redirect.302
Was wird geprüft
Ob auf dem Weg zur Seite eine temporäre Weiterleitung (302 oder 307) vorkommt.
Warum es zählt
Eine temporäre Weiterleitung sagt Suchmaschinen, dass die alte Adresse zurückkommt. Für dauerhafte Umzüge ist 301 oder 308 das klarere Signal.
Beispiel
`HTTP/1.1 301 Moved Permanently` statt `302 Found`
Quelle
Google Search Central: Redirects and Google Search

Indexierbarkeit

SevereKein noindexseo.index.noindex
Was wird geprüft
Ob das robots-Meta oder der Header `X-Robots-Tag` die Anweisung `noindex` enthält.
Warum es zählt
Mit `noindex` erscheint die Seite nicht in Suchergebnissen. Oft bleibt es nach einem Relaunch aus der Testumgebung stehen.
Beispiel
`<meta name="robots" content="index, follow">` oder das Meta ganz weglassen.
Quelle
Google Search Central: Block indexing with noindex
SevereNicht per robots.txt gesperrtseo.index.robotsblocked
Was wird geprüft
Ob eine `Disallow`-Regel in robots.txt den Pfad der Seite für Googlebot sperrt.
Warum es zählt
Gesperrte Seiten kann Google nicht lesen. Sie erscheinen höchstens ohne Beschreibung oder gar nicht.
Beispiel
`User-agent: *` mit `Disallow: /intern/` statt `Disallow: /`
Quelle
Google Search Central: Introduction to robots.txt

Title

SevereTitle vorhandenseo.title.present
Was wird geprüft
Ob die Seite ein nicht leeres `<title>`-Element hat.
Warum es zählt
Der Title ist die Grundlage für die Überschrift im Suchergebnis und den Namen im Browser-Tab.
Beispiel
`<title>Steuerberatung in Graz | Muster GmbH</title>`
Quelle
Google Search Central: Influencing your title links
MediumTitle 30–60 Zeichenseo.title.length
Was wird geprüft
Ob der Title zwischen 30 und 60 Zeichen lang ist.
Warum es zählt
Zu kurze Titles sagen wenig aus, zu lange werden im Suchergebnis abgeschnitten. Google gibt keine feste Grenze vor, der Bereich ist ein Richtwert.
Beispiel
`Steuerberatung in Graz | Muster GmbH` (36 Zeichen)
Quelle
Google Search Central: Influencing your title links
MediumNur ein Title-Elementseo.title.unique
Was wird geprüft
Ob das HTML genau ein `<title>`-Element enthält.
Warum es zählt
Bei mehreren Titles ist unklar, welcher gilt. Das passiert oft, wenn Theme und Plugin beide einen setzen.
Beispiel
Ein einziges `<title>` im `<head>`.
Quelle
MDN: <title> element
LowTitle nicht identisch mit H1seo.title.h1
Was wird geprüft
Ob Title und erste H1 wörtlich gleich sind.
Warum es zählt
Title und H1 haben verschiedene Aufgaben: Der Title wirbt im Suchergebnis, die H1 führt den Leser auf der Seite. Zwei verschiedene Formulierungen nutzen beide Stellen.
Beispiel
Title `Steuerberatung in Graz | Muster GmbH`, H1 `Ihre Steuerberatung in Graz`
Quelle
Google Search Central: Influencing your title links
MediumTitle hat mindestens zwei Wörterseo.title.words
Was wird geprüft
Der Title besteht aus mindestens zwei Wörtern.
Warum es zählt
Ein einzelnes Wort sagt Suchmaschinen kaum, worum es auf der Seite geht.
Beispiel
Falsch: „Startseite“. Richtig: „Webdesign für KMU in Wien“.
Quelle
Google Search Central
LowTitle nennt mehr als die Markeseo.title.notbrand
Was wird geprüft
Der Title enthält neben dem Markennamen ein Thema.
Warum es zählt
Nur der Firmenname im Title wird in Suchergebnissen selten angeklickt.
Beispiel
Falsch: „Muster GmbH“. Richtig: „Steuerberatung Graz | Muster“.
Quelle
Google Search Central

Meta-Beschreibung

MediumMeta-Beschreibung vorhandenseo.meta.present
Was wird geprüft
Ob die Seite ein `<meta name="description">` mit Inhalt hat.
Warum es zählt
Google nutzt die Beschreibung oft als Text unter dem Suchergebnis. Fehlt sie, wählt Google selbst einen Ausschnitt, der nicht immer passt.
Beispiel
`<meta name="description" content="Steuerberatung für Selbstständige in Graz. Erstgespräch kostenlos.">`
Quelle
Google Search Central: Control your snippets in search results
LowMeta-Beschreibung 70–160 Zeichenseo.meta.length
Was wird geprüft
Ob die Meta-Beschreibung zwischen 70 und 160 Zeichen lang ist.
Warum es zählt
Kurze Beschreibungen verschenken Platz im Suchergebnis, lange werden abgeschnitten. Der Bereich ist ein Richtwert, keine Vorgabe von Google.
Beispiel
Zwei kurze Sätze: Angebot, Ort, nächster Schritt.
Quelle
Google Search Central: Control your snippets in search results
MediumMeta-Beschreibung ist kein Platzhalterseo.meta.placeholder
Was wird geprüft
Die Meta-Beschreibung enthält eigenen Text statt eines Platzhalters oder einer CMS-Voreinstellung.
Warum es zählt
Platzhalter erscheinen unverändert in Suchergebnissen und wirken unseriös.
Beispiel
Falsch: „Just another WordPress site“. Richtig: ein Satz über die Seite.
Quelle
Google Search Central
LowMeta-Beschreibung unterscheidet sich vom Titleseo.meta.nottitle
Was wird geprüft
Meta-Beschreibung und Title sind nicht derselbe Text.
Warum es zählt
Zwei gleiche Texte verschenken Platz im Suchergebnis.
Beispiel
Falsch: Title „Muster | Webdesign“ und Beschreibung „Muster - Webdesign“.
Quelle
Google Search Central

Canonical

MediumCanonical vorhandenseo.canonical.present
Was wird geprüft
Ob die Seite ein `<link rel="canonical">` mit Adresse hat.
Warum es zählt
Dieselbe Seite ist oft unter mehreren Adressen erreichbar (mit Parametern, mit Schrägstrich). Das Canonical sagt, welche Adresse in den Index soll.
Beispiel
`<link rel="canonical" href="https://beispiel.at/leistungen/">`
Quelle
Google Search Central: Consolidate duplicate URLs
LowCanonical ist absolutseo.canonical.absolute
Was wird geprüft
Ob das Canonical eine vollständige Adresse mit `https://` und Domain ist.
Warum es zählt
Relative Angaben funktionieren meist, führen aber bei Kopien, Proxys oder falscher Basis-URL schnell auf die falsche Adresse. Google empfiehlt absolute URLs.
Beispiel
`https://beispiel.at/leistungen/` statt `/leistungen/`
Quelle
Google Search Central: Consolidate duplicate URLs
MediumCanonical zeigt auf erreichbare Seiteseo.canonical.self
Was wird geprüft
Ob das Canonical auf dieselbe Domain zeigt wie die geprüfte Seite.
Warum es zählt
Ein Canonical auf eine fremde Domain (z. B. die alte Domain oder die Testumgebung) überträgt die Seite im Index dorthin.
Beispiel
Seite `https://beispiel.at/blog/` mit Canonical `https://beispiel.at/blog/`
Quelle
Google Search Central: Consolidate duplicate URLs
MediumCanonical zeigt auf die ausgelieferte URLseo.canonical.matches
Was wird geprüft
Der Canonical nennt dieselbe Adresse, die der Server ausliefert (Schluss-Slash, Groß-/Kleinschreibung und Standard-Port normalisiert).
Warum es zählt
Zeigt der Canonical auf eine andere Seite, kann Google die falsche Adresse indexieren.
Beispiel
Ausgeliefert: `/kontakt` → `<link rel="canonical" href="/kontakt">`.
Quelle
Google Search Central
LowCanonical ohne Tracking-Parameterseo.canonical.noquery
Was wird geprüft
Der Canonical enthält keine Tracking- oder Session-Parameter; Pagination ist erlaubt.
Warum es zählt
Parameter erzeugen Duplikate derselben Seite.
Beispiel
Falsch: `?utm_source=newsletter`. Richtig: `/produkt`.
Quelle
Google Search Central

Überschriften

MediumGenau eine H1seo.headings.h1
Was wird geprüft
Wie viele `<h1>`-Überschriften die Seite hat.
Warum es zählt
Eine H1 nennt das Hauptthema der Seite. Fehlt sie oder gibt es mehrere, ist für Leser, Screenreader und Suchmaschinen weniger klar, worum es geht.
Beispiel
`<h1>Steuerberatung in Graz</h1>`, darunter `<h2>`-Abschnitte
Quelle
MDN: <h1>–<h6> elements
LowÜberschriften-Reihenfolge ohne Sprüngeseo.headings.order
Was wird geprüft
Ob die Überschriften-Ebenen ohne Sprung aufeinander folgen (z. B. nicht von H2 direkt zu H4).
Warum es zählt
Screenreader-Nutzer springen über Überschriften durch die Seite. Eine lückenlose Gliederung hilft ihnen und macht die Struktur für Maschinen eindeutig.
Beispiel
H1 → H2 → H3 → H2
Quelle
MDN: <h1>–<h6> elements
LowZwischenüberschriften (H2) vorhandenseo.headings.h2
Was wird geprüft
Die Seite gliedert ihren Inhalt mit mindestens einer H2.
Warum es zählt
Zwischenüberschriften helfen Lesern, Screenreadern und Suchmaschinen, den Inhalt zu erfassen.
Beispiel
`<h2>Leistungen</h2>` unter der H1.
Quelle
Google Search Central

Sprache und hreflang

Mediumlang-Attribut am html-Elementseo.lang
Was wird geprüft
Ob das `<html>`-Element ein `lang`-Attribut hat.
Warum es zählt
Die Sprachangabe steuert Aussprache in Screenreadern, Silbentrennung und automatische Übersetzung.
Beispiel
`<html lang="de-AT">`
Quelle
MDN: lang attribute
Lowhreflang gültig (mit x-default)seo.hreflang
Was wird geprüft
Ob vorhandene `hreflang`-Angaben gültige Sprachcodes nutzen und ein `x-default` enthalten. Einsprachige Seiten brauchen keine.
Warum es zählt
Mit hreflang zeigt Google jedem Nutzer die passende Sprachversion. Falsche Codes werden ignoriert, `x-default` fängt alle übrigen Sprachen auf.
Beispiel
`<link rel="alternate" hreflang="de-AT" href="https://beispiel.at/">` und `hreflang="x-default"`
Quelle
Google Search Central: Localized versions of your pages

Open Graph

Mediumog:title vorhandenseo.og.title
Was wird geprüft
Ob die Seite ein `<meta property="og:title">` mit Inhalt hat.
Warum es zählt
LinkedIn, Facebook, Slack und Messenger zeigen og:title als Überschrift der Linkvorschau.
Beispiel
`<meta property="og:title" content="Steuerberatung in Graz">`
Quelle
The Open Graph protocol
Mediumog:description vorhandenseo.og.description
Was wird geprüft
Ob die Seite ein `<meta property="og:description">` mit Inhalt hat.
Warum es zählt
Die Beschreibung erscheint unter der Überschrift der Linkvorschau und entscheidet mit, ob jemand klickt.
Beispiel
`<meta property="og:description" content="Erstgespräch kostenlos, Termine auch online.">`
Quelle
The Open Graph protocol
Mediumog:image erreichbar und ≥ 1200 px breitseo.og.image
Was wird geprüft
Ob ein og:image angegeben ist, ob es sich abrufen lässt und ob es mindestens 1200 px breit ist.
Warum es zählt
Ohne Bild wirkt eine geteilte Seite unscheinbar. Zu kleine Bilder werden als kleine Kachel statt als großes Vorschaubild gezeigt.
Beispiel
`<meta property="og:image" content="https://beispiel.at/og.jpg">` mit 1200×630 px
Quelle
The Open Graph protocol
Lowog:type vorhandenseo.og.type
Was wird geprüft
Die Seite gibt mit `og:type` an, um welche Art Inhalt es sich handelt.
Warum es zählt
Soziale Netzwerke stellen den Inhalt passender dar.
Beispiel
`<meta property="og:type" content="website">`
Quelle
Open Graph protocol
Mediumog:image ist eine vollständige HTTPS-Adresseseo.og.imageabsolute
Was wird geprüft
Das Vorschaubild ist als vollständige https-Adresse angegeben.
Warum es zählt
Relative Adressen und http lösen bei manchen Diensten keine Vorschau aus.
Beispiel
Richtig: `https://example.com/og.jpg`.
Quelle
Open Graph protocol
Lowog:url passt zum Canonicalseo.og.url
Was wird geprüft
`og:url` nennt dieselbe Adresse wie der Canonical, sonst wie die ausgelieferte Seite.
Warum es zählt
Abweichende Adressen erzeugen beim Teilen Duplikate.
Beispiel
`<meta property="og:url" content="https://example.com/seite">`
Quelle
Open Graph protocol
Lowog:image mit Breite und Höheseo.og.imagesize
Was wird geprüft
Breite und Höhe des Vorschaubilds stehen im Head.
Warum es zählt
Ohne Maße lädt die Vorschau später und wird manchmal falsch zugeschnitten.
Beispiel
`og:image:width` 1200 und `og:image:height` 630.
Quelle
Open Graph protocol
Lowog:locale im Format de_ATseo.og.locale
Was wird geprüft
Die Sprache der Seite steht in `og:locale` im Format Sprache_LAND.
Warum es zählt
Plattformen zeigen die Vorschau dann in der richtigen Sprache.
Beispiel
`<meta property="og:locale" content="de_AT">`
Quelle
Open Graph protocol

X-Cards (Twitter)

Lowtwitter:card vorhandenseo.og.twitter
Was wird geprüft
Ob die Seite ein `<meta name="twitter:card">` hat.
Warum es zählt
X (Twitter) wählt mit twitter:card das Format der Vorschau. Mit `summary_large_image` erscheint das Bild groß.
Beispiel
`<meta name="twitter:card" content="summary_large_image">`
Quelle
X Developer Platform: Cards markup
Lowtwitter:card ist summary_large_imageseo.twitter.large
Was wird geprüft
Die Seite nutzt die große Kartenansicht für X/Twitter.
Warum es zählt
Große Karten sind auffälliger und werden häufiger angeklickt.
Beispiel
`<meta name="twitter:card" content="summary_large_image">`
Quelle
Open Graph protocol
Lowtwitter:image vorhanden (oder og:image)seo.twitter.image
Was wird geprüft
Für X/Twitter ist ein Bild angegeben, direkt oder als og:image-Fallback.
Warum es zählt
Ohne Bild entsteht keine Vorschaukarte.
Beispiel
`<meta name="twitter:image" content="https://example.com/og.jpg">`
Quelle
Open Graph protocol

robots.txt

Mediumrobots.txt vorhandenseo.robots.present
Was wird geprüft
Ob unter `/robots.txt` eine Datei mit Status 200 ausgeliefert wird.
Warum es zählt
Crawler fragen die robots.txt zuerst ab. Sie regelt, welche Bereiche gelesen werden dürfen, und verweist auf die Sitemap.
Beispiel
`User-agent: *`, `Allow: /`, `Sitemap: https://beispiel.at/sitemap.xml`
Quelle
RFC 9309: Robots Exclusion Protocol
Lowrobots.txt-Syntax gültigseo.robots.syntax
Was wird geprüft
Ob die robots.txt Zeilen enthält, die keine bekannte Anweisung sind.
Warum es zählt
Crawler überspringen unbekannte Zeilen. Ein Tippfehler wie `Disalow` bewirkt also nichts.
Beispiel
`Disallow: /intern/` statt `Disalow /intern/`
Quelle
Google Search Central: How Google interprets the robots.txt specification
Lowrobots.txt verweist auf Sitemapseo.robots.sitemap
Was wird geprüft
Ob die robots.txt eine `Sitemap:`-Zeile enthält.
Warum es zählt
So finden alle Crawler die Sitemap, auch solche, bei denen Sie sie nicht eingereicht haben.
Beispiel
`Sitemap: https://beispiel.at/sitemap.xml`
Quelle
Google Search Central: Build and submit a sitemap
Lowrobots.txt hat eine Regel für alle Botsseo.robots.wildcard
Was wird geprüft
Die robots.txt enthält eine Gruppe `User-agent: *`.
Warum es zählt
Ohne allgemeine Regel fehlt die Vorgabe für alle nicht genannten Crawler.
Beispiel
`User-agent: *` gefolgt von `Allow: /`.
Quelle
RFC 9309 (robots.txt)

sitemap.xml

Mediumsitemap.xml vorhandenseo.sitemap.present
Was wird geprüft
Ob unter `/sitemap.xml` eine Datei mit Status 200 ausgeliefert wird.
Warum es zählt
Die Sitemap listet alle Seiten, die in den Index sollen. Neue und tief verlinkte Seiten werden damit schneller gefunden.
Beispiel
`<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>https://beispiel.at/</loc></url></urlset>`
Quelle
Google Search Central: Build and submit a sitemap
Mediumsitemap.xml ist gültiges XMLseo.sitemap.valid
Was wird geprüft
Ob die Sitemap mit einer XML-Deklaration, `<urlset>` oder `<sitemapindex>` beginnt.
Warum es zählt
Manche Server liefern unter `/sitemap.xml` eine HTML-Seite aus (z. B. die Startseite oder eine Fehlerseite). Damit können Crawler nichts anfangen.
Beispiel
`<?xml version="1.0" encoding="UTF-8"?>` gefolgt von `<urlset …>`
Quelle
sitemaps.org: Sitemaps XML format
LowSitemap enthält die geprüfte URLseo.sitemap.contains
Was wird geprüft
Ob die geprüfte Seite oder zumindest die Domain in der Sitemap vorkommt.
Warum es zählt
Seiten, die nicht in der Sitemap stehen, werden seltener und später gecrawlt.
Beispiel
`<url><loc>https://beispiel.at/leistungen/</loc></url>`
Quelle
Google Search Central: Build and submit a sitemap
LowSitemap enthält lastmodseo.sitemap.lastmod
Was wird geprüft
Ob die Sitemap `<lastmod>`-Angaben enthält.
Warum es zählt
Google nutzt lastmod, um geänderte Seiten früher neu abzurufen, solange das Datum stimmt.
Beispiel
`<lastmod>2026-10-01</lastmod>` nur bei echter inhaltlicher Änderung
Quelle
Google Search Central: Build and submit a sitemap
LowSitemap und Indexierbarkeit widersprechen sich nichtseo.sitemap.indexconsistent
Was wird geprüft
Eine Seite mit noindex steht nicht in der Sitemap, eine indexierbare Seite schon.
Warum es zählt
Widersprüchliche Signale verwirren Suchmaschinen und kosten Vertrauen.
Beispiel
noindex-Seite aus der Sitemap entfernen oder noindex aufheben.
Quelle
sitemaps.org
MediumSitemap enthält Einträgeseo.sitemap.entries
Was wird geprüft
Die Sitemap listet mindestens eine Adresse oder einen Unterindex.
Warum es zählt
Eine leere Sitemap hilft Suchmaschinen nicht.
Beispiel
`<urlset><url><loc>https://example.com/</loc></url></urlset>`
Quelle
sitemaps.org
LowKeine Pflichtseiten in der Sitemapseo.sitemap.nolegal
Was wird geprüft
Impressum, Datenschutz, AGB, Cookie-Hinweise und Nutzungsbedingungen stehen nicht in der Sitemap.
Warum es zählt
Pflichtseiten sind für Besucher da, nicht als Suchtreffer.
Beispiel
`/impressum` und `/datenschutz` aus der Sitemap nehmen.
Quelle
sitemaps.org

404-Seite

MediumFalsche URL liefert echten 404seo.404.real
Was wird geprüft
Ob eine absichtlich nicht existierende Adresse mit Status 404 antwortet.
Warum es zählt
Liefert eine Fehlerseite Status 200 (Soft-404), hält Google sie für echten Inhalt. Dann landen leere oder doppelte Seiten im Index.
Beispiel
`/gibt-es-nicht` → `HTTP/2 404` mit einer hilfreichen Fehlerseite
Quelle
Google Search Central: Soft 404 errors
Low404-Seite hat Inhaltseo.404.content
Was wird geprüft
Die 404-Seite erklärt die Situation mit ein paar Sätzen.
Warum es zählt
Eine nackte Fehlermeldung lässt Besucher zurück.
Beispiel
„Diese Seite gibt es nicht mehr. Hier geht es zur Startseite.“
Quelle
Google Search Central

URL-Struktur

LowURL ohne Großbuchstaben, Unterstriche, Session-Parameterseo.404.url
Was wird geprüft
Ob der Pfad der Adresse Großbuchstaben oder Unterstriche enthält und ob Session-Parameter in der URL stehen.
Warum es zählt
URLs unterscheiden Groß- und Kleinschreibung, das führt zu doppelten Adressen. Google empfiehlt Bindestriche statt Unterstrichen, und Session-Parameter erzeugen endlos viele Varianten.
Beispiel
`/steuer-beratung/` statt `/Steuer_Beratung/?sid=123`
Quelle
Google Search Central: URL structure best practices
LowSchluss-Slash einheitlichseo.url.trailingslash
Was wird geprüft
Interne Links und die Seite selbst verwenden den Schluss-Slash gleich.
Warum es zählt
Mal mit, mal ohne Slash entstehen zwei Adressen für dieselbe Seite.
Beispiel
Überall `/leistungen` oder überall `/leistungen/`, nicht gemischt.
Quelle
Google Search Central
LowURL ist lesbarseo.url.readable
Was wird geprüft
Der Pfad besteht aus lesbaren Wörtern, nicht aus IDs oder Hashes.
Warum es zählt
Lesbare Adressen werden häufiger angeklickt und sind verständlicher.
Beispiel
Gut: `/blog/kryptosteuer-oesterreich`. Schlecht: `/p/8f14e45f`.
Quelle
Google Search Central

Robots-Meta-Tag

Lowrobots-Angabe vorhandenseo.robotsmeta.present
Was wird geprüft
Die Seite hat ein robots-Meta oder einen X-Robots-Tag.
Warum es zählt
Ohne Angabe gelten Standardwerte; eine Zeile dokumentiert die Absicht.
Beispiel
`<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large">`
Quelle
Google Search Central
MediumKein nofollow im robots-Metaseo.robotsmeta.nofollow
Was wird geprüft
Die Seite verbietet Crawlern nicht, ihren Links zu folgen.
Warum es zählt
`nofollow` auf Seitnebene entwertet alle internen Links und bremst die Indexierung.
Beispiel
Falsch: `index, nofollow`. Richtig: `index, follow`.
Quelle
Google Search Central

Links und Navigation

LowNavigationselement vorhandenseo.nav.present
Was wird geprüft
Die Seite hat ein `<nav>`-Element oder `role="navigation"`.
Warum es zählt
Eine semantische Navigation ist für Screenreader und Crawler klarer.
Beispiel
`<nav aria-label="Hauptnavigation">…</nav>`
Quelle
W3C: WAI-ARIA

KI-Sichtbarkeit (38 Prüfungen)

Snippet-Steuerung

Mediummax-image-preview:large freigegebengeo.snippet.imagepreview
Was wird geprüft
Das robots-Meta oder der X-Robots-Tag erlaubt große Bildvorschauen.
Warum es zählt
Ohne die Freigabe zeigt Google nur kleine Vorschaubilder.
Beispiel
`max-image-preview:large`
Quelle
Google: Snippet-Steuerung
MediumKein data-nosnippet auf dem Hauptinhaltgeo.snippet.datanosnippet
Was wird geprüft
Abschnitte mit `data-nosnippet` umfassen nicht den Hauptinhalt.
Warum es zählt
So markierter Text erscheint in Suchergebnissen und KI-Antworten nicht.
Beispiel
Falsch: `<main data-nosnippet>`. Richtig: nur kleine Randnotizen markieren.
Quelle
Google: Snippet-Steuerung
SevereKein nosnippetgeo.snippet.nosnippet
Was wird geprüft
Ob das robots-Meta die Anweisung `nosnippet` enthält.
Warum es zählt
Mit `nosnippet` darf Google keinen Textauszug zeigen, auch nicht in KI-Übersichten. Die Seite kann dann kaum als Quelle für Antworten dienen.
Beispiel
`<meta name="robots" content="index, follow">` ohne `nosnippet`
Quelle
Google Search Central: Robots meta tag specifications
Mediummax-snippet nicht zu kleingeo.snippet.maxsnippet
Was wird geprüft
Ob `max-snippet` im robots-Meta den Textauszug auf weniger als 50 Zeichen begrenzt.
Warum es zählt
Ein sehr kleiner Wert lässt kaum Text für Suchergebnisse und KI-Antworten übrig. `-1` erlaubt beliebig lange Auszüge.
Beispiel
`<meta name="robots" content="max-snippet:-1">`
Quelle
Google Search Central: Robots meta tag specifications

Antwortfähiger Inhalt

MediumInhalt ohne JavaScript erreichbargeo.content.noscript
Was wird geprüft
Die Seite liefert genug Text im HTML oder einen noscript-Hinweis.
Warum es zählt
Bots ohne JavaScript sehen nur das rohe HTML; ein leerer Container bleibt leer.
Beispiel
`<noscript><p>Bitte aktivieren Sie JavaScript …</p></noscript>` plus serverseitiger Text.
Quelle
Google Search Central
SevereMindestens 300 Wörter Textgeo.content.words
Was wird geprüft
Wie viele Wörter sichtbarer Text im HTML der Seite stehen.
Warum es zählt
KI-Modelle zitieren Seiten, die eine Frage selbst beantworten. Mit wenig Text gibt es dafür kaum Stoff. 300 Wörter sind ein Richtwert, keine Vorgabe von Google.
Beispiel
Eine Leistungsseite mit Beschreibung, Ablauf, Preisen und häufigen Fragen
Quelle
Google Search Central: Creating helpful, reliable, people-first content
SevereInhalt nicht nur per JavaScriptgeo.content.notjs
Was wird geprüft
Ob das rohe HTML (vor dem Ausführen von JavaScript) Text enthält und wie viel Text es im Verhältnis zu Inline-Scripts ist.
Warum es zählt
Viele KI-Crawler führen kein JavaScript aus. Was erst im Browser entsteht, sehen sie nicht.
Beispiel
Server-Side Rendering oder statische Seiten statt eines leeren `<div id="root"></div>`
Quelle
Google Search Central: Understand JavaScript SEO basics
LowFrage-Überschriften mit direkter Antwortgeo.content.qa
Was wird geprüft
Ob auf Überschriften, die als Frage formuliert sind, weiterer Inhalt folgt. Seiten ohne Frage-Überschriften bestehen die Prüfung.
Warum es zählt
KI-Suchen übernehmen gern die Antwort direkt unter einer passenden Frage. Eine Frage ohne Antwort darunter hilft niemandem.
Beispiel
`<h2>Was kostet eine Erstberatung?</h2><p>Die Erstberatung ist kostenlos und dauert 30 Minuten.</p>`
Quelle
Google Search Central: Creating helpful, reliable, people-first content
LowListen oder Tabellen vorhandengeo.content.lists
Was wird geprüft
Ob die Seite Listen (`<ul>`, `<ol>`) oder Tabellen (`<table>`) enthält.
Warum es zählt
Aufzählungen und Tabellen lassen sich leicht lesen und in Antworten übernehmen, etwa Schritte, Preise oder Vergleiche.
Beispiel
`<ol><li>Unterlagen senden</li><li>Erstgespräch</li><li>Angebot</li></ol>`
Quelle
MDN: <ul> element
LowKonkrete Angaben im Textgeo.content.facts
Was wird geprüft
Der Text nennt Zahlen, Jahreszahlen, Prozente oder Namen statt allgemeiner Aussagen.
Warum es zählt
Konkrete Angaben machen Inhalte für KI-Antworten zitierfähig.
Beispiel
„Seit 2014 betreuen wir 120 Mandanten in Wien.“
Quelle
Google Search Central
LowKein Fülltextgeo.content.filler
Was wird geprüft
Der Text verzichtet auf leere Floskeln und Füllphrasen.
Warum es zählt
Füllwörter verwässern die Antwort und werden nicht zitiert.
Beispiel
Falsch: „In der heutigen schnelllebigen Welt ist es wichtig zu beachten …“.
Quelle
Google Search Central
LowAutor erkennbargeo.content.author
Was wird geprüft
Auf Artikelseiten ist ein Autor genannt, im Schema, als Meta-Angabe oder sichtbar.
Warum es zählt
KI-Systeme bevorzugen Inhalte mit klarer Urheberschaft.
Beispiel
`<meta name="author" content="Max Muster">` oder `author` im Article-Schema.
Quelle
Google Search Central

llms.txt

Mediumllms.txt vorhandengeo.llms.present
Was wird geprüft
Ob unter `/llms.txt` eine Datei mit Inhalt ausgeliefert wird.
Warum es zählt
Die llms.txt ist ein Vorschlag für eine kurze Übersicht in Markdown: wer Sie sind und welche Seiten wichtig sind. KI-Assistenten finden so schneller die richtigen Inhalte.
Beispiel
`# Muster GmbH` + `> Steuerberatung in Graz` + `- [Leistungen](https://beispiel.at/leistungen/)`
Quelle
llmstxt.org: The /llms.txt file
Lowllms.txt mit H1 und Kurzbeschreibunggeo.llms.structure
Was wird geprüft
Ob die llms.txt mit einer `# Überschrift` beginnt und einen beschreibenden Absatz enthält.
Warum es zählt
Das Format sieht als Pflicht nur die H1 vor, gefolgt von einer Kurzbeschreibung. Ohne sie fehlt dem Modell der Zusammenhang für die Links.
Beispiel
`# Muster GmbH` und darunter `> Steuerberatung für Selbstständige und KMU in Graz.`
Quelle
llmstxt.org: The /llms.txt file
Lowllms-full.txt vorhanden (Bonus)geo.llms.full
Was wird geprüft
Ob unter `/llms-full.txt` eine Datei mit den vollständigen Inhalten liegt. Die Datei ist freiwillig: Fehlt sie, zählt die Prüfung nicht.
Warum es zählt
Manche Werkzeuge laden die llms-full.txt, um alle Inhalte in einem Stück zu lesen, statt jede verlinkte Seite einzeln abzurufen.
Beispiel
`/llms-full.txt` mit dem Text aller in der llms.txt verlinkten Seiten als Markdown
Quelle
llmstxt.org: The /llms.txt file
Lowllms.txt im Head verlinktgeo.llms.linked
Was wird geprüft
Im Head steht ein alternate-Link mit `type="text/plain"` oder `text/markdown"` auf die llms.txt.
Warum es zählt
KI-Werkzeuge finden die Datei so ohne Raten.
Beispiel
`<link rel="alternate" type="text/plain" href="/llms.txt">`
Quelle
llmstxt.org
Lowllms.txt beginnt mit Name und Kurzbeschreibunggeo.llms.intro
Was wird geprüft
Die Datei beginnt mit einer H1 und einem zitierten Absatz, der das Unternehmen beschreibt.
Warum es zählt
KI-Werkzeuge erkennen so sofort, wer die Seite betreibt.
Beispiel
`# Muster GmbH` und darunter `> Muster GmbH berät kleine Unternehmen in Wien.`
Quelle
llmstxt.org
Lowllms.txt ist reiner Textgeo.llms.plaintext
Was wird geprüft
llms.txt wird als `text/plain` oder `text/markdown` ausgeliefert und enthält kein HTML oder JSON.
Warum es zählt
Nur dann können KI-Werkzeuge die Datei direkt lesen.
Beispiel
Antwort-Header `Content-Type: text/plain; charset=utf-8`.
Quelle
llmstxt.org
Lowllms.txt unter 100 KBgeo.llms.size
Was wird geprüft
Die Datei ist kleiner als 100 KB und wurde vollständig gelesen.
Warum es zählt
Sehr große Dateien werden von Werkzeugen abgeschnitten.
Beispiel
Nur die wichtigsten Seiten und Absätze aufnehmen.
Quelle
llmstxt.org

KI-Crawler in robots.txt

LowKI-Trainings-Botsgeo.crawlers.training
Was wird geprüft
Ob robots.txt Bots sperrt, die Inhalte nur zum Training von Modellen sammeln (CCBot von Common Crawl, Applebot-Extended).
Warum es zählt
Die Sperre ist eine bewusste Entscheidung und kostet wenig: Sie verhindert, dass Ihre Texte in Trainingsdaten landen, nicht dass KI-Suchen Ihre Seite zitieren. Gesperrte Trainings-Bots geben nur einen kleinen Abzug.
Beispiel
`User-agent: CCBot` mit `Disallow: /` sperrt nur Common Crawl.
Quelle
Common Crawl: CCBot
SevereOAI-SearchBot ist erlaubtgeo.bots.oaisearchbot
Was wird geprüft
Der Eintrag prüft, ob robots.txt dem Bot OAI-SearchBot den Zugriff auf die geprüfte Seite erlaubt.
Warum es zählt
OAI-SearchBot liest Seiten für die Suche in ChatGPT.
Beispiel
User-agent: OAI-SearchBot Allow: /
Quelle
OpenAI / Anthropic Crawler-Dokumentation
SevereChatGPT-User ist erlaubtgeo.bots.chatgptuser
Was wird geprüft
Der Eintrag prüft, ob robots.txt dem Bot ChatGPT-User den Zugriff auf die geprüfte Seite erlaubt.
Warum es zählt
ChatGPT-User ruft Seiten auf, wenn jemand im Chat eine Adresse nennt.
Beispiel
User-agent: ChatGPT-User Allow: /
Quelle
OpenAI / Anthropic Crawler-Dokumentation
SevereClaude-User ist erlaubtgeo.bots.claudeuser
Was wird geprüft
Der Eintrag prüft, ob robots.txt dem Bot Claude-User den Zugriff auf die geprüfte Seite erlaubt.
Warum es zählt
Claude-User ruft Seiten im Auftrag eines Nutzers ab.
Beispiel
User-agent: Claude-User Allow: /
Quelle
OpenAI / Anthropic Crawler-Dokumentation
SevereClaude-SearchBot ist erlaubtgeo.bots.claudesearchbot
Was wird geprüft
Der Eintrag prüft, ob robots.txt dem Bot Claude-SearchBot den Zugriff auf die geprüfte Seite erlaubt.
Warum es zählt
Claude-SearchBot baut den Suchindex für Claude.
Beispiel
User-agent: Claude-SearchBot Allow: /
Quelle
OpenAI / Anthropic Crawler-Dokumentation
SeverePerplexityBot ist erlaubtgeo.bots.perplexitybot
Was wird geprüft
Der Eintrag prüft, ob robots.txt dem Bot PerplexityBot den Zugriff auf die geprüfte Seite erlaubt.
Warum es zählt
PerplexityBot liefert die Quellen für Perplexity-Antworten.
Beispiel
User-agent: PerplexityBot Allow: /
Quelle
OpenAI / Anthropic Crawler-Dokumentation
LowGPTBot ist erlaubtgeo.bots.gptbot
Was wird geprüft
Der Eintrag prüft, ob robots.txt dem Bot GPTBot den Zugriff auf die geprüfte Seite erlaubt.
Warum es zählt
GPTBot sammelt Inhalte für das Training von OpenAI-Modellen.
Beispiel
User-agent: GPTBot Allow: /
Quelle
OpenAI / Anthropic Crawler-Dokumentation
LowClaudeBot ist erlaubtgeo.bots.claudebot
Was wird geprüft
Der Eintrag prüft, ob robots.txt dem Bot ClaudeBot den Zugriff auf die geprüfte Seite erlaubt.
Warum es zählt
ClaudeBot sammelt Inhalte für das Training von Anthropic-Modellen.
Beispiel
User-agent: ClaudeBot Allow: /
Quelle
OpenAI / Anthropic Crawler-Dokumentation
LowGoogle-Extended ist erlaubtgeo.bots.googleextended
Was wird geprüft
Der Eintrag prüft, ob robots.txt dem Bot Google-Extended den Zugriff auf die geprüfte Seite erlaubt.
Warum es zählt
Google-Extended steuert, ob Google Inhalte für Gemini nutzt.
Beispiel
User-agent: Google-Extended Allow: /
Quelle
OpenAI / Anthropic Crawler-Dokumentation

Entität

MediumOrganization/Person-JSON-LD vorhandengeo.entity.identity
Was wird geprüft
Ob die Seite JSON-LD vom Typ Organization, Person, ProfessionalService oder LocalBusiness enthält.
Warum es zählt
Damit sagen Sie Maschinen eindeutig, wer hinter der Seite steht. Suchmaschinen und KI-Modelle ordnen Inhalte so dem richtigen Unternehmen zu.
Beispiel
`{"@context":"https://schema.org","@type":"Organization","name":"Muster GmbH","url":"https://beispiel.at"}`
Quelle
Google Search Central: Organization structured data
MediumsameAs mit ≥ 2 Profilengeo.entity.sameas
Was wird geprüft
Wie viele Profile (LinkedIn, X, GitHub, Firmenbuch …) das Entitäts-Schema über `sameAs` verlinkt.
Warum es zählt
sameAs verbindet Ihre Website mit Ihren anderen Auftritten. Das hilft, Sie von Namensvettern zu unterscheiden.
Beispiel
`"sameAs": ["https://www.linkedin.com/company/muster", "https://github.com/muster"]`
Quelle
schema.org: sameAs
LowknowsAbout im Entitäts-Schemageo.entity.knowsabout
Was wird geprüft
Das Organization- oder Person-Schema nennt Themen in `knowsAbout`.
Warum es zählt
So ordnen Suchmaschinen und KI-Assistenten die Entität thematisch ein.
Beispiel
`"knowsAbout": ["Steuern", "Buchhaltung"]`
Quelle
Schema.org
LowLeistungen als Offer ausgezeichnetgeo.entity.offers
Was wird geprüft
Das Entitäts-Schema beschreibt Leistungen mit `makesOffer` oder `hasOfferCatalog`.
Warum es zählt
So versteht Google, welche Leistungen angeboten werden.
Beispiel
`"makesOffer": [{"@type":"Offer","itemOffered":{"@type":"Service","name":"Beratung"}}]`
Quelle
Google: Strukturierte Daten
LowPerson verlinkt ein LinkedIn-Profilgeo.entity.personlinkedin
Was wird geprüft
Eine Person im Schema verweist per sameAs auf ein persönliches LinkedIn-Profil.
Warum es zählt
Das Profil belegt die Identität der Person hinter der Seite.
Beispiel
`"sameAs": ["https://www.linkedin.com/in/max-muster"]`
Quelle
Schema.org

Aktualität

LowAktualitäts-Signal vorhandengeo.freshness
Was wird geprüft
Ob die Seite ein Änderungsdatum angibt: Header `Last-Modified`, `article:modified_time` oder `dateModified`.
Warum es zählt
Bei Fragen zu Preisen, Gesetzen oder Fristen bevorzugen Suchmaschinen und KI-Modelle aktuelle Quellen. Ohne Datum ist die Aktualität nicht erkennbar.
Beispiel
`<meta property="article:modified_time" content="2026-10-01T09:00:00+02:00">`
Quelle
Google Search Central: Influence the byline date
LowSichtbares Datum auf Artikelseitengeo.content.dateshown
Was wird geprüft
Die Artikelseite zeigt ein Veröffentlichungs- oder Änderungsdatum im Text.
Warum es zählt
Ein sichtbares Datum macht die Aktualität prüfbar.
Beispiel
`<time datetime="2026-10-12">12. Oktober 2026</time>`
Quelle
Google Search Central

Strukturierte Daten (29 Prüfungen)

JSON-LD allgemein

MediumMindestens ein JSON-LD-Blockstructured.jsonld.present
Was wird geprüft
Die Seite enthält mindestens einen Block strukturierter Daten als JSON-LD.
Warum es zählt
Strukturierte Daten helfen Suchmaschinen, Inhalte und Entitäten einzuordnen.
Beispiel
`<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization"}</script>`
Quelle
Google: Strukturierte Daten
SevereAlle JSON-LD-Blöcke parsebarstructured.jsonld.parseable
Was wird geprüft
Jeder JSON-LD-Block ist gültiges JSON.
Warum es zählt
Ein Syntaxfehler macht alle Angaben im Block unbrauchbar.
Beispiel
Prüfen Sie den Block mit einem JSON-Validator.
Quelle
Google: Strukturierte Daten
Medium@context schema.orgstructured.jsonld.context
Was wird geprüft
Die Blöcke tragen `@context: https://schema.org`.
Warum es zählt
Ohne Kontext sind die Typen für Suchmaschinen nicht eindeutig.
Beispiel
`"@context": "https://schema.org"`
Quelle
Schema.org
Low@id mit absoluter URLstructured.entity.id
Was wird geprüft
Ob die Hauptentitäten (Organization, Person, WebSite) ein @id haben, das eine absolute URL ist.
Warum es zählt
Ein festes @id macht eine Entität über Seiten hinweg wiedererkennbar. Andere Blöcke können darauf verweisen, statt dieselben Angaben zu wiederholen.
Beispiel
`{"@type":"Organization","@id":"https://muster.at/#organization","name":"Muster GmbH"}`
Quelle
W3C JSON-LD 1.1: Node identifiers
LowinLanguage angegebenstructured.inlanguage
Was wird geprüft
Ob WebSite, WebPage oder Artikel die Sprache des Inhalts mit inLanguage angeben, und ob sie zum lang-Attribut der Seite passt.
Warum es zählt
Die Sprachangabe hilft, den Inhalt der richtigen Sprachversion und Zielgruppe zuzuordnen, besonders bei mehrsprachigen Websites.
Beispiel
`{"@type":"WebSite","name":"Muster GmbH","url":"https://muster.at/","inLanguage":"de-AT"}`
Quelle
schema.org: inLanguage
LowBild-URLs im Schema absolutstructured.image.absolute
Was wird geprüft
Ob alle Bildangaben im JSON-LD (image, logo, thumbnailUrl) vollständige http(s)-Adressen sind.
Warum es zählt
Strukturierte Daten werden oft getrennt von der Seite verarbeitet. Relative Pfade oder data-URIs lassen sich dort nicht sicher auflösen, und das Bild fehlt im Suchergebnis.
Beispiel
`"logo": "https://muster.at/logo.png"` statt `"logo": "/logo.png"`
Quelle
Google Search Central: General structured data guidelines

WebSite

LowWebSite-Schema vorhandenstructured.website.present
Was wird geprüft
Ein WebSite-Schema beschreibt die Website als Ganzes.
Warum es zählt
Es verbindet Seiten mit Name, URL und Sprache.
Beispiel
`{"@type":"WebSite","name":"Example","url":"https://example.com"}`
Quelle
Google: Strukturierte Daten
LowWebSite mit name und urlstructured.website.fields
Was wird geprüft
Das WebSite-Schema enthält `name` und `url`.
Warum es zählt
Beides ist für die Auszeichnung erforderlich.
Beispiel
`{"@type":"WebSite","name":"Example","url":"https://example.com"}`
Quelle
Google: Strukturierte Daten

Breadcrumbs

LowBreadcrumbList auf Unterseitenstructured.breadcrumb
Was wird geprüft
Unterseiten zeichnen ihren Pfad als BreadcrumbList aus.
Warum es zählt
Google kann den Pfad dann in den Suchergebnissen zeigen.
Beispiel
`{"@type":"BreadcrumbList","itemListElement":[…]}`
Quelle
Google: Strukturierte Daten
LowBreadcrumb mit URLsstructured.breadcrumb.urls
Was wird geprüft
Ob jeder Eintrag der BreadcrumbList außer dem letzten mit item auf eine absolute URL zeigt.
Warum es zählt
Google verlangt die URL für jede Ebene außer der aktuellen Seite. Ohne sie kann der Pfad nicht als Navigationspfad im Suchergebnis erscheinen.
Beispiel
`{"@type":"ListItem","position":1,"name":"Leistungen","item":"https://muster.at/leistungen"}`
Quelle
Google Search Central: Breadcrumb structured data
LowBreadcrumb mit mindestens zwei Ebenenstructured.breadcrumb.levels
Was wird geprüft
Ob jede BreadcrumbList mindestens zwei Einträge hat.
Warum es zählt
Ein Pfad mit nur einer Ebene zeigt nicht, wo die Seite in der Website liegt. Google empfiehlt mindestens zwei ListItems.
Beispiel
Start › Leistungen › Buchhaltung
Quelle
Google Search Central: Breadcrumb structured data

Artikel

MediumArticle-Schema vollständig (falls Artikel)structured.article
Was wird geprüft
Artikel nennen `headline`, `author`, `datePublished` und `image`.
Warum es zählt
Das ist die Grundlage für Artikel-Rich-Results.
Beispiel
`{"@type":"Article","headline":"…","author":{…},"datePublished":"2026-10-12","image":"https://…"}`
Quelle
Google: Strukturierte Daten

Weitere Schema-Typen

LowWeitere Schema-Typen vollständigstructured.other
Was wird geprüft
FAQPage, Product, LocalBusiness, Event, Review und VideoObject sind, wenn vorhanden, vollständig.
Warum es zählt
Unvollständige Blöcke erzeugen keine Rich Results.
Beispiel
Pflichtfelder laut Google-Dokumentation je Typ ergänzen.
Quelle
Google: Strukturierte Daten

Organisation und Person

LowOrganization mit name, url, address und sameAsstructured.org.fields
Was wird geprüft
Ob das Organization-Schema (auch Untertypen wie LocalBusiness oder ProfessionalService) Name, Website-Adresse, Postanschrift und sameAs-Profile enthält.
Warum es zählt
Mit diesen Angaben kann Google Ihr Unternehmen eindeutig zuordnen, etwa im Knowledge Panel. sameAs verbindet die Website mit Ihren Profilen auf anderen Plattformen.
Beispiel
`{"@type":"Organization","name":"Muster GmbH","url":"https://muster.at/","address":{"@type":"PostalAddress","streetAddress":"Hauptstraße 1","postalCode":"1010","addressLocality":"Wien","addressCountry":"AT"},"sameAs":["https://www.linkedin.com/company/muster"]}`
Quelle
Google Search Central: Organization structured data
LowPerson-Schemastructured.person.present
Was wird geprüft
Ob die strukturierten Daten eine Person beschreiben, etwa als Autor, Inhaber oder als Hauptthema einer Profilseite. Fehlt sie, zählt das nicht.
Warum es zählt
Bei Beratern, Autorinnen und Einzelunternehmen hilft ein Person-Schema Suchmaschinen und KI-Assistenten, Inhalte einer konkreten Person zuzuordnen.
Beispiel
`{"@type":"Person","name":"Anna Muster","jobTitle":"Steuerberaterin","url":"https://muster.at/team/anna"}`
Quelle
schema.org: Person

FAQPage

LowFAQPage-Schemastructured.faq.present
Was wird geprüft
Ob die Seite ein FAQPage-Schema hat. Fehlt es, zählt das nicht; es ist nur auf Seiten mit echten Fragen und Antworten sinnvoll.
Warum es zählt
Google zeigt FAQ-Ergebnisse seit 2023 nur noch für bekannte Behörden- und Gesundheitsseiten. Klar ausgezeichnete Fragen und Antworten helfen aber Suchmaschinen und KI-Assistenten, Ihre Antworten zu finden und zu zitieren.
Beispiel
`{"@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Was kostet die Erstberatung?","acceptedAnswer":{"@type":"Answer","text":"Das erste Gespräch ist kostenlos."}}]}`
Quelle
Google Search Central: FAQPage structured data
MediumJede FAQ-Frage mit Antwortstructured.faq.answers
Was wird geprüft
Ob jede Question im FAQPage-Schema einen Namen und eine acceptedAnswer mit Text hat.
Warum es zählt
name und acceptedAnswer.text sind Pflichtfelder. Eine Frage ohne Antwort ist für Suchmaschinen wertlos und macht das Schema ungültig.
Beispiel
`"acceptedAnswer": {"@type":"Answer","text":"Wir antworten innerhalb eines Werktags."}`
Quelle
Google Search Central: FAQPage structured data
MediumFAQ-Inhalte auf der Seite sichtbarstructured.faq.visible
Was wird geprüft
Ob jede Frage aus dem FAQPage-Schema und ungefähr ihre Antwort im sichtbaren Text der Seite stehen. Text in Skripten oder mit hidden bzw. display:none gilt als nicht sichtbar.
Warum es zählt
Google verlangt, dass ausgezeichnete Fragen und Antworten für Besucher sichtbar sind. Unsichtbare Inhalte im Schema gelten als irreführend und können zu einer manuellen Maßnahme führen.
Beispiel
Fragen als Überschrift oder `<summary>`, die Antwort direkt darunter im Text.
Quelle
Google Search Central: FAQPage structured data

Bewertungen

LowAggregateRatingstructured.rating.present
Was wird geprüft
Ob die strukturierten Daten eine Gesamtbewertung (AggregateRating) enthalten, auch verschachtelt in Product, LocalBusiness oder ähnlichen Typen. Fehlt sie, zählt das nicht.
Warum es zählt
Echte Bewertungen können als Sterne im Suchergebnis erscheinen. Google erlaubt das nur für bestimmte Typen und nicht für Bewertungen, die ein Unternehmen über sich selbst auf der eigenen Website angibt.
Beispiel
`"aggregateRating":{"@type":"AggregateRating","ratingValue":4.7,"reviewCount":38,"bestRating":5}`
Quelle
Google Search Central: Review snippet structured data
LowBewertung mit ratingValue und Anzahlstructured.rating.fields
Was wird geprüft
Ob jede AggregateRating einen ratingValue und eine Anzahl (reviewCount oder ratingCount) hat.
Warum es zählt
Beides sind Pflichtangaben. Ohne Anzahl lässt sich die Bewertung nicht einordnen, und Google zeigt keine Sterne.
Beispiel
`"ratingValue": 4.7, "reviewCount": 38`
Quelle
Google Search Central: Review snippet structured data
LowbestRating angegebenstructured.rating.best
Was wird geprüft
Ob die Gesamtbewertung die Skala mit bestRating angibt, und ob ratingValue darin liegt.
Warum es zählt
Ohne bestRating nimmt Google eine Skala bis 5 an. Bewerten Sie auf einer anderen Skala, etwa bis 10, wird der Wert sonst falsch dargestellt.
Beispiel
`"ratingValue": 9.1, "bestRating": 10, "worstRating": 1`
Quelle
Google Search Central: Review snippet structured data

Events

LowEvent-Schemastructured.event.present
Was wird geprüft
Ob die Seite Veranstaltungen als Event (oder Untertyp wie BusinessEvent) auszeichnet. Fehlt es, zählt das nicht.
Warum es zählt
Ausgezeichnete Veranstaltungen kann Google in der Ereignissuche mit Datum und Ort zeigen. Das lohnt sich für Seminare, Webinare und Termine.
Beispiel
`{"@type":"Event","name":"Steuer-Update 2027","startDate":"2027-01-20T18:00+01:00","location":{"@type":"Place","name":"Muster GmbH","address":"Hauptstraße 1, 1010 Wien"}}`
Quelle
Google Search Central: Event structured data
LowEvent mit name und startDatestructured.event.fields
Was wird geprüft
Ob jedes Event einen Namen und ein Startdatum im ISO-8601-Format hat.
Warum es zählt
name und startDate sind Pflicht. Ein Datum wie „20. Jänner“ kann eine Maschine nicht sicher lesen; mit Uhrzeit und Zeitzone ist der Termin eindeutig.
Beispiel
`"startDate": "2027-01-20T18:00+01:00"`
Quelle
Google Search Central: Event structured data
LowEvent-Ort mit Adressestructured.event.location
Was wird geprüft
Ob jedes Event einen Ort hat: einen Place mit Adresse oder, bei Online-Veranstaltungen, eine VirtualLocation.
Warum es zählt
Google verlangt location. Bei Präsenzveranstaltungen braucht der Place eine Adresse, sonst kann der Termin nicht für die Umgebungssuche genutzt werden.
Beispiel
`"location":{"@type":"Place","name":"Seminarraum","address":{"@type":"PostalAddress","streetAddress":"Hauptstraße 1","addressLocality":"Wien","postalCode":"1010","addressCountry":"AT"}}`
Quelle
Google Search Central: Event structured data

Video

LowVideoObjectstructured.video.present
Was wird geprüft
Ob Videos auf der Seite als VideoObject ausgezeichnet sind. Fehlt es, zählt das nicht.
Warum es zählt
Mit VideoObject versteht Google, worum es im Video geht, und kann es mit Vorschaubild in der Suche und im Video-Tab zeigen.
Beispiel
`{"@type":"VideoObject","name":"So funktioniert der Import","description":"Zwei Minuten zum CSV-Import.","thumbnailUrl":"https://muster.at/video.jpg","uploadDate":"2026-10-01T09:00:00+02:00"}`
Quelle
Google Search Central: Video structured data
LowVideo mit namestructured.video.name
Was wird geprüft
Ob jedes VideoObject einen Titel (name) hat.
Warum es zählt
name ist Pflicht. Ohne Titel wird das Video nicht als Videoergebnis gezeigt.
Beispiel
`"name": "So funktioniert der Import"`
Quelle
Google Search Central: Video structured data
LowVideo mit descriptionstructured.video.description
Was wird geprüft
Ob jedes VideoObject eine Beschreibung hat.
Warum es zählt
Google empfiehlt eine Beschreibung. Sie sagt Suchmaschinen und KI-Assistenten, was das Video zeigt, auch ohne es abzuspielen.
Beispiel
`"description": "Zwei Minuten zum CSV-Import aus Ihrer Buchhaltung."`
Quelle
Google Search Central: Video structured data
LowVideo mit thumbnailUrlstructured.video.thumbnail
Was wird geprüft
Ob jedes VideoObject ein Vorschaubild über thumbnailUrl angibt.
Warum es zählt
thumbnailUrl ist Pflicht. Ohne Vorschaubild zeigt Google das Video nicht als Videoergebnis.
Beispiel
`"thumbnailUrl": ["https://muster.at/video-16x9.jpg"]`
Quelle
Google Search Central: Video structured data
LowVideo mit uploadDatestructured.video.uploaddate
Was wird geprüft
Ob jedes VideoObject ein Veröffentlichungsdatum im ISO-8601-Format hat, am besten mit Uhrzeit und Zeitzone.
Warum es zählt
uploadDate ist Pflicht. Google empfiehlt die Zeitzone, sonst wird die Uhrzeit nach der Zeitzone des Googlebot gedeutet.
Beispiel
`"uploadDate": "2026-10-01T09:00:00+02:00"`
Quelle
Google Search Central: Video structured data

Technik (62 Prüfungen)

Mobil

Severeviewport-Meta vorhandentech.viewport
Was wird geprüft
Die Seite setzt `<meta name="viewport">`.
Warum es zählt
Ohne Viewport zoomen mobile Browser heraus und die Seite wirkt winzig.
Beispiel
`<meta name="viewport" content="width=device-width, initial-scale=1">`
Quelle
Google: Mobile-freundliche Seiten

Security-Header

MediumContent-Security-Policy gesetzttech.security.csp
Was wird geprüft
Der Header `Content-Security-Policy` ist gesetzt.
Warum es zählt
Eine CSP begrenzt, welche Skripte und Ressourcen geladen werden dürfen.
Beispiel
`Content-Security-Policy: default-src 'self'`
Quelle
MDN: HTTP headers
LowX-Content-Type-Options gesetzttech.security.xcto
Was wird geprüft
Der Header `X-Content-Type-Options: nosniff` ist gesetzt.
Warum es zählt
Er verhindert, dass Browser Dateien falsch interpretieren.
Beispiel
`X-Content-Type-Options: nosniff`
Quelle
MDN: HTTP headers
LowReferrer-Policy gesetzttech.security.referrer
Was wird geprüft
Der Header `Referrer-Policy` ist gesetzt.
Warum es zählt
Er begrenzt, welche Adressen an fremde Seiten weitergegeben werden.
Beispiel
`Referrer-Policy: strict-origin-when-cross-origin`
Quelle
MDN: HTTP headers
LowPermissions-Policy gesetzttech.security.permissions
Was wird geprüft
Der Header `Permissions-Policy` ist gesetzt.
Warum es zählt
Er schaltet Browser-Funktionen wie Kamera und Mikrofon ab.
Beispiel
`Permissions-Policy: camera=(), microphone=(), geolocation=()`
Quelle
MDN: HTTP headers
LowClickjacking-Schutztech.security.clickjacking
Was wird geprüft
Die Seite schützt sich mit `frame-ancestors` oder `X-Frame-Options` vor Einbettung.
Warum es zählt
Sonst kann die Seite unsichtbar in eine fremde Seite eingebettet werden.
Beispiel
`frame-ancestors 'none'` in der CSP oder `X-Frame-Options: DENY`.
Quelle
MDN: HTTP headers
LowCross-Origin-Opener-Policy gesetzttech.security.coop
Was wird geprüft
Der Header `Cross-Origin-Opener-Policy` ist gesetzt.
Warum es zählt
Er trennt Fensterkontexte und erschwert Angriffe über geöffnete Fenster.
Beispiel
`Cross-Origin-Opener-Policy: same-origin`
Quelle
MDN: HTTP headers
LowCross-Origin-Embedder-Policy gesetzttech.security.coep
Was wird geprüft
Der Header `Cross-Origin-Embedder-Policy` ist gesetzt.
Warum es zählt
Er verhindert das Einbetten fremder Ressourcen ohne Freigabe.
Beispiel
`Cross-Origin-Embedder-Policy: credentialless` (oder `require-corp`, wenn keine fremden Ressourcen nötig sind)
Quelle
MDN: HTTP headers
LowCross-Origin-Resource-Policy gesetzttech.security.corp
Was wird geprüft
Der Header `Cross-Origin-Resource-Policy` ist gesetzt.
Warum es zählt
Er begrenzt, wer Ihre Dateien einbinden darf.
Beispiel
`Cross-Origin-Resource-Policy: same-site`
Quelle
MDN: HTTP headers

Caching und Komprimierung

MediumBrotli oder gzip aktivierttech.caching.compression
Was wird geprüft
Textantworten werden mit Brotli, gzip oder zstd komprimiert.
Warum es zählt
Komprimierung spart Übertragungszeit und Datenvolumen.
Beispiel
Der Antwort-Header nennt `content-encoding: br` oder `gzip`.
Quelle
MDN: HTTP caching
LowCache-Control für statische Dateientech.caching.cachecontrol
Was wird geprüft
Statische Dateien tragen ein langfristiges `Cache-Control`.
Warum es zählt
Wiederholte Besuche laden die Dateien dann aus dem Cache.
Beispiel
`Cache-Control: public, max-age=31536000, immutable`
Quelle
MDN: HTTP caching
LowHTML-Größe < 500 KBtech.caching.htmlsize
Was wird geprüft
Die HTML-Antwort bleibt unter 500 KB.
Warum es zählt
Große HTML-Dokumente verzögern den Aufbau und das Parsen.
Beispiel
Inline-CSS und Inline-JS in eigene Dateien auslagern.
Quelle
web.dev
MediumCache-Control für die Hauptantworttech.caching.main
Was wird geprüft
Die HTML-Antwort trägt einen `Cache-Control`-Header.
Warum es zählt
Ohne Angabe entscheiden Browser und CDN unterschiedlich.
Beispiel
`Cache-Control: public, max-age=0, must-revalidate`
Quelle
MDN: HTTP caching
LowÖffentliche Seite ist cachebartech.caching.public
Was wird geprüft
Die Antwort verbietet Zwischenspeicherung nicht unnötig.
Warum es zählt
`no-store` oder `private` bremsen CDN und Browser.
Beispiel
`Cache-Control: public, max-age=300` statt `no-store`
Quelle
MDN: HTTP caching
LowETag vorhandentech.caching.etag
Was wird geprüft
Die Antwort trägt einen `ETag`.
Warum es zählt
Crawler laden unveränderte Seiten dann nicht erneut.
Beispiel
`ETag: "5f3c9a"`
Quelle
MDN: HTTP caching

Bilder

Mediumalt bei allen inhaltlichen Bilderntech.images.alt
Was wird geprüft
Alle inhaltlichen Bilder haben ein `alt`-Attribut.
Warum es zählt
Screenreader und Bildsuche brauchen den Alternativtext.
Beispiel
`<img src="team.jpg" alt="Team bei der Beratung">`
Quelle
Google: Bilder
LowModerne Bildformate (WebP/AVIF)tech.images.format
Was wird geprüft
Rasterbilder liegen in WebP oder AVIF vor; SVG ist ausgenommen.
Warum es zählt
Moderne Formate sind bei gleicher Qualität deutlich kleiner.
Beispiel
`team.webp` statt `team.jpg`.
Quelle
Google: Bilder
Lowwidth/height gesetzttech.images.dimensions
Was wird geprüft
Bilder nennen `width` und `height`.
Warum es zählt
So reserviert der Browser Platz und das Layout springt nicht.
Beispiel
`<img src="team.webp" width="800" height="600" alt="…">`
Quelle
web.dev
Lowloading=lazy unterhalb der ersten Ansichttech.images.lazy
Was wird geprüft
Bilder unterhalb der ersten Ansicht laden mit `loading="lazy"`.
Warum es zählt
Das spart Datenvolumen beim ersten Aufruf.
Beispiel
`<img src="…" loading="lazy" alt="…">` ab dem zweiten Bild.
Quelle
web.dev
LowHero-Bild lädt nicht lazytech.images.herolazy
Was wird geprüft
Das wichtigste sichtbare Bild lädt sofort; auch ein Bild mit fetchpriority=high darf nicht lazy sein.
Warum es zählt
Ein lazy geladenes Hero-Bild verzögert den sichtbaren Aufbau (LCP).
Beispiel
`<img src="hero.jpg" fetchpriority="high">` ohne `loading="lazy"`.
Quelle
web.dev
LowHero-Bild mit fetchpriority=hightech.images.fetchpriority
Was wird geprüft
Das erste inhaltliche Bild trägt `fetchpriority="high"`, direkt oder über ein Preload im Head.
Warum es zählt
Der Browser lädt es dann vor anderen Ressourcen.
Beispiel
`<img src="hero.jpg" fetchpriority="high">` oder `<link rel="preload" as="image" href="hero.jpg" fetchpriority="high">`.
Quelle
web.dev
MediumAlt-Texte beschreiben das Bildtech.images.altquality
Was wird geprüft
Alt-Texte beschreiben das Bild und wiederholen weder Dateinamen noch Platzhalter.
Warum es zählt
Beschreibende Alt-Texte helfen Screenreadern und der Bildsuche.
Beispiel
Falsch: `alt="IMG_1234.jpg"`. Richtig: `alt="Team bei der Beratung"`.
Quelle
Google: Bilder
LowBilder unter 200 KBtech.images.weight
Was wird geprüft
Die geprüften Bilder sind kleiner als rund 200 KB.
Warum es zählt
Große Bilder verlangsamen die Seite besonders auf Mobilfunk.
Beispiel
Bilder komprimieren oder per srcset kleinere Varianten ausliefern.
Quelle
web.dev

Ladezeit

MediumTime to First Byte < 800 mstech.load.ttfb
Was wird geprüft
Der Server antwortet in weniger als 800 ms.
Warum es zählt
Ein schneller erster Byte beschleunigt alle folgenden Schritte.
Beispiel
Caching, CDN oder weniger Arbeit im Backend.
Quelle
web.dev
LowBlockierende Scripts im headtech.load.blockingscripts
Was wird geprüft
Im Head stehen keine blockierenden Skripte ohne `async` oder `defer`.
Warum es zählt
Blockierende Skripte halten den ersten Aufbau auf.
Beispiel
`<script src="app.js" defer></script>`
Quelle
web.dev
LowCSS im Head eingebundentech.load.cssinhead
Was wird geprüft
Stylesheets stehen als `<link rel="stylesheet">` oder `<style>` im Head.
Warum es zählt
CSS im Body verzögert den ersten Aufbau und kann Inhalte springen lassen.
Beispiel
`<link rel="stylesheet" href="/style.css">` im `<head>`.
Quelle
web.dev
MediumAntwortzeit unter 3 Sekundentech.load.responsetime
Was wird geprüft
Der Server antwortet in weniger als drei Sekunden.
Warum es zählt
Langsame Antworten kosten Rankings und Besucher.
Beispiel
Startseite am Rand des Netzes zwischenspeichern (CDN).
Quelle
web.dev

MX und SPF

MediumSPF vorhanden und hart genugtech.email.spf
Was wird geprüft
Die Domain hat einen SPF-Eintrag, der mit `-all` oder `~all` endet.
Warum es zählt
SPF verhindert, dass fremde Server in Ihrem Namen Mail senden.
Beispiel
`v=spf1 include:… -all`
Quelle
Google Search Central
LowMX-Einträge vorhandentech.email.mx
Was wird geprüft
Die Domain hat mindestens einen MX-Eintrag.
Warum es zählt
Ohne MX kann die Domain keine E-Mail empfangen.
Beispiel
`example.com MX 10 mx1.mailanbieter.at.`
Quelle
Google Search Central

DMARC

MediumDMARC mit p=quarantine/rejecttech.email.dmarc
Was wird geprüft
Der DMARC-Eintrag steht auf `p=quarantine` oder `p=reject`.
Warum es zählt
Das schützt den Ruf der Domain gegen Spam und Spoofing.
Beispiel
`v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com`
Quelle
Google Search Central
LowDMARC mit Berichtsadressetech.email.dmarc_rua
Was wird geprüft
Der DMARC-Eintrag nennt `rua=` für Berichte.
Warum es zählt
Ohne Berichte bleibt die Wirkung der Richtlinie unsichtbar.
Beispiel
`rua=mailto:dmarc@example.com`
Quelle
Google Search Central

DKIM

LowDKIM gefundentech.email.dkim
Was wird geprüft
Ein DKIM-Eintrag ist auf einem gängigen Selektor erreichbar.
Warum es zählt
DKIM signiert ausgehende Mail und belegt ihre Herkunft.
Beispiel
`<selector>._domainkey` als TXT mit `v=DKIM1; p=…`.
Quelle
Google Search Central
LowDKIM mit öffentlichem Schlüsseltech.email.dkim_key
Was wird geprüft
Der DKIM-Eintrag enthält einen Schlüssel (`p=`).
Warum es zählt
Ohne Schlüssel kann keine Signatur geprüft werden.
Beispiel
`v=DKIM1; k=rsa; p=MIIBIjANBg…`
Quelle
Google Search Central

MTA-STS

LowMTA-STS vorhandentech.email.mtasts
Was wird geprüft
Eine MTA-STS-Richtlinie ist auf dem Host `mta-sts.<domain>` veröffentlicht.
Warum es zählt
Sie verlangt verschlüsselte Zustellung zwischen Mailservern.
Beispiel
`https://mta-sts.example.com/.well-known/mta-sts.txt` mit `version: STSv1`.
Quelle
RFC 8461 (MTA-STS)
LowMTA-STS im Modus enforcetech.email.mtasts_mode
Was wird geprüft
Die MTA-STS-Richtlinie steht auf `mode: enforce`.
Warum es zählt
Nur dann erzwingen Mailserver verschlüsselte Zustellung.
Beispiel
`mode: enforce`
Quelle
RFC 8461 (MTA-STS)
Low_mta-sts wird angekündigttech.email.mtasts_dns
Was wird geprüft
Ein TXT-Eintrag `_mta-sts` kündigt die Richtlinie an.
Warum es zählt
Ohne den Eintrag finden Mailserver die Richtlinie nicht.
Beispiel
`_mta-sts.example.com TXT "v=STSv1; id=20261018"`
Quelle
RFC 8461 (MTA-STS)
LowMTA-STS mit max_agetech.email.mtasts_maxage
Was wird geprüft
Die Richtlinie nennt `max_age`.
Warum es zählt
Er bestimmt, wie lange Mailserver die Richtlinie zwischenspeichern.
Beispiel
`max_age: 604800`
Quelle
RFC 8461 (MTA-STS)

security.txt

Lowsecurity.txt mit Contact und Expirestech.trust.securitytxt
Was wird geprüft
`/.well-known/security.txt` enthält `Contact` und `Expires`.
Warum es zählt
Sicherheitsforscher wissen so, wohin sie Meldungen schicken.
Beispiel
`Contact: mailto:security@example.com` und `Expires: 2027-12-31T23:59:59.000Z`.
Quelle
RFC 9116 (security.txt)
Lowsecurity.txt mit gültigem Expirestech.trust.securitytxt_expires
Was wird geprüft
`Expires:` liegt in der Zukunft.
Warum es zählt
Ein abgelaufenes Expires macht die Datei laut RFC ungültig.
Beispiel
`Expires: 2027-12-31T23:59:59.000Z`
Quelle
RFC 9116 (security.txt)
Lowsecurity.txt mit Canonicaltech.trust.securitytxt_canonical
Was wird geprüft
`Canonical:` nennt die Adresse der Datei.
Warum es zählt
Mehrere Kopien bleiben so eindeutig zuordenbar.
Beispiel
`Canonical: https://example.com/.well-known/security.txt`
Quelle
RFC 9116 (security.txt)
Lowsecurity.txt mit Preferred-Languagestech.trust.securitytxt_languages
Was wird geprüft
`Preferred-Languages:` nennt die Sprachen des Sicherheitsteams.
Warum es zählt
Meldende wissen, in welcher Sprache sie schreiben können.
Beispiel
`Preferred-Languages: de, en`
Quelle
RFC 9116 (security.txt)

Vertrauen

Analytics und Einwilligung

LowAnalytics erkannttech.analytics.detected
Was wird geprüft
Die Seite bindet Google Analytics, den Tag Manager oder ein datenschutzfreundliches Werkzeug ein.
Warum es zählt
Ohne Messung fehlen Daten für Entscheidungen; das ist ein Hinweis, kein Fehler.
Beispiel
`gtag.js` mit einer Mess-ID oder ein Tag-Manager-Container.
Quelle
Google Search Central
MediumConsent wird vor Analytics gesetzttech.analytics.consentfirst
Was wird geprüft
Die Standard-Einwilligung steht im HTML vor dem Analytics-Loader.
Warum es zählt
Sonst werden Daten ohne Einwilligung erfasst (DSGVO-Risiko).
Beispiel
`gtag('consent','default',{ad_storage:'denied',…})` vor dem Laden von gtag.js.
Quelle
Google Search Central
LowAnalytics blockiert das Rendern nichttech.analytics.async
Was wird geprüft
Analytics-Skripte laden mit `async` oder `defer`, oder der Tag Manager lädt sie nach.
Warum es zählt
Ein blockierendes Skript verzögert den ersten Aufbau.
Beispiel
`<script async src="…/gtag/js">`
Quelle
web.dev
MediumAlle vier Consent-Typen starten auf deniedtech.analytics.denied
Was wird geprüft
`ad_storage`, `analytics_storage`, `ad_user_data` und `ad_personalization` stehen zu Beginn auf `denied`.
Warum es zählt
Das ist die datenschutzfreundliche Voreinstellung; `granted` vor der Einwilligung ist ein Risiko.
Beispiel
`gtag('consent','default',{ad_storage:'denied',analytics_storage:'denied',ad_user_data:'denied',ad_personalization:'denied'});`
Quelle
Google Search Central

Favicon und Icons

LowFavicon vorhandentech.icons.favicon
Was wird geprüft
Die Seite verlinkt ein Icon oder liefert `/favicon.ico`.
Warum es zählt
Das Icon erscheint im Tab und in Lesezeichen.
Beispiel
`<link rel="icon" href="/favicon.ico">`
Quelle
Google Search Central
LowSVG-Favicon verlinkttech.icons.svg
Was wird geprüft
Ein Icon mit `type="image/svg+xml"` ist verlinkt.
Warum es zählt
SVG bleibt in jeder Größe scharf und ist klein.
Beispiel
`<link rel="icon" href="/icon.svg" type="image/svg+xml">`
Quelle
Google Search Central
Lowapple-touch-icon verlinkttech.icons.apple
Was wird geprüft
Ein apple-touch-icon ist verlinkt.
Warum es zählt
iOS nutzt es beim Ablegen auf dem Home-Bildschirm.
Beispiel
`<link rel="apple-touch-icon" href="/apple-touch-icon.png">`
Quelle
Google Search Central

Web-App-Manifest

LowWeb-Manifest verlinkttech.manifest.present
Was wird geprüft
Die Seite verlinkt ein Web-App-Manifest.
Warum es zählt
Das Manifest beschreibt Name, Icons und Startverhalten als App.
Beispiel
`<link rel="manifest" href="/site.webmanifest">`
Quelle
MDN: Web app manifest
LowManifest ist erreichbar und gültigtech.manifest.reachable
Was wird geprüft
Die verlinkte Manifest-Datei antwortet mit 200 und gültigem JSON.
Warum es zählt
Ein kaputter Link erzeugt Fehler und keine App-Metadaten.
Beispiel
`{"name":"Example","icons":[…]}` als Antwort auf die Manifest-URL.
Quelle
MDN: Web app manifest
LowManifest mit maskable Icontech.manifest.maskable
Was wird geprüft
Mindestens ein Icon im Manifest hat `purpose` mit `maskable`.
Warum es zählt
Android schneidet Icons sonst unschön zu.
Beispiel
`{"src":"/icon-512.png","purpose":"any maskable"}`
Quelle
MDN: Web app manifest
Lowtheme-color gesetzttech.themecolor
Was wird geprüft
Die Seite setzt `theme-color`.
Warum es zählt
Mobile Browser färben die Adressleiste passend zur Marke.
Beispiel
`<meta name="theme-color" content="#123456">`
Quelle
MDN: Web app manifest

Barrierefreiheit

LowInteraktive Elemente haben Namentech.a11y.arianames
Was wird geprüft
Links, Buttons und Elemente mit ARIA-Rolle haben einen zugänglichen Namen aus Text, aria-label, aria-labelledby, title, Bild-Alt oder SVG-Titel.
Warum es zählt
Screenreader können namenlose Elemente nicht ansagen.
Beispiel
`<button aria-label="Menü öffnen"><svg></svg></button>`
Quelle
W3C: WAI-ARIA
LowKein fokussierbarer Inhalt unter aria-hiddentech.a11y.ariahidden
Was wird geprüft
Elemente mit `aria-hidden="true"` enthalten keine fokussierbaren Kinder, außer sie sind mit tabindex=-1, disabled oder inert ausgenommen.
Warum es zählt
Sonst landet der Tastaturfokus auf unsichtbaren Elementen.
Beispiel
`<div aria-hidden="true" inert>` für Menüs, die nur visuell versteckt sind.
Quelle
W3C: WAI-ARIA

DNS (CAA)

LowCAA-Eintrag gesetzttech.email.caa
Was wird geprüft
Die Domain erlaubt Zertifizierungsstellen per CAA.
Warum es zählt
CAA verhindert, dass fremde Stellen Zertifikate ausstellen.
Beispiel
`example.com CAA 0 issue "letsencrypt.org"`
Quelle
Google Search Central

Zugang für Bots

SevereSeite ohne Bot-Sperre erreichbartech.bots.no_challenge
Was wird geprüft
Ob unser Abruf der Seite den Inhalt bekommt oder eine Sperrseite einer Firewall (Cloudflare, Sucuri, Akamai, DataDome, PerimeterX, Imperva).
Warum es zählt
Suchmaschinen und KI-Assistenten rufen Seiten ohne Browser ab. Zeigt die Firewall ihnen eine Sperrseite, wird der Inhalt nicht gelesen und nicht zitiert.
Beispiel
Bot-Schutz so einstellen, dass bekannte Crawler (verifizierte Bots) durchgelassen werden, z. B. in Cloudflare „Verified Bots“ erlauben.
Quelle
Google Search Central: Overview of Google crawlers
SevereKeine JavaScript-Prüfung oder CAPTCHA vor dem Inhalttech.bots.no_captcha
Was wird geprüft
Ob vor dem Inhalt ein CAPTCHA (reCAPTCHA, hCaptcha, Turnstile) oder eine Prüfung steht, die erst JavaScript ausführen muss.
Warum es zählt
Crawler lösen keine CAPTCHAs und führen oft kein JavaScript aus. Ein CAPTCHA vor der ganzen Seite sperrt sie aus; in einem Formular ist es dagegen unproblematisch.
Beispiel
CAPTCHA nur im Formular einsetzen, nicht als Eingangsseite.
Quelle
Google Search Central: JavaScript SEO basics
SevereGooglebot bekommt den Inhalttech.bots.googlebot
Was wird geprüft
Wir rufen die Seite zusätzlich mit dem Kennwort Googlebot im User-Agent ab (als RELACON-Prüfabruf gekennzeichnet) und vergleichen das Ergebnis mit unserem normalen Abruf.
Warum es zählt
Manche Firewalls sperren alles, was sich Googlebot nennt, aber nicht von Googles Adressen kommt, andere lassen nur Googlebot durch. Der Vergleich zeigt, ob Crawler anders behandelt werden.
Beispiel
In der Search Console mit der URL-Prüfung testen, ob der echte Googlebot die Seite abrufen kann.
Quelle
Google: Verifying Googlebot
MediumKI-Crawler bekommen den Inhalttech.bots.ai
Was wird geprüft
Wir rufen die Seite mit dem Kennwort GPTBot im User-Agent ab (als RELACON-Prüfabruf gekennzeichnet) und vergleichen das Ergebnis mit unserem normalen Abruf.
Warum es zählt
Viele Bot-Schutz-Dienste sperren KI-Crawler standardmäßig, auch wenn robots.txt sie erlaubt. Dann hilft die Freigabe in robots.txt nicht.
Beispiel
KI-Crawler auch in der Firewall erlauben, bei Cloudflare unter „AI Crawl Control“.
Quelle
OpenAI: Overview of OpenAI crawlers
Mediumrobots.txt trotz Firewall lesbartech.bots.robots
Was wird geprüft
Ob /robots.txt als Text ausgeliefert wird und nicht als Sperrseite der Firewall.
Warum es zählt
Bekommt ein Crawler statt robots.txt eine Sperrseite oder einen Serverfehler, behandelt Google die ganze Website vorsichtshalber als gesperrt.
Beispiel
`/robots.txt` von der Bot-Sperre ausnehmen.
Quelle
Google: How Google interprets robots.txt

Häufige Fragen

Speichert der Check meine Seite?

Über den Bericht hinaus wird kein Inhalt gespeichert. Der Bericht enthält die URL, die Ergebnisse und den Zeitpunkt der Prüfung.

Warum steht bei einer Regel „n. a.“?

n. a. heißt, die Regel trifft auf diese Seite nicht zu, zum Beispiel Video-Regeln auf einer Seite ohne Video. n. a. kostet nie Punkte.

Mehr zum Website-Check

Jetzt prüfen