📊 Was das Tool macht
SitemapChecker liest XML-Sitemaps ein, extrahiert alle URLs und folgt rekursiv Sub-Sitemaps – ideal für SEO-Audits, Link-Indexierung und Crawling-Analysen.
XML Parsing
Nutzt
xml.etree.ElementTree für robustes Parsen von Sitemap-Dateien nach dem offiziellen Schema.Rekursive Tiefe
Folgt automatisch allen Sub-Sitemaps und aggregiert die Gesamtzahl der indexierten URLs.
Sofort einsetzbar
Ein Funktionsaufruf genügt:
count_links_in_sitemap(url) – kein komplexes Setup nötig.💻 Echter Code aus dem Projekt
Kernfunktion: Sitemap-Parsing mit Namespace-Support
import requests
import xml.etree.ElementTree as ET
def parse_sitemap(sitemap_url, namespace):
links = []
sitemaps = []
response = requests.get(sitemap_url)
if response.status_code != 200:
raise Exception(f"Fehler beim Laden der Sitemap: {response.status_code}")
root = ET.fromstring(response.content)
# Alle <url> Einträge mit Loc-Tag extrahieren
for url in root.findall(f'.//{namespace}url'):
loc = url.find(f'{namespace}loc').text
links.append(loc)
# Alle <sitemap> Einträge für rekursive Verarbeitung
for sitemap in root.findall(f'.//{namespace}sitemap'):
loc = sitemap.find(f'{namespace}loc').text
sitemaps.append(loc)
return links, sitemaps
Rekursive Link-Zählung über alle Sub-Sitemaps
def count_links_in_sitemap(
sitemap_url,
namespace='{http://www.sitemaps.org/schemas/sitemap/0.9}'
):
links, sitemaps = parse_sitemap(sitemap_url, namespace)
all_links = links
for sitemap in sitemaps:
sub_links, _ = parse_sitemap(sitemap, namespace)
all_links.extend(sub_links)
return len(all_links)
Praxis-Beispiel
sitemap_url = 'https://www.naturprodukte.shop/sitemap.xml'
anzahl = count_links_in_sitemap(sitemap_url)
print(f"Links in Sitemap + Sub-Sitemaps: {anzahl}")
🎯 Use Cases
SEO-Audit
Schnell prüfen, wie viele Seiten Google & Co. über die Sitemap erreichen können. Diskrepanzen zur tatsächlichen Seitenzahl sofort erkennen.
CI/CD-Integration
In Deployment-Pipelines einbinden: Nach jedem Build prüfen, ob die Sitemap-Struktur intakt ist.