Canonical-Tag aus einer gültigen HTTP-URL erstellen
Der Canonical-Link-Tag-Generator verwandelt eine absolute Webadresse in ein fertiges HTML-link-Element für den head-Bereich einer Seite.
Im Browser ausführen – kostenlos
Er prüft, ob sich die Adresse parsen lässt und HTTP oder HTTPS verwendet, und maskiert den Wert anschließend sicher für ein HTML-Attribut. Das Ergebnis enthält sowohl die normalisierte Canonical-URL als auch den vollständigen Tag. Es eignet sich für manuelle Änderungen, Veröffentlichungsabläufe, Vorlagensysteme und automatisierte SEO-Pipelines.
Wählen Sie die URL der bevorzugten Seite
Ein Canonical-Tag teilt Suchmaschinen mit, welche absolute URL Sie als bevorzugte Version einer Seite ansehen. Beginnen Sie mit der Adresse, die maßgeblich bleiben soll, wenn derselbe Inhalt über Trackingparameter, alternative Navigationspfade, Druckansichten oder andere Duplikate erreichbar ist. Geben Sie Schema und Hostnamen an, denn ein relativer Pfad wie /ratgeber/beispiel bezeichnet über mehrere Websites hinweg keine eindeutige Seite. Wählen Sie HTTP oder HTTPS ausdrücklich; in Produktionsumgebungen empfiehlt sich gewöhnlich die HTTPS-Adresse, die Besucher und Crawler aufrufen können. Behalten Sie aussagekräftige Pfade, Suchparameter und Fragmente nur bei, wenn sie tatsächlich zur bevorzugten Adresse gehören. Dieser Generator parst und serialisiert den Wert einheitlich, weshalb einzelne Details normalisiert erscheinen können. Er ruft die Seite nicht ab, prüft keine Weiterleitungen, vergleicht keine doppelten Inhalte und entscheidet nicht, welche Variante kanonisch sein sollte. Diese redaktionelle Entscheidung treffen Sie. Vergewissern Sie sich vor der Erstellung, dass das Ziel öffentlich, stabil, indexierbar und als dauerhafte Referenz für den Inhalt vorgesehen ist.
Erzeugen Sie sicheres Markup für den Dokumentkopf
Übermitteln Sie die gewählte Adresse im Feld url. Das Werkzeug entfernt umgebende Leerzeichen, prüft, ob der Wert eine absolute URL ist, und akzeptiert ausschließlich die Schemas http und https. Adressen mit mailto, ftp, javascript, file oder einem anwendungsspezifischen Protokoll werden abgelehnt, weil sie keine üblichen Web-Canonicals darstellen. Ein erfolgreiches Ergebnis enthält canonical_url mit der standardmäßig geparsten Adresse sowie tag mit dem vollständigen link-Element. Der href-Wert wird für ein doppelt angeführtes HTML-Attribut maskiert, einschließlich kaufmännischer Und-Zeichen in Abfragen. Dadurch werden URL-Zeichen nicht versehentlich zu HTML-Syntax. Platzieren Sie das Element im head, normalerweise genau einmal pro Dokument. Fügen Sie keine zweite widersprüchliche Canonical-Angabe hinzu und prüfen Sie, ob ein HTTP-Header oder Framework-Plug-in ein anderes Ziel veröffentlicht. Der Generator liefert einen knappen HTML-Tag ohne abschließenden XML-Schrägstrich, da link ein leeres Element ist. Er erzeugt nur Markup, ändert keine Seite und kontaktiert keinen Server.
Prüfen Sie die Bereitstellung und bleiben Sie konsistent
Kontrollieren Sie nach dem Einfügen den endgültig gerenderten Seitenquelltext oder die tatsächliche Serverantwort statt nur die Vorlagendatei. Content-Management-Systeme, SEO-Plug-ins, Themes und Rendering-Middleware können Elemente im head nach Ihrer Änderung ersetzen, verdoppeln oder entfernen. Stellen Sie sicher, dass genau ein beabsichtigter Canonical-Link vorhanden ist und dessen href der ausgewählten öffentlichen URL entspricht. Testen Sie anschließend das Ziel in der Veröffentlichungsumgebung: Es sollte erfolgreich antworten, unnötige Weiterleitungsketten vermeiden und bei gewünschter Sichtbarkeit nicht von der Indexierung ausgeschlossen sein. Wenden Sie dieselbe Regel einheitlich auf Seitennavigation, gefilterte Sammlungen, lokalisierte Seiten, mobile Varianten und Kampagnen-URLs mit Parametern an. Canonical-Tags sind Hinweise zur Zusammenführung gleichwertiger Seiten, keine Weiterleitungen oder Zugriffskontrollen; alle Varianten bleiben erreichbar. Wenn sich die bevorzugte URL ändert, erzeugen Sie den Tag erneut und aktualisieren Sie gegebenenfalls interne Links, Sitemaps, Weiterleitungen und strukturierte Daten. Für Automatisierungen kostet die API $0.002 pro Anfrage; die Browser-Version liefert lokal dasselbe deterministische Ergebnis.
Anwendungsfälle
Tag für eine CMS-Vorlage vorbereiten
Wandeln Sie die bevorzugte Artikel-URL in maskiertes Markup für head oder ein Vorlagenfeld um.
Tags im Veröffentlichungsablauf vereinheitlichen
Erzeugen Sie vor Zusammenstellung und Bereitstellung konsistente Canonical-URLs und link-Elemente.
Parametrisierte URLs sicher verarbeiten
Erstellen Sie gültiges HTML, wenn Parameter einer Canonical-Adresse zu maskierende Und-Zeichen enthalten.
Häufige Fragen
Welche Eingabe akzeptiert der Generator?
Er akzeptiert eine absolute URL mit http- oder https-Schema und Hostnamen. Relative Pfade und andere Protokolle werden abgelehnt.
Prüft das Werkzeug, ob die Seite existiert?
Nein. Syntax und Protokoll werden ohne Netzwerkanfragen deterministisch validiert.
Warum erscheinen Und-Zeichen als & im Tag?
Die URL wird für ein HTML-Attribut sicher maskiert. Der Browser interpretiert das Markup als Und-Zeichen in der tatsächlichen Adresse.
Wo gehört der erzeugte Tag hin?
Platzieren Sie ihn im head und veröffentlichen Sie keinen weiteren Canonical-Tag mit einer widersprüchlichen URL.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002. Für einzelne Vorgänge steht der Generator im Browser bereit.
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/web/canonical-tag-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com/articles/canonical-tags?edition=web"}'const res = await fetch("https://api.kit.forhosting.com/web/canonical-tag-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"url": "https://example.com/articles/canonical-tags?edition=web"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/canonical-tag-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"url": "https://example.com/articles/canonical-tags?edition=web"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/canonical-tag-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"url":"https://example.com/articles/canonical-tags?edition=web"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"url":"https://example.com/articles/canonical-tags?edition=web"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/canonical-tag-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"url": "https://example.com/articles/canonical-tags?edition=web"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.canonical_tag_generate",
"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.
Limits
timeout_sec | 30 |
max_crawl_pages | 25 |
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. |