SEO-Keyword-Dichte prüfen und Überoptimierung erkennen
Messen Sie ein Keyword an Ihrer eigenen Grenze: „technical SEO“ dreimal in 23 Wörtern belegt 26,09 % des Textes und wird bei einem Grenzwert von 20 % markiert. Eine Wendung zählt jedes Wort, das sie belegt, deshalb werden lange Phrasen nicht unterschätzt. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Keyword
- technical SEO
- Schwellenwert
- 20
- Anzahl der Vorkommen
- 3
- Wörter gesamt
- 23
- Dichte in Prozent
- 26,09
- Schwellenwert in Prozent
- 20
Ein Keyword-Dichtebericht verwandelt einen vagen Eindruck von Wiederholungen in wenige reproduzierbare Messwerte. Fügen Sie den Seitentext ein, geben Sie ein Zielwort oder eine Zielphrase an und wählen Sie den Prozentsatz für die Warnung. Der Bericht liefert die genaue Trefferzahl, den vom Keyword belegten Textanteil und einen Hinweis auf Überoptimierung. Die lokale, deterministische Verarbeitung eignet sich für redaktionelle Prüfungen, Publikationsabläufe und wiederholbare Qualitätsregeln, ohne eine Seite herunterzuladen oder deren sichtbaren Inhalt zu erraten.
Messen Sie die Zielphrase nach einer festen Regel
Keyword-Prüfungen werden schnell subjektiv: Eine Person zählt exakte Phrasen, eine andere bezieht Wortteile ein, eine dritte schätzt die Häufigkeit beim Lesen. Dieser Bericht verwendet eine stabile Regel. Er normalisiert Groß- und Kleinschreibung sowie kompatible Unicode-Formen, zerlegt Text und Keyword in Wörter und sucht die vollständige Sequenz.
„Schuh“ zählt nicht „Schuhe“, und „Schuh zum Laufen“ zählt nur diese benachbarten Wörter in derselben Reihenfolge. Satzzeichen dazwischen verhindern keinen Treffer. Übermitteln Sie möglichst die endgültige sichtbare Fassung: Navigation, verborgenes Markup und nicht eingegebene Inhalte beeinflussen das Ergebnis nicht.
Weil die Funktion gelieferten Text analysiert und keine URL abruft, erzeugt dieselbe Eingabe stets dieselbe Antwort und lässt sich während der Prüfung leicht nachvollziehen.
Verstehen Sie Dichte und Warnschwelle
Die Dichte ist die Zahl der durch Treffer belegten Wörter, geteilt durch die Gesamtwortzahl und multipliziert mit 100. Eine dreiteilige Phrase, die zweimal gefunden wird, steuert somit sechs Wörter zum Zähler bei. Dadurch bleiben Phrasen mit Einzelwörtern vergleichbar und lange Suchbegriffe werden nicht unterschätzt.
Das Ergebnis wird auf zwei Dezimalstellen gerundet. Eine Warnung fordert eine menschliche Prüfung und belegt keine Rankingstrafe. Suchmaschinen nennen keine universelle Idealdichte, und natürliche Wiederholungen hängen von Thema, Format, Marke und Fachsprache ab.
Verwenden Sie die Schwelle als interne Konsistenzregel, vergleichen Sie ähnliche Seitentypen und lesen Sie markierte Stellen vor einer Änderung. Mechanisches Entfernen jeder Wiederholung kann einen korrekten Text unklarer machen.
Binden Sie den Bericht in die Redaktion ein
Führen Sie den Bericht nach der inhaltlichen Bearbeitung aus, sobald Überschriften, Handlungsaufforderungen, Bildtexte und Fließtext nahezu veröffentlichungsreif sind. Ihr Team kann Anzahl, Prozentwert, Schwelle und Kennzeichen beim Entwurf speichern und dieselbe Anfrage nach Änderungen wiederholen. Agenturen können für Produktseiten, Glossare und lange Artikel unterschiedliche Grenzen einsetzen, ohne die Berechnung zu ändern.
Die Rohfelder machen die Entscheidung prüfbar. Leerer Text ist zulässig und ergibt null Wörter, Treffer und Dichte; ein leeres Keyword wird mangels messbaren Ziels abgewiesen. Der Algorithmus nutzt weder Netzwerk noch Zufall, Uhrzeit oder Modell, sodass Stapelergebnisse deterministisch bleiben.
Anwendungsfälle
Prüfen Sie einen Entwurf vor der Veröffentlichung
Messen Sie die Fokusphrase im Endtext und geben Sie unerwartet häufige Wiederholungen zur redaktionellen Prüfung zurück.
Setzen Sie eine Inhaltsqualitätsregel durch
Nutzen Sie im gesamten Ablauf eine klare Schwelle und bewahren Sie Anzahl und Prozentwert als Begründung jeder Warnung auf.
Vergleichen Sie Überarbeitungen einheitlich
Verwenden Sie vor und nach der Bearbeitung dieselben Einstellungen, damit das Messverfahren unverändert bleibt.
Häufige Fragen
Wie wird die Keyword-Dichte berechnet?
Die von exakten Treffern belegten Textwörter werden durch alle Wörter geteilt, mit 100 multipliziert und auf zwei Dezimalstellen gerundet.
Ignoriert der Abgleich die Groß- und Kleinschreibung?
Ja. Text und Keyword werden ohne Beachtung der Schreibweise normalisiert; vollständige Wortgrenzen und Phrasenfolge bleiben maßgeblich.
Wann gilt eine Seite als überoptimiert?
Das Kennzeichen wird wahr, wenn die berechnete Dichte die angegebene Schwelle strikt übersteigt; voreingestellt sind 3 Prozent.
Beweist eine Warnung einen künftigen Rankingverlust?
Nein. Sie ist ein redaktioneller Hinweis nach Ihrer gewählten Regel, keine Vorhersage oder Aussage über eine Suchmaschinenstrafe.
Zählt die Suche nach „Schuh“ auch „Schuhe“?
Nein. Der Bericht sucht das vollständige Wort oder die vollständige Wendung: „Schuh“ zählt nicht „Schuhe“, und „roter Schuh“ zählt nur diese beiden Wörter direkt nacheinander. Satzzeichen dazwischen verhindern keinen Treffer.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
curl -X POST https://api.kit.forhosting.com/seo/keyword-density-report \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Technical SEO helps a site become easier to crawl. A practical technical SEO review checks structure without forcing technical SEO into every sentence.","keyword":"technical SEO"}'const res = await fetch("https://api.kit.forhosting.com/seo/keyword-density-report", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Technical SEO helps a site become easier to crawl. A practical technical SEO review checks structure without forcing technical SEO into every sentence.",
"keyword": "technical SEO"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/keyword-density-report",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Technical SEO helps a site become easier to crawl. A practical technical SEO review checks structure without forcing technical SEO into every sentence.",
"keyword": "technical SEO"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/keyword-density-report", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Technical SEO helps a site become easier to crawl. A practical technical SEO review checks structure without forcing technical SEO into every sentence.","keyword":"technical SEO"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Technical SEO helps a site become easier to crawl. A practical technical SEO review checks structure without forcing technical SEO into every sentence.","keyword":"technical SEO"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/keyword-density-report", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"text": "Technical SEO helps a site become easier to crawl. A practical technical SEO review checks structure without forcing technical SEO into every sentence.",
"keyword": "technical SEO"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.keyword_density_report",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Messen Sie die Zielphrase nach einer festen Regel
Treffer dürfen sich überlappen, damit wiederholte Konstruktionen mathematisch vollständig erfasst werden. total_words zeigt den Nenner neben dem Prozentwert.
Verstehen Sie Dichte und Warnschwelle
Setzen Sie threshold auf den höchsten in Ihrem Ablauf erlaubten Prozentsatz; voreingestellt ist 3. over_optimized wird nur wahr, wenn die Dichte die Schwelle überschreitet, nicht wenn beide gleich sind. Diese Grenze macht automatische Regeln vorhersehbar.
Binden Sie den Bericht in die Redaktion ein
Auch eine Vorabprüfung ist möglich: Senden Sie Text und Fokus-Keyword, prüfen Sie over_optimized und geben Sie einen markierten Entwurf mit Begründung an die Redaktion zurück. Jede API-Anfrage kostet $0.002; im Browser kann dieselbe reine Berechnung schon vor der Automatisierung sofortiges Feedback liefern.
Technische Fragen
Was kostet eine API-Anfrage?
Jede Anfrage kostet $0.002. Die deterministische Berechnung benötigt weder Seitendownload noch externes Modell.