Interne und externe Links zählen
Teilen Sie die Links einer Seite in interne und externe auf: Von fünf Links ergeben drei auf Ihrer Domain und zwei anderswo ein Verhältnis von 0,6 zu 0,4. Relative Links zählen als Ihre, eine Subdomain zählt als extern, und jeder Link zeigt seine Einordnung. 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
- Domainname
- https://example.com
- Domainname
- example.com
- Links insgesamt
- 5
- Interne Links
- 3
- Externe Links
- 2
Dieser Zähler ordnet jeden angegebenen Link anhand des Hostnamens Ihrer Website als intern oder extern ein und gibt Summen, Anteile sowie Einzelergebnisse zurück. Er verarbeitet bereits aus einer Seite extrahierte Listen mit relativen Verweisen wie /about oder #details ebenso wie absolute URLs. Nutzen Sie ihn, um die Linkstruktur einer Seite zu prüfen, einen Extraktionsprozess zu validieren oder eine Rohdatenliste ohne Seitenabruf und Website-Crawl in einheitliche Kennzahlen umzuwandeln.
Bereiten Sie Domain und Linkliste vor
Beginnen Sie mit dem Hostnamen Ihrer Website und den auf einer Seite erfassten Link-URLs. Die Liste darf absolute URLs, protokollrelative URLs, root-relative Pfade, pfadrelative Verweise, reine Abfragelinks und Fragmentlinks mischen. Relative Verweise werden anhand der angegebenen Website-URL aufgelöst; daher gelten /services, team, ?
Jeder Eintrag muss eine nicht leere Zeichenfolge sein, die sich als URL-Verweis interpretieren lässt. Das Werkzeug lädt absichtlich kein HTML herunter und entdeckt keine Links selbst. Dadurch bleibt die Berechnung deterministisch, und Sie können Listen aus einem Crawler, einem Browserexport, einem CMS, einer Testsuite oder einer Tabelle analysieren.
Nehmen Sie jedes Vorkommen auf, wenn die Linkhäufigkeit der Seite abgebildet werden soll. Erscheint dasselbe Ziel dreimal, wird es dreimal gezählt. Eine leere Liste wird abgelehnt, statt ein irreführendes Null-zu-null-Verhältnis auszugeben.
Verstehen Sie Zuordnung und Anteile
Groß- und Kleinschreibung spielen keine Rolle, da die URL-Analyse Hostnamen normalisiert. Pfade, Abfragen, Fragmente, Zugangsdaten und Ports ändern diese Zuordnung nicht. Ein Link zu einem anderen Hostnamen gilt als extern.
Das schließt Subdomains wie blog.example.com ein, wenn example.com konfiguriert ist. Drei interne von vier Links ergeben beispielsweise einen internen Anteil von 0.75. Für eine stabile maschinenlesbare Ausgabe werden die Anteile auf sechs Dezimalstellen gerundet; zusammen ergeben sie eins.
Das Array links behält die Eingabereihenfolge bei und zeigt die Zuordnung jeder ursprünglichen Zeichenfolge, sodass unerwartete Zählungen leicht nachvollziehbar sind.
Nutzen Sie das Ergebnis für eine SEO-Prüfung
Betrachten Sie die Zahlen als Diagnosehinweis und nicht als allgemeingültiges Rankingziel. Interne Links helfen Besuchern und Crawlern, verwandte Seiten zu erreichen, die Hierarchie zu verstehen und Autorität innerhalb der Website weiterzugeben. Externe Links können Aussagen belegen und Leser zu hilfreichen Primärquellen führen.
Ein ungewöhnliches Verhältnis sollte geprüft werden, doch das passende Verhältnis hängt vom Zweck ab: Ein Glossar, eine Produktseite und ein Forschungsartikel verlinken naturgemäß unterschiedlich. Vergleichen Sie ähnliche Seitenvorlagen, beobachten Sie Veränderungen und prüfen Sie die Einzelzuordnungen, bevor Sie Schlüsse ziehen. Führen Sie den Zähler in automatisierten Abläufen nach der Extraktion aus und speichern Sie das Ergebnis zusammen mit Seiten-URL und Crawlzeitpunkt.
So lassen sich Seiten ohne interne Links markieren, Vorlagen mit plötzlich vielen externen Zielen erkennen oder Migrationen auf den vorgesehenen Hostnamen kontrollieren. Da weder Netzwerkzugriffe noch veränderliche Daten verwendet werden, erzeugt dieselbe Eingabe stets dieselbe Ausgabe.
Anwendungsfälle
Landingpage prüfen
Messen Sie das Verhältnis interner und externer Links und prüfen Sie die Zuordnung jeder extrahierten URL.
Crawler-Ausgabe validieren
Ergänzen Sie Ihren Extraktionsablauf um deterministische Zahlen und erkennen Sie unerwartete externe Ziele.
Website-Migration kontrollieren
Finden Sie Listen mit Links, die nach Domain- oder Umgebungswechseln noch auf einen alten Hostnamen zeigen.
Häufige Fragen
Was kostet die Nutzung?
Sie können das Werkzeug auf dieser Seite kostenlos im Browser ausführen.
Sind relative Links intern?
Ja. Root-relative und pfadrelative Verweise sowie reine Abfrage- und Fragmentverweise werden anhand der Website aufgelöst und sind intern.
Gelten Subdomains als intern?
Nein. Der Hostname muss exakt übereinstimmen; blog.example.com ist extern, wenn example.com konfiguriert wurde.
Lädt oder durchsucht das Werkzeug meine Seite?
Nein. Es ordnet nur die von Ihnen angegebenen URL-Zeichenfolgen zu und stellt keine Netzwerkanfragen.
Wie werden doppelte Links gezählt?
Jeder Listeneintrag wird gezählt. Wiederholte URLs bleiben erhalten, da sie getrennte Linkvorkommen darstellen.
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/internal-link-count \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"domain":"https://example.com","urls":["/about","https://example.com/pricing","https://docs.example.net/guide"]}'const res = await fetch("https://api.kit.forhosting.com/seo/internal-link-count", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"domain": "https://example.com",
"urls": [
"/about",
"https://example.com/pricing",
"https://docs.example.net/guide"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/seo/internal-link-count",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"domain": "https://example.com",
"urls": [
"/about",
"https://example.com/pricing",
"https://docs.example.net/guide"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/seo/internal-link-count", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"domain":"https://example.com","urls":["/about","https://example.com/pricing","https://docs.example.net/guide"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"domain":"https://example.com","urls":["/about","https://example.com/pricing","https://docs.example.net/guide"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/seo/internal-link-count", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"domain": "https://example.com",
"urls": [
"/about",
"https://example.com/pricing",
"https://docs.example.net/guide"
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "seo.internal_link_count",
"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
Bereiten Sie Domain und Linkliste vor
Sie können nur die Domain wie example.com oder eine absolute Website-URL mit HTTP oder HTTPS eingeben. page=2 und #pricing als intern.
Verstehen Sie Zuordnung und Anteile
Ein Link ist intern, wenn er zu einer HTTP- oder HTTPS-URL aufgelöst wird, deren Hostname exakt dem angegebenen Website-Hostnamen entspricht. Nicht webbasierte Schemas wie mailto, tel und ftp werden ebenfalls als extern ausgegeben, da sie keine HTTP- oder HTTPS-Seite auf dem konfigurierten Host bezeichnen. Das Ergebnis enthält total_links, internal_links und external_links sowie internal_ratio und external_ratio als Werte zwischen null und eins.
Nutzen Sie das Ergebnis für eine SEO-Prüfung
Im Browser ist die Nutzung kostenlos; API-Automatisierung kostet $0.002 pro Anfrage.
Technische Fragen
Was geschieht bei einer leeren Liste?
Die Anfrage schlägt mit invalid_input fehl, weil für eine aussagekräftige Zählung und einen Anteil mindestens ein Link erforderlich ist.