Erstellen Sie eine Sitemap XML aus einer URL-Liste
Erstellen Sie ein vollständiges sitemap.xml-Dokument aus einer strukturierten Seitenliste, ohne Crawler, CMS-Erweiterung oder handgeschriebenes XML.
Im Browser ausführen – kostenlos
Jeder Eintrag benötigt eine absolute HTTP- oder HTTPS-URL und kann zusätzlich das letzte Änderungsdatum, die Änderungshäufigkeit und die relative Priorität enthalten. Der Generator prüft die Werte, maskiert XML-Sonderzeichen sicher und liefert ein deterministisches Dokument, das Sie speichern, veröffentlichen, testen oder an einen weiteren Deployment-Schritt übergeben können.
Bereiten Sie ein präzises URL-Verzeichnis vor
Beginnen Sie mit den kanonischen öffentlichen URLs, die Suchmaschinen finden dürfen. Jeder Eintrag braucht eine vollständige Adresse, die mit HTTP oder HTTPS beginnt und den vorgesehenen Hostnamen sowie Pfad enthält. Relative Pfade wie <code>/produkte</code> werden abgelehnt, da ein Sitemap-Leser ihre Herkunft nicht bestimmen kann. Nehmen Sie Abfragezeichenfolgen nur auf, wenn die parametrisierten Seiten eigenständige, kanonische und sinnvolle Suchergebnisse sind; Tracking-Varianten gehören normalerweise nicht in eine Sitemap. Der Generator bewahrt den eingereichten URL-Text und maskiert XML-empfindliche Zeichen wie kaufmännische Und-Zeichen, sodass die Abfrage ihre Bedeutung behält, ohne das Dokument zu beschädigen. Eine Sitemap darf entsprechend dem Protokolllimit bis zu 50,000 Einträge enthalten. Dieses Werkzeug crawlt keine Domain, prüft keine Antworten, ermittelt keine kanonischen Links und entfernt keine Duplikate. Damit bleibt Ihre Eingabeliste maßgeblich und das Resultat vorhersehbar. Erzeugen Sie die Liste aus Router, Datenbank, Static-Site-Ausgabe oder Inhaltsbestand und entfernen Sie vorab private, umgeleitete, doppelte, gesperrte oder nicht kanonische Seiten.
Verwenden Sie optionale Metadaten wahrheitsgemäß
Fügen Sie <code>lastmod</code> nur hinzu, wenn Ihnen die letzte inhaltliche Änderung der Seite bekannt ist. Zulässig sind ein Kalenderdatum wie YYYY-MM-DD oder ein ISO 8601-Zeitstempel mit ausdrücklicher Zeitzone. Der Wert soll die Seite beschreiben, nicht den Zeitpunkt, zu dem Sie den Generator ausführen. <code>changefreq</code> akzeptiert das standardisierte Sitemap-Vokabular: always, hourly, daily, weekly, monthly, yearly oder never. Suchmaschinen verstehen dieses Feld als Hinweis und nicht als Zeitplan. Wählen Sie deshalb eine Häufigkeit, die dem tatsächlichen Veröffentlichungsverhalten entspricht. <code>priority</code> ist ein weiterer optionaler Hinweis als endliche Zahl zwischen null und eins. Er vergleicht URLs innerhalb Ihrer Website; Ihre Domain wird dadurch nicht wichtiger als eine andere, und weder Ranking noch Crawling werden garantiert. Unsichere Metadaten wegzulassen ist besser, als alle Elemente mit erfundenen Standardwerten zu füllen. Der Generator gibt nur bereitgestellte optionale Elemente aus, hält das XML übersichtlich und prüft jeden enthaltenen Wert, bevor er ein Ergebnis zurückgibt.
Veröffentlichen und pflegen Sie das Dokument
Das Ergebnis enthält die XML-Deklaration, den offiziellen Sitemap-Namensraum, ein URL-Element pro Eingabeeintrag und eine Anzahl für Automatisierungsprotokolle. Speichern Sie das zurückgegebene XML mit UTF-8-Kodierung als <code>sitemap.xml</code> und stellen Sie es unter einer stabilen öffentlichen Adresse bereit, üblicherweise im Stammverzeichnis der betreffenden Website. Sie können diesen Ort in robots.txt nennen und über die von Ihnen eingesetzten Suchmaschinenwerkzeuge einreichen. Die Generierung ist deterministisch: Identische Eingaben erzeugen identische Ausgaben, ohne Netzwerkanfrage, Zugriff auf die aktuelle Uhrzeit, zufällige Sortierung oder verborgene Normalisierung. Dadurch eignet sich die Funktion für Builds und Deployment-Pipelines, denn Unterschiede in der Versionsverwaltung zeigen Änderungen des gelieferten Bestands. Erzeugen Sie das Dokument neu, sobald sich veröffentlichte kanonische URLs oder verlässliche Metadaten ändern. Prüfen Sie anschließend die bereitgestellte Antwort und stellen Sie sicher, dass sie keine Anmeldung verlangt. Teilen Sie bei sehr großen Websites die Einträge auf protokollkonforme Dateien auf und erstellen Sie mit dem passenden Ablauf einen Index. Die Browser-Ausführung ist gratis; automatisierte API-Anfragen nutzen den veröffentlichten Grundpreis von $0.002.
Anwendungsfälle
Sitemap beim Deployment erzeugen
Wandeln Sie die vom Build erzeugten kanonischen Routen vor der Veröffentlichung in deterministisches XML um.
Seiten aus einer Inhaltsdatenbank exportieren
Überführen Sie veröffentlichte Datensätze und verlässliche Änderungsdaten in eine suchmaschinenfertige Sitemap.
Fehleranfälliges manuelles XML ersetzen
Pflegen Sie eine strukturierte URL-Liste, während der Generator Prüfung, Reihenfolge und XML-Maskierung übernimmt.
Häufige Fragen
Welche Eingabe benötigt der Generator?
Übergeben Sie ein nicht leeres Array von Einträgen. Jeder braucht eine absolute HTTP- oder HTTPS-URL und kann lastmod, changefreq sowie priority enthalten.
Crawlt er meine Website?
Nein. Er erzeugt XML ausschließlich aus Ihren Einträgen, führt keine Netzwerkanfragen aus und entdeckt keine Seiten automatisch.
Wie werden Und-Zeichen und andere Sonderzeichen behandelt?
XML-empfindliche Zeichen in URLs werden in der Ausgabe maskiert, damit gültige Abfragen kein fehlerhaftes XML erzeugen.
Welche lastmod-Formate werden akzeptiert?
Verwenden Sie YYYY-MM-DD oder einen vollständigen ISO 8601-Zeitstempel mit Z oder einem ausdrücklichen numerischen Zeitzonenversatz.
Kann priority das Ranking einer Seite verbessern?
Nein. Die Priorität ist ein relativer Hinweis innerhalb Ihrer Sitemap, keine Ranking-Garantie und kein Vergleich mit anderen Websites.
Was kostet die Erzeugung per API?
Der API-Grundpreis beträgt $0.002 pro Anfrage. Derselbe deterministische Generator ist im Browser kostenlos nutzbar.
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/sitemap-xml-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"urls":[{"url":"https://example.com/","lastmod":"2026-07-25","changefreq":"weekly","priority":1},{"url":"https://example.com/about?from=site&lang=en","changefreq":"monthly","priority":0.6}]}'const res = await fetch("https://api.kit.forhosting.com/web/sitemap-xml-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"urls": [
{
"url": "https://example.com/",
"lastmod": "2026-07-25",
"changefreq": "weekly",
"priority": 1
},
{
"url": "https://example.com/about?from=site&lang=en",
"changefreq": "monthly",
"priority": 0.6
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/sitemap-xml-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"urls": [
{
"url": "https://example.com/",
"lastmod": "2026-07-25",
"changefreq": "weekly",
"priority": 1
},
{
"url": "https://example.com/about?from=site&lang=en",
"changefreq": "monthly",
"priority": 0.6
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/sitemap-xml-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"urls":[{"url":"https://example.com/","lastmod":"2026-07-25","changefreq":"weekly","priority":1},{"url":"https://example.com/about?from=site&lang=en","changefreq":"monthly","priority":0.6}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"urls":[{"url":"https://example.com/","lastmod":"2026-07-25","changefreq":"weekly","priority":1},{"url":"https://example.com/about?from=site&lang=en","changefreq":"monthly","priority":0.6}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/sitemap-xml-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
{
"urls": [
{
"url": "https://example.com/",
"lastmod": "2026-07-25",
"changefreq": "weekly",
"priority": 1
},
{
"url": "https://example.com/about?from=site&lang=en",
"changefreq": "monthly",
"priority": 0.6
}
]
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.sitemap_xml_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
max_items | 50000 |
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. |