SEO & GEO Analyzer — Manual

Vollständige Funktionsbeschreibung des SEO & GEO Analyzers: URL-Eingabe, Architektur, das doppelte Score-System mit allen Gewichtungen, jeder Analyse-Tab und die Betriebsgrenzen.

Zurück zur Übersicht: SEO & GEO Analyzer · Tool live öffnen: www.jpkc.com/tools/seo/

Dieses Manual beschreibt den SEO & GEO Analyzer vollständig: was beim Analysieren einer URL passiert, wie die beiden Scores im Detail entstehen, was jeder einzelne Bereich des Berichts prüft und welche technischen Grenzen gelten. Die Oberfläche des Tools ist auf Englisch — die Tab- und Button-Bezeichnungen werden hier deshalb in ihrer englischen Original-Schreibweise genannt (mit deutscher Erläuterung), damit du dich im echten Interface zurechtfindest.

URL-Eingabe und Ablauf

Der Analyzer ist ein Einzelseiten-Analyzer: pro Durchlauf wird genau eine URL untersucht, kein Crawl über die ganze Domain. Du fügst oben in das Eingabefeld (https://example.com/page) eine absolute http(s)-Adresse ein und klickst auf Analyze. Erlaubt ist genau eine absolute URL pro Lauf; es gibt keinen Sitemap- oder Batch-Modus.

Ab dann läuft ein hybrider Prozess in vier Schritten:

  1. Serverseitiger Abruf (PHP-Proxy). Dein Browser darf eine fremde Seite aus Sicherheitsgründen nicht direkt laden (CORS), deshalb holt ein serverseitiger Proxy die Daten per cURL: die Seite selbst (finales HTML, Response- und Roh-Header, SSL-Zertifikat, Redirect-Kette, Timing), die robots.txt und die llms.txt. Diese drei Abrufe laufen parallel.
  2. Parsing im Browser. Das abgerufene HTML wird lokal in deinem Browser per DOMParser zerlegt. Die eigentliche Analyse passiert also auf deinem Rechner, nicht auf dem Server.
  3. Datenaufbereitung. Aus dem geparsten Dokument werden die einzelnen Datengruppen extrahiert: Meta-Daten, Links, Bilder, strukturierte Daten, Performance-Werte, Barrierefreiheit, Content und semantische Struktur.
  4. Bewertung und Anzeige. Aus diesen Daten werden der SEO- und der GEO-Score berechnet, und der Bericht rendert in seine Tabs.

Expert Mode (optional)

Es gibt einen optionalen Expert Mode mit einem lokalen Proxy: Statt über den JPKCom-Server holt dann ein selbst betriebener lokaler Proxy auf http://127.0.0.1:<port> die Seite. Dieser Pfad kann einen eigenen Accept: text/markdown-Header mitschicken und so die Markdown-Content-Negotiation der Zielseite prüfen — etwas, das der serverseitige Proxy nicht kann. Dieses eine Signal ist deshalb Expert-Mode-exklusiv und rein informativ. Die Einrichtung des lokalen Proxys ist fortgeschritten und für den normalen Betrieb nicht nötig.

Architektur: serverseitiger Abruf, Analyse im Browser

Wichtig für Verständnis und Datenschutz: Die analysierte Seite wird vom JPKCom-Server abgerufen, nicht von deinem Browser. Die Zielseite sieht also einen Request vom JPKCom-Server (mit dessen User-Agent), nicht deine IP-Adresse.

Die beiden serverseitigen Endpunkte (ein Fetch-Proxy und ein token-basierter interner Endpunkt zur Authentifizierung) sind kein öffentliches API, das du selbst aufrufen kannst — sie werden ausschließlich vom JavaScript des Tools genutzt und sind gegen Missbrauch gehärtet. Praktisch relevant sind vor allem die daraus folgenden Betriebsfakten:

  • SSRF-Schutz: Jeder Redirect-Hop wird erneut geprüft; private, lokale und interne IP-Adressen werden blockiert. Nur HTTP und HTTPS sind als Protokolle erlaubt.
  • Abruf-Grenzen: maximal 10 Redirect-Hops pro Seite (Schleifen werden erkannt), Seiten-Timeout 15 s, robots.txt/llms.txt und Per-Hop-Checks 10 s.
  • Größenlimit: maximal 1 MB Body — größeres HTML wird abgeschnitten.
  • Rate-Limit: Der URL Status Check (prüft auf Wunsch den HTTP-Status einer einzelnen URL) ist auf 1 Anfrage pro ~2 Sekunden pro IP begrenzt; darüber kommt ein HTTP 429 zurück.

Diese Grenzen erklären auch das Degradieren: Nicht-2xx-Seiten werden trotzdem analysiert, fallen aber niedrig aus; lässt sich das HTML nicht parsen, sind DOM-abhängige Auswertungen leer und die meisten On-Page-Prüfungen schlagen fehl. Fehlende robots.txt/llms.txt (404) lassen nur die jeweiligen Prüfungen fehlschlagen, der Lauf geht weiter.

Das Score-System

Der Analyzer berechnet zwei voneinander unabhängige Scores — den SEO-Score und den GEO-Score — beide normiert auf 0–100 und je als runde Anzeige (Gauge) dargestellt.

Wie ein Score entsteht

Beide Scores funktionieren nach demselben Mechanismus: Jeder Score ist die Summe gewichteter Einzelprüfungen. Jede Prüfung ist ein Objekt aus Kategorie, Name, maximalen Punkten (points), erreichten Punkten (earned), Status und einer Notiz. Der Endwert ist:

score = Math.round(totalEarned / totalMax * 100)

Es gibt keinen separaten Gewichtungs-Wert — der ganzzahlige points-Wert ist die Gewichtung. Das Maximum (maxScore) ist dynamisch, weil manche Prüfungen nur unter Bedingungen überhaupt hinzukommen (z. B. nur bei vorhandenen hreflang-Einträgen). Deshalb wird ein Score immer als Prozentwert ausgegeben, nie nur als rohe Punktzahl.

Status-Werte: pass, partial, fail — beim GEO-Score zusätzlich info für rein informative 0-Punkte-Prüfungen, die den Score nicht verändern.

Gauge-Bänder und Buchstabennote

Zur schnellen Einordnung gibt es zwei Skalen, identisch für SEO und GEO:

  • Gauge-Farbe: Score ≥ 80 → grün, Score ≥ 50 → gelb, sonst rot.
  • Buchstabennote: ≥ 90 → A, ≥ 80 → B, ≥ 60 → C, ≥ 40 → D, sonst F.

Die GEO-Gauge trägt zusätzlich ein Label im Stil „Grade X · erreichte/maximale Punkte · AI citation readiness".

SEO-Score — alle Prüfungen

Das SEO-Maximum liegt mit allen bedingten Prüfungen bei etwa 119 Punkten, ohne die vier bedingten Prüfungen bei etwa 107 — ausgegeben wird immer /100. Die Prüfungen nach Kategorie (in Klammern die maximalen Punkte):

Technical

  • HTTPS (5) — 5 Punkte bei HTTPS, sonst 0.
  • Valid SSL Certificate (4) — 4 Punkte, wenn das Zertifikat gültig ist.
  • HTTP 200 Status (5) — Statuscode 200–299.
  • Redirects ≤ 1 (3) — ≤ 1 Hop → 3, ≤ 2 → 1 (partial), sonst 0.
  • HTTP/2+ (2) — HTTP/2 oder /3 → 2, sonst 0/partial.
  • TTFB < 500 ms (4) — < 200 ms → 4, < 500 ms → 2 (partial), sonst 0.
  • Security Headers ≥ 4 (3) — ≥ 4 → 3, ≥ 2 → 1, sonst 0; geprüft wird ein Set von 8 Headern (HSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, Cross-Origin-Opener-Policy, Cross-Origin-Resource-Policy).
  • No Mixed Content (3, bedingt: nur bei HTTPS und verfügbarem DOM) — 0 Vorkommen → 3, ≤ 3 → 1, sonst 0.

On-Page

  • Title (50–60 chars) (8) — 50–60 Zeichen → 8, 30–70 → 4, sonst 0.
  • Meta Description (70–160 chars) (8) — 70–160 Zeichen → 8, vorhanden → 4, sonst 0.
  • Single H1 Heading (5) — genau 1 → 5, > 1 → 2, keine → 0.
  • Heading Hierarchy (3) — keine übersprungenen Ebenen → 3, ≤ 2 → 1, sonst 0.
  • Canonical URL (3).
  • Page Indexable (5) — kein noindex (Meta/X-Robots-Tag) und durch robots.txt erlaubt.
  • Viewport Meta Tag (2).
  • HTML Language (2) — <html lang> gesetzt.
  • Structured Data (2) — irgendein JSON-LD mit Daten.
  • hreflang Valid (3, bedingt: nur bei vorhandenen hreflang-Einträgen) — 0 Fehler/0 Warnungen → 3, 0 Fehler → 1, sonst 0.
  • Keyword Consistency (3, bedingt: nur wenn ein Titel da ist) — prüft, ob bis zu 5 signifikante Titel-Wörter (Länge ≥ 4) in H1/Description/URL auftauchen; Trefferquote ≥ 0,6 → 3, ≥ 0,3 → 1, sonst 0.

Crawling

  • robots.txt Accessible (3).
  • Allowed by robots.txt (4) — erlaubt → 4, keine robots.txt → 2 (partial), blockiert → 0.
  • Sitemap in robots.txt (3) — mindestens eine Sitemap:-Direktive.

Social

  • Open Graph Tags (≥ 4) (4) — ≥ 4 → 4, ≥ 2 → 2, > 0 → 1, sonst 0.
  • OG Image (3) — og:image vorhanden.
  • OG Completeness (4 essential) (3, bedingt: Meta vorhanden) — die vier Essentials og:title, og:description, og:image, og:url; alle 4 → 3, ≥ 2 → 1, sonst 0.
  • Twitter / X Card (3) — twitter:card vorhanden.

Performance

  • Page Size < 500 KB (3) — < 500 KB → 3, 500 KB–1 MB → 1, sonst 0.
  • HTTP Compression (2) — irgendein Content-Encoding (meldet gzip/brotli + Transfergröße).
  • No Render-Blocking Resources (3) — 0 → 3, ≤ 2 → 1, sonst 0.

Accessibility

  • Images Have Alt Text (4) — alle alt vorhanden → 4, ≤ 20 % fehlen → 2, sonst 0.
  • ARIA Landmarks (main present) (2) — ein <main> existiert.
  • No Empty Anchors (3) — 0 → 3, ≤ 2 → 1, sonst 0.

Content

  • Word Count ≥ 300 (3) — ≥ 300 → 3, ≥ 100 → 1, sonst 0.
  • Readability ≥ 60 (Standard) (2) — Flesch ≥ 60 → 2, ≥ 40 → 1, sonst 0.
  • Text/HTML Ratio ≥ 5% (1) — ≥ 5 % → 1, sonst 0.

GEO-Score — alle Prüfungen

Das GEO-Maximum (ohne die zwei 0-Punkte-info-Prüfungen) ist 40 Punkte, verteilt auf vier Kategorien: Structured Data 13 + AI Discoverability 11 + Content Structure 11 + Machine Readability 5. Ausgegeben wird auch hier /100.

Structured Data

  • JSON-LD Present (4).
  • Schema Variety (3) — ≥ 3 Typen → 3, ≥ 2 → 2, ≥ 1 → 1, sonst 0 (sammelt alle @type rekursiv).
  • FAQ Schema (3) — FAQPage vorhanden.
  • Author / Organization Schema (3) — Person/Organization oder ein author-Feld (E-E-A-T-Signal).

AI Discoverability

  • llms.txt Present (3) — HTTP 2xx und nicht-leerer Inhalt.
  • llms.txt Valid Structure (2) — 0 Fehler/0 Warnungen → 2, 0 Fehler → 1, sonst 0.
  • AI Crawlers Allowed (3) — geprüft gegen 9 namentliche Crawler (GPTBot, ChatGPT-User, OAI-SearchBot, Google-Extended, Claude-Web, ClaudeBot, anthropic-ai, PerplexityBot, CCBot); 0 blockiert → 3, ≤ 3 → 2, ≤ 6 → 1, sonst 0. Keine robots.txt zählt als „alle erlaubt".
  • Content Signals Declared (0 Punkte, nur info) — parst Content-Signal aus robots.txt oder HTTP-Header und meldet einen Konflikt, wenn die Signale KI willkommen heißen, die Robots-Regeln KI-Crawler aber blockieren. Verändert den Score nie.
  • Markdown Alternate Link (1) — <link rel="alternate" type="text/markdown">.
  • Markdown via Content Negotiation (0 Punkte, nur info, Expert-Mode-only) — nur vorhanden, wenn die Markdown-Negotiation-Probe gelaufen ist.
  • Open Graph Tags (≥ 4) (2) — ≥ 4 → 2, ≥ 2 → 1, sonst 0.

Content Structure

  • Content Depth (≥ 500 words) (3) — ≥ 500 → 3, ≥ 300 → 2, ≥ 100 → 1, sonst 0.
  • Clean Heading Hierarchy (3) — genau 1 H1 + ≥ 1 H2 → 3, einzelne H1 → 2, irgendeine H1 → 1, sonst 0.
  • Consecutive Heading Levels (1) — keine übersprungenen Ebenen.
  • Short Paragraphs (avg < 150 words) (2) — < 150 → 2, < 250 → 1, sonst 0.
  • Lists & Tables Present (2) — Listen +1, Tabellen +1.

Machine Readability

  • HTML Language Attribute (1).
  • Semantic HTML Elements (2) — ≥ 5 → 2, ≥ 2 → 1, sonst 0.
  • Images Have Alt Text (2) — alle → 2, ≤ 20 % fehlen → 1, sonst 0.

Die Analyse-Bereiche im Detail

Der Bericht ist als Tab-Leiste aufgebaut und deckt rund zwei Dutzend Bereiche ab (die offizielle Marketing-Zeile spricht von „19 analysis modules"; je nach Zählung der beiden Guides und des Export-Tabs kommt man auf rund 20 Tabs). Jeder Bereich ist unten ein eigener Abschnitt — mit seinem englischen Original-Label.

Overview

Das Übersichts-Dashboard: Status-, Score- und GEO-Badges, HTTP-Version, Seitengröße, TTFB, Redirect-Anzahl, die wichtigsten On-Page-Werte (Titel, Description, H1, strukturierte Daten), Karten für SSL- und Robots-Zusammenfassung, eine „Page Info"-Tabelle und eine „Issues & Warnings"-Liste. Hier liest du auf einen Blick, wo die Seite steht, bevor du in die Detail-Tabs gehst.

SEO Score

Die vollständige Aufschlüsselung des SEO-Scores nach Kategorien und Einzelprüfungen (siehe oben). Lies hier ab, welche Prüfungen pass/partial/fail sind und wie viele Punkte fehlen — das ist deine Priorisierungsliste.

GEO Score

Die Aufschlüsselung des GEO-Scores (AI citation readiness). Gleiche Lesart wie beim SEO-Score, aber auf KI-/Zitierbarkeit ausgerichtet. Beachte: Die zwei info-Prüfungen erscheinen hier als Hinweise ohne Punktwirkung.

HTTP Headers

Zeigt die Response-Header der Seite — sowohl aufbereitet als auch als Roh-Header. Hier prüfst du Caching, Content-Type, Encoding und vor allem die acht Security-Header, die in den SEO-Score einfließen.

SSL / Security

Details zum SSL-Zertifikat: Subject, Issuer, Gültigkeit (Von/Bis), Restlaufzeit in Tagen, SANs, Zertifikatskette, Algorithmus und TLS-Version. So siehst du auf einen Blick, ob das Zertifikat gültig ist und wann es abläuft.

Redirects

Die Weiterleitungskette Hop für Hop: pro Hop Status, Timing, ein SSL-Flag, IP und Server. Lies hier ab, ob die finale URL über unnötige oder gemischte (http/https) Zwischenstationen erreicht wird — jeder zusätzliche Hop kostet im SEO-Score.

Performance

Timing-Werte plus render-blockierende Ressourcen, Resource-Hints sowie inline und externe Skripte und Styles. Render-blockierende Ressourcen sind der wichtigste Hebel hier — sie fließen direkt in den SEO-Score ein.

Meta Tags

Alle Meta-relevanten Werte: Titel, Description, Canonical, Robots, Viewport, Charset, Sprache, Open-Graph- und Twitter-Daten, hreflang, die Überschriften sowie sonstige Meta-Tags. Der zentrale On-Page-Tab — viele SEO-Prüfungen speisen sich aus diesen Werten.

Jeder <a> der Seite mit href, Linktext und Kennzeichnung, ob extern und/oder nofollow. Nützlich, um leere oder Spam-Links zu finden (die auch die Barrierefreiheits-Prüfung „No Empty Anchors" betreffen) und das interne/externe Verhältnis einzuschätzen.

Images

Alle Bilder mit src, alt-Text und Abmessungen (width/height). Ein Bild-Vorschau-Modal hilft beim Sichten. Fehlende alt-Texte schlagen sowohl im SEO- als auch im GEO-Score zu Buche.

Structured Data

Die gefundenen JSON-LD-Blöcke mit Format, Typ und Daten. Hier prüfst du, welche Schema-Typen vorhanden sind — Vielfalt, FAQ- und Autor-/Organisations-Schema zahlen direkt in den GEO-Score ein.

Content Analysis

Wort-, Absatz- und Satzzahlen, durchschnittliche Wörter pro Satz, Lesbarkeit nach Flesch sowie Listen und Tabellen. Aus diesen Werten speisen sich die Content-Prüfungen beider Scores (Wortanzahl, Lesbarkeit, Absatzlänge, Listen/Tabellen).

Semantic HTML

Die semantischen Landmarks der Seite als Mapping von Tag zu Rolle. Je mehr semantische Elemente, desto besser für Maschinenlesbarkeit (GEO-Prüfung „Semantic HTML Elements").

Social Preview

Gerenderte Vorschaukarten für Open Graph und die Twitter-/X-Card — aufgebaut aus den OG- und Twitter-Meta-Daten. So siehst du, wie die Seite beim Teilen in sozialen Netzwerken aussieht.

Accessibility

Barrierefreiheits-Auswertung: Landmarks, Skip-Links, leere Anchors und Buttons, Formularfelder und nicht-beschriftete Inputs, ARIA-Rollen/-Labels/-hidden/-live, tabindex sowie Tabellen mit Caption und <th>. Geht über die wenigen A11y-SEO-Prüfungen hinaus und ist ein eigenständiger Audit-Bereich.

Robots Analysis

Der Inhalt der robots.txt: Allow-/Disallow-Regeln, Sitemaps und KI-Crawler-Regeln. Hier kontrollierst du, ob die Seite indexierbar ist, ob eine Sitemap referenziert wird und wie die robots.txt mit den neun KI-Crawlern umgeht.

Source Code

Der rohe HTML-Quelltext in einem Editor (ACE) zum Durchsehen. Praktisch, um eine vom Analyzer gemeldete Stelle direkt im Markup nachzuschlagen.

SEO Guide

Statischer Nachschlage-Inhalt zu klassischem SEO. Funktioniert auch ohne vorherige Analyse (immer verfügbar).

GEO Guide

Umfangreicher, didaktischer GEO-Nachschlage-Inhalt (Akkordeon), ebenfalls ohne Analyse nutzbar. Er ordnet die KI-Optimierung ein — inklusive Notizen zu Googles AI-Optimization-Guide (Mai 2026: „SEO und GEO sind für Googles KI dieselbe Disziplin", RAG-basiert), einer Mythbusting-Tabelle (Google sagt, llms.txt/Schema/Chunking seien für die Google-AI-Suche nicht erforderlich), Hinweisen zur Multi-Turn-/Follow-up-Optimierung und einem GEO-Schreib-Playbook. Der Guide begründet ausdrücklich, warum llms.txt und Schema für andere Engines (Perplexity, ChatGPT, Claude, Bing Copilot) weiterhin zählen — und warum der GEO-Score sie deshalb belohnt.

Export / Import

Hier exportierst du die aktuelle Analyse als JSON, liest eine gespeicherte Analyse wieder ein und lädst die drei Demo-Datensätze. Auch dieser Tab ist ohne vorherige Analyse nutzbar. Das Format ist JSON mit version, tool: "jpkcom-seo-analyzer" und einem data-Objekt — re-importierbar; die Demo-Dateien nutzen dasselbe Schema mit demo: true.

{ "version": "1.0", "tool": "jpkcom-seo-analyzer", "data": { } }

Demo-Modi

Im Export / Import-Tab liegen drei Demo-Buttons, die fertige Beispiel-Analysen laden:

  • Perfect (grün) — eine Seite, bei der alle Prüfungen bestehen: HTTPS, vollständige Security-Header inklusive Content-Signal, gültiges SSL, reichhaltige Meta-/OG-/Twitter-/hreflang-Daten, JSON-LD (WebPage + FAQPage), wohlgeformte llms.txt, sauberer Überschriften-Baum, 6 Landmarks, Lesbarkeit 62.
  • Broken (rot) — alles, was schiefgehen kann: nur HTTP, 3-Hop-Redirect-Kette (301 → 302 → 200), Titel „Untitled", keine Description, doppelte H1 plus übersprungene Ebenen, fehlende alt-Texte, leere/Spam-Links, robots.txt mit Disallow: /, fehlerhafte llms.txt, 285 KB Seite, render-blockierende Ressourcen.
  • Empty (grau) — eine leere Seite (<html><head></head><body></body></html>), robots.txt und llms.txt beide 404, alle extrahierten Felder null/0.

Wichtig: Die Demo-Dateien enthalten nur die rohen Daten, keine vorberechneten Scores. SEO- und GEO-Score werden beim Laden client-seitig aus diesen Daten berechnet — genau wie bei einem Live-Lauf. Die Demos zeigen dadurch sauber, wie jede einzelne Prüfung auf gute, schlechte und fehlende Daten reagiert.

Betriebsgrenzen und Datenschutz — kompakt

  • Privatsphäre: Die Zielseite wird vom JPKCom-Server abgerufen, nicht von deinem Browser; sie sieht nicht deine IP.
  • SSRF-/Private-IP-Schutz: interne, lokale und private Adressen werden blockiert; nur HTTP/HTTPS.
  • Limits: max. 10 Redirect-Hops, ~15 s Seiten-Timeout, ~1 MB Body-Cap (darüber wird das HTML abgeschnitten).
  • Rate-Limit: der URL-Status-Check ist auf ~1 Anfrage pro 2 Sekunden pro IP begrenzt (sonst HTTP 429).
  • Eingabe: genau eine absolute http(s)-URL pro Lauf, kein Batch/Crawl.
  • Ohne Analyse nutzbar: SEO Guide, GEO Guide und Export / Import.

Für den Einstieg, die Zielgruppen und das große Bild siehe die Übersichtsseite. Ausprobieren kannst du alles direkt im Tool.