Methode
So prüfen wir
Ein Prüfwerkzeug, das sein Urteil nicht erklärt, ist eine Blackbox. Deshalb steht hier alles: welche 69 Punkte wir prüfen, ab wann wir warnen, wie die Punktzahl entsteht und was wir bewusst nicht können.
Was passiert, wenn du auf Prüfen klickst
- Wir ergänzen fehlendes https:// und rufen die Adresse ab. Weiterleitungen folgen wir bis zu sechsmal und prüfen jede Station einzeln.
- Parallel holen wir robots.txt, Sitemap, llms.txt, llms-full.txt, ai.txt, agent.json und das Favicon, lesen das SSL-Zertifikat aus, testen die Weiterleitung von http auf https und rufen eine erfundene Adresse auf, um die 404-Seite zu prüfen. Dazu kommen bis zu drei eigene Stylesheets für die Caching- und Schriften-Prüfung.
- Aus diesen Daten berechnen wir die Befunde. Die meisten Seiten sind nach zwei bis zehn Sekunden fertig.
- Danach lassen wir Google PageSpeed Insights die Ladezeit auf einem simulierten Handy messen. Das dauert 15 bis 40 Sekunden und wird auf der Ergebnisseite nachgeladen.
Wir prüfen das HTML, so wie es der Server ausliefert. JavaScript führen wir nicht aus. Das ist Absicht: Genau so sehen die meisten KI-Crawler eine Seite.
Wie die Punktzahl entsteht
Jeder Prüfpunkt hat ein Gewicht von 1 bis 3. Ein bestandener Punkt zählt voll, eine Warnung halb, ein Fehler gar nicht. Reine Hinweise fließen nicht ein. Daraus ergibt sich für jeden der sechs Bereiche eine Punktzahl von 0 bis 100:
Bereich = Summe(Gewicht × Faktor) / Summe(Gewicht) × 100
Die Gesamtnote ist der Durchschnitt der sechs Bereiche. So überstimmt ein Bereich mit vielen Prüfpunkten nicht die anderen. Ab 90 Punkten steht im Protokoll "Sehr gut", ab 75 "Gut", ab 50 "Ausbaufähig", darunter "Kritisch".
Solange die Google-Messung läuft, rechnen wir ohne sie. Die Punktzahl kann sich deshalb nach ein paar Sekunden noch ändern. Fehlt eine Messung ganz, etwa weil Google die Seite nicht messen konnte, steht im Protokoll "Vorläufig" statt einer Note, und jeder Bereich zeigt, wie viele seiner Prüfpunkte tatsächlich gemessen wurden. Nicht Gemessenes zählen wir weder als bestanden noch als Fehler.
Alle Prüfpunkte
Zu jedem Punkt gibt es eine ausführliche Anleitung im Ratgeber.
SEO (17 Punkte)
| Prüfpunkt | Gewicht | Regel |
|---|---|---|
| Seitentitel | 3 | Wir lesen das <title>-Element. 30 bis 60 Zeichen sind gut, kürzer oder länger gibt eine Warnung, fehlt es ganz, ist es ein Fehler. |
| Meta-Description | 3 | Wir lesen <meta name="description">. 120 bis 160 Zeichen sind gut, außerhalb davon gibt es eine Warnung, ohne Beschreibung einen Fehler. |
| H1-Überschrift | 2 | Genau eine <h1> ist gut. Mehrere geben eine Warnung, keine ist ein Fehler. |
| Überschriften-Hierarchie | 1 | Wir prüfen die Reihenfolge von H1 bis H6. Springt die Ebene nach unten um mehr als eine Stufe (etwa H2 auf H4), gibt es eine Warnung. |
| Canonical-Tag | 2 | Wir suchen <link rel="canonical">. Fehlt es, gibt es eine Warnung. Zeigt es auf eine fremde Domain, ist es ein Fehler. |
| Indexierbarkeit | 3 | Wir lesen <meta name="robots"> und den Header X-Robots-Tag. Enthält einer davon noindex, ist es ein Fehler. |
| robots.txt | 2 | Wir rufen /robots.txt ab. Fehlt sie, gibt es eine Warnung. Sperrt sie mit "Disallow: /" alle Suchmaschinen aus, ist es ein Fehler. |
| XML-Sitemap | 2 | Wir suchen die Sitemap über die robots.txt, unter /sitemap.xml und /sitemap_index.xml. Ohne gültige Sitemap ist es ein Fehler. |
| Open-Graph-Tags | 1 | Wir suchen og:title, og:description und og:image. Fehlt eins, gibt es eine Warnung, fehlen alle, einen Fehler. |
| Strukturierte Daten | 2 | Wir suchen JSON-LD-Blöcke und prüfen, ob sie gültiges JSON sind. Ohne strukturierte Daten ist es ein Fehler, mit kaputtem JSON eine Warnung. |
| Mobil-Ansicht | 2 | Wir suchen <meta name="viewport"> mit width=device-width. Fehlt es, ist es ein Fehler. |
| Textumfang | 1 | Wir zählen die sichtbaren Wörter im HTML. Ab 300 ist es gut, 100 bis 299 gibt eine Warnung, unter 100 einen Fehler. |
| Favicon | 1 | Wir suchen ein <link rel="icon"> oder eine /favicon.ico. Fehlt beides, gibt es eine Warnung. |
| Fehlerseite (404) | 1 | Wir rufen eine erfundene Adresse auf deiner Domain ab. Kommt 404 oder 410 zurück, ist alles gut, bei 200 gibt es eine Warnung. |
| Weiterleitungskette | 1 | Wir zählen die Weiterleitungen bis zur Zieladresse. Eine ist in Ordnung, zwei geben eine Warnung, ab drei ist es ein Fehler. |
| Interne Verlinkung | 1 | Wir zählen Links auf derselben Domain. Ab 5 ist es gut, 1 bis 4 gibt eine Warnung, keiner einen Fehler. |
| Sprachversionen (hreflang) | Hinweis | Reiner Hinweis: Wir zeigen, ob hreflang-Angaben gefunden wurden. Das fließt nicht in die Punktzahl ein. |
KI-Sichtbarkeit (10 Punkte)
| Prüfpunkt | Gewicht | Regel |
|---|---|---|
| Zugang für KI-Crawler | 3 | Wir lesen die robots.txt für GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, Claude-SearchBot, PerplexityBot, Google-Extended und CCBot. Ist die ganze Seite für alle gesperrt, ist es ein Fehler, sind einzelne KI-Crawler gesperrt, eine Warnung. |
| Inhalt ohne JavaScript | 3 | Wir zählen die Wörter im ausgelieferten HTML, bevor irgendein Skript läuft. Unter 50 Wörtern ist es ein Fehler, unter 150 eine Warnung. |
| llms.txt | 2 | Wir rufen /llms.txt ab und prüfen, ob echter Text zurückkommt und keine HTML-Seite. Fehlt sie, gibt es eine Warnung. |
| llms-full.txt | 1 | Wir rufen /llms-full.txt ab. Fehlt sie, gibt es eine Warnung, keinen Fehler. |
| ai.txt | 1 | Wir rufen /ai.txt ab. Fehlt sie, gibt es eine Warnung. |
| Firmenangaben als Schema | 2 | Wir suchen in den strukturierten Daten nach Organization, LocalBusiness oder einem verwandten Typ. Fehlt er, ist es ein Fehler. |
| FAQ-Struktur | 1 | Wir suchen ein FAQPage-Schema. Fehlt es, gibt es eine Warnung. |
| Semantisches HTML | 1 | Wir zählen header, nav, main, article, section und footer. Ab drei verschiedenen ist es gut, bei einem oder zwei gibt es eine Warnung, ohne einen Fehler. |
| Kontaktdaten maschinenlesbar | 1 | Wir suchen tel:- und mailto:-Links sowie Adressangaben in den strukturierten Daten. Ohne eins davon gibt es eine Warnung. |
| agent.json | Hinweis | Reiner Hinweis: Wir zeigen, ob /agent.json gefunden wurde. Das fließt nicht in die Punktzahl ein. |
Ladezeit (12 Punkte)
| Prüfpunkt | Gewicht | Regel |
|---|---|---|
| Server-Antwortzeit | 3 | Gemessen von unserem Server in Frankfurt. Unter 600 Millisekunden ist gut, bis 1.500 gibt es eine Warnung, darüber einen Fehler. |
| HTML-Größe | 1 | Wir messen das unkomprimierte HTML. Unter 200 KB ist gut, bis 500 KB gibt es eine Warnung, darüber einen Fehler. |
| Komprimierung | 2 | Wir prüfen den Header Content-Encoding. gzip oder br ist gut, ohne Komprimierung ist es ein Fehler. |
| Blockierende Skripte | 2 | Wir zählen externe Skripte im <head> ohne async, defer oder type="module". Keins ist gut, ein bis zwei geben eine Warnung, ab drei ist es ein Fehler. |
| Moderne Bildformate | 1 | Wir prüfen die Dateiendungen der eingebundenen Bilder. Ist weniger als die Hälfte WebP, AVIF oder SVG, gibt es eine Warnung. |
| Lazy Loading | 1 | Bei mehr als fünf Bildern erwarten wir loading="lazy" an mindestens einem Teil davon. Sonst gibt es eine Warnung. |
| Fremde Skript-Quellen | 1 | Wir zählen die fremden Domains, von denen Skripte geladen werden. Bis 5 ist gut, bis 10 gibt es eine Warnung, darüber einen Fehler. |
| Browser-Caching | 1 | Wir prüfen den Cache-Control-Header einer eigenen CSS- oder JS-Datei. Ab einer Woche oder "immutable" ist es gut, kürzer gibt eine Warnung, ohne Angabe einen Fehler. |
| Google-Performance-Wert | 2 | Messung über Google PageSpeed Insights (mobil). Ab 90 ist es gut, 50 bis 89 gibt eine Warnung, darunter einen Fehler. |
| Hauptinhalt sichtbar (LCP) | 2 | Messung über Google PageSpeed Insights (mobil). Bis 2,5 Sekunden ist gut, bis 4 Sekunden gibt es eine Warnung, darüber einen Fehler. |
| Layout-Verschiebung (CLS) | 2 | Messung über Google PageSpeed Insights (mobil). Bis 0,1 ist gut, bis 0,25 gibt es eine Warnung, darüber einen Fehler. |
| Reaktionszeit (INP) | 1 | Felddaten aus dem Chrome-Nutzerbericht. Bis 200 Millisekunden ist gut, bis 500 gibt es eine Warnung, darüber einen Fehler. Hat Google zu wenig Besucherdaten, ist es nur ein Hinweis. |
Sicherheit (11 Punkte)
| Prüfpunkt | Gewicht | Regel |
|---|---|---|
| HTTPS | 3 | Wir prüfen, ob die Seite am Ende über https ausgeliefert wird. Wenn nicht, ist es ein Fehler. |
| Weiterleitung auf HTTPS | 2 | Wir rufen http:// auf und prüfen, ob dauerhaft auf https weitergeleitet wird. Fehlt die Weiterleitung, ist es ein Fehler. |
| SSL-Zertifikat | 3 | Wir prüfen Gültigkeit und Restlaufzeit. Mehr als 14 Tage ist gut, 14 oder weniger gibt eine Warnung, abgelaufen oder ungültig ist ein Fehler. |
| HSTS | 1 | Wir suchen den Header Strict-Transport-Security mit einem max-age von mindestens sechs Monaten. Fehlt er, gibt es eine Warnung. |
| Content-Security-Policy | 1 | Wir suchen den Header Content-Security-Policy. Fehlt er, gibt es eine Warnung. |
| X-Content-Type-Options | 1 | Wir suchen X-Content-Type-Options: nosniff. Fehlt der Header, gibt es eine Warnung. |
| Schutz vor Clickjacking | 1 | Wir suchen X-Frame-Options oder frame-ancestors in der Content-Security-Policy. Fehlt beides, gibt es eine Warnung. |
| Referrer-Policy | 1 | Wir suchen den Header Referrer-Policy. Fehlt er, gibt es eine Warnung. |
| Gemischte Inhalte | 2 | Wir suchen Skripte, Stylesheets, Bilder und iframes mit http://-Adresse auf einer https-Seite. Skripte und Stylesheets sind ein Fehler, Bilder eine Warnung. |
| Verratene Software-Versionen | 1 | Wir prüfen die Header Server und X-Powered-By auf Versionsnummern. Werden welche verraten, gibt es eine Warnung. |
| Veraltete Software | 1 | Wir suchen jQuery-Versionen unter 3.5 und die WordPress-Versionsangabe im Generator-Tag. Beides gibt eine Warnung. |
Datenschutz & Recht (6 Punkte)
| Prüfpunkt | Gewicht | Regel |
|---|---|---|
| Impressum | 3 | Wir suchen auf der geprüften Seite einen Link mit "Impressum", "Imprint" oder "Anbieterkennzeichnung". Fehlt er, ist es ein Fehler. Den Inhalt des Impressums prüfen wir nicht. |
| Datenschutzerklärung | 3 | Wir suchen einen Link mit "Datenschutz", "Privacy" oder "Datenschutzerklärung". Fehlt er, ist es ein Fehler. Den Inhalt prüfen wir nicht. |
| Cookies vor der Einwilligung | 3 | Wir werten die Cookies aus, die der Server schon beim ersten Aufruf setzt, noch bevor jemand irgendetwas angeklickt hat. Analyse- oder Werbe-Cookies sind ein Fehler. |
| Tracker und Consent-Tool | 3 | Wir suchen bekannte Tracker im Quelltext und bekannte Consent-Tools. Tracker ohne erkennbares Consent-Tool sind ein Fehler. Ob ein vorhandenes Tool richtig blockiert, kann nur ein Test im Browser zeigen. |
| Google Fonts von Google-Servern | 2 | Wir suchen Verweise auf fonts.googleapis.com und fonts.gstatic.com. Gefunden ist es ein Fehler. |
| Eingebettete Fremddienste | 2 | Wir suchen direkt eingebettete iframes und Skripte von YouTube (ohne nocookie), Google Maps, Vimeo, reCAPTCHA und sozialen Netzwerken. Gefunden gibt es eine Warnung. |
Barrierefreiheit (13 Punkte)
| Prüfpunkt | Gewicht | Regel |
|---|---|---|
| Sprachangabe | 2 | Wir suchen das lang-Attribut am <html>-Element und prüfen, ob es ein gültiger Sprachcode ist. Fehlt es, ist es ein Fehler. |
| Alternativtexte für Bilder | 3 | Wir prüfen jedes <img> auf ein alt-Attribut. Ein leeres alt="" gilt für Schmuckbilder als richtig. Fehlt es bei bis zur Hälfte der Bilder, gibt es eine Warnung, darüber einen Fehler. |
| Beschriftete Formularfelder | 3 | Wir prüfen jedes Eingabefeld auf ein <label>, aria-label oder aria-labelledby. Ein unbeschriftetes Feld gibt eine Warnung, ab drei ist es ein Fehler. |
| Verständliche Linktexte | 2 | Wir suchen Links ohne erkennbaren Text und Links mit Allerweltstexten wie "hier" oder "mehr". Leere Links sind ein Fehler, Allerweltstexte eine Warnung. |
| Beschriftete Schaltflächen | 2 | Wir suchen <button>-Elemente ohne Text, aria-label oder title. Einer gibt eine Warnung, ab drei ist es ein Fehler. |
| Zoomen erlaubt | 3 | Wir prüfen den Viewport auf user-scalable=no oder ein maximum-scale unter 2. Gefunden ist es ein Fehler. |
| Seitenbereiche (Landmarks) | 1 | Wir suchen main, nav, header und footer (oder die passenden ARIA-Rollen). Fehlt main, ist es ein Fehler, fehlen andere, eine Warnung. |
| Sprunglink zum Inhalt | 1 | Wir suchen am Seitenanfang einen Link auf einen Anker wie #main oder #inhalt. Fehlt er, gibt es eine Warnung. |
| Titel für eingebettete Inhalte | 1 | Wir prüfen jedes <iframe> auf ein title-Attribut. Fehlt es, gibt es eine Warnung. |
| Eindeutige IDs | 1 | Wir suchen id-Attribute, die mehrfach vorkommen. Gefunden gibt es eine Warnung. |
| Tab-Reihenfolge | 1 | Wir suchen tabindex-Werte größer als 0. Gefunden gibt es eine Warnung. |
| Erklärung zur Barrierefreiheit | 1 | Wir suchen einen Link mit "Barrierefreiheit" oder "Accessibility". Fehlt er, gibt es eine Warnung. Ob du unter das Gesetz fällst, prüfen wir nicht. |
| Farbkontraste | 2 | Messung über Google Lighthouse. Erfüllen alle Texte das Kontrastverhältnis von 4,5 zu 1, ist es gut, sonst ein Fehler. |
Unser Prüf-Server
Die Abrufe kommen von Servern in Frankfurt am Main (der zweite Messpunkt des Down-Checkers steht in den USA). Unser Prüf-Server meldet sich mit dieser Kennung:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36 checkfrei/1.0 (+https://checkfrei.de/so-pruefen-wir)
Wer nicht geprüft werden möchte, sperrt die Kennung "checkfrei" in seiner Firewall. Eine Prüfung löst etwa ein Dutzend Abrufe aus, je Datei einen. Prüft jemand dieselbe Adresse innerhalb von zehn Minuten erneut, zeigen wir das gespeicherte Ergebnis und sagen das im Protokoll auch dazu. Mit "Jetzt neu prüfen" geht es sofort frisch, frühestens 30 Sekunden nach der letzten Prüfung derselben Adresse. Adressen im lokalen Netz, private IP-Bereiche und Cloud-Metadaten-Adressen rufen wir grundsätzlich nicht ab.
Was der Check nicht kann
Eine hohe Punktzahl heißt: Die häufigen technischen Fehler, die sich automatisch erkennen lassen, haben wir nicht gefunden. Sie ist keine Freigabe. Die W3C-Initiative WAI schreibt dazu, dass Werkzeuge nicht alle Aspekte der Barrierefreiheit automatisch prüfen können und menschliches Urteil nötig ist (Selecting Web Accessibility Evaluation Tools). Für Datenschutz gilt dasselbe: Ob eine Seite rechtlich in Ordnung ist, entscheidet kein Prüfprogramm.
Bewusst nicht geprüft
- Keinen kompletten Crawl aller Unterseiten. Geprüft wird die eingegebene Seite plus die Dateien auf Domain-Ebene.
- Keine Inhalte von Impressum und Datenschutzerklärung. Wir sehen, ob sie verlinkt sind, nicht ob sie vollständig sind.
- Kein Verhalten nach dem Klick auf einen Cookie-Banner. Wir prüfen den ersten Aufruf vor jeder Einwilligung.
- Keine Keywords, Rankings oder Backlinks. Dafür braucht es große Datenbanken, die wir nicht haben.
- Keine Sicherheitslücken in Plugins oder Passwörtern. Das ist kein Penetrationstest.
- Barrierefreiheit nur, soweit sie sich automatisch erkennen lässt. Ob ein Alternativtext sinnvoll ist, beurteilt nur ein Mensch.
Fehler im Check gefunden? Schreib an hallo@caz.de. Wir korrigieren Prüfregeln, wenn sie falschliegen, und schreiben es auf diese Seite.