HTML-Code minifizieren und Größenersparnis messen
Dieser HTML-Minifizierer entfernt Kommentare und reine Leerraumtexte zwischen benachbarten Tags.
Im Browser ausführen – kostenlos
Sichtbarer Text, Attribute, Werte in Anführungszeichen, Skripte und Stylesheets bleiben erhalten. Das Werkzeug prüft außerdem, ob gewöhnliche Elemente in der richtigen Reihenfolge geschlossen werden, und berücksichtigt sowohl standardmäßige leere HTML-Elemente als auch ausdrücklich selbstschließende Tags. Jedes erfolgreiche Ergebnis enthält das kompakte HTML, die ursprüngliche und die minifizierte UTF-8-Bytezahl, die prozentuale Ersparnis und die Anzahl entfernter Kommentare. Die Verarbeitung ist deterministisch, benötigt keine Netzwerkverbindung und ist eine vorsichtige Alternative zu aggressiven Änderungen am Markup.
Entfernen Sie Formatierung, ohne Inhalte zu löschen
Gut lesbares HTML enthält häufig Einrückungen, Leerzeilen und erklärende Kommentare. Diese erleichtern die Pflege eines Dokuments, vergrößern jedoch die ausgelieferte Ressource. Diese Fähigkeit entfernt gewöhnliche HTML-Kommentare und löscht reine Leerraum-Textknoten, wenn sie zwischen zwei Markup-Tags stehen. Text mit mindestens einem anderen Zeichen bleibt bewusst erhalten, denn ein Leerzeichen in sichtbarem Text kann Wörter trennen und für Layout oder Barrierefreiheit bedeutsam sein. Attributwerte werden nicht verändert. Das gilt auch für Werte in Anführungszeichen, die spitze Klammern, Leerzeichen, kommentarähnliche Folgen oder eingebettete Daten enthalten. Der Scanner liest jeden vollständigen Tag und beachtet dabei Anführungszeichen, statt beim ersten Größer-als-Zeichen anzuhalten. Inhalte von script und style werden gesondert behandelt: Sie werden bis zum passenden schließenden Tag unverändert kopiert. Vergleichsoperatoren, Zeichenketten, CSS-Selektoren und interne Kommentarsyntax werden deshalb nicht mit HTML-Markup verwechselt. Sie können das zurückgegebene Feld html als Bereitstellungsartefakt speichern und die lesbare Quelle weiterhin in der Versionsverwaltung pflegen. Dieser vorsichtige Umfang verzichtet auf das Umsortieren von Attributen, die Normalisierung von Text, das Dekodieren von Entitäten, das Weglassen von Tags und andere Änderungen, die das Browserverhalten beeinflussen könnten.
Erkennen Sie unvollständiges oder falsch verschachteltes Markup
Eine Minifizierung darf eine abgeschnittene Vorlage niemals als produktionsbereite Datei erscheinen lassen. Beim Lesen des Dokuments merkt sich die Fähigkeit jedes gewöhnliche öffnende Element und verlangt, dass die Elemente in umgekehrter Reihenfolge geschlossen werden. Wird beispielsweise zuerst ein div und danach ein span geöffnet, muss das span vor dem div enden. Ein unerwarteter schließender Tag, ein unvollständiger Tag, ein nicht abgeschlossener Kommentar oder ein am Ende noch offenes Element führt zu einem Fehler wegen ungültiger Eingabe und nicht zu einer Teilausgabe. Standardmäßige leere Elemente wie img, input, meta, link, br, hr, source und wbr benötigen keinen schließenden Tag. Ausdrücklich selbstschließende Syntax wird ebenfalls für jedes benannte Element akzeptiert. Damit lassen sich XML-förmige Fragmente und Komponentenausgaben mit abschließendem Schrägstrich verarbeiten. Diese Prüfung ist bewusst eine strukturelle Validierung und kein vollständiger Konformitätstest für die HTML-Spezifikation. Der Algorithmus ergänzt insbesondere keine optionalen End-Tags und repariert kein Markup, das Browser möglicherweise tolerieren. Wenn Ihre Quelle schließende Tags für Absätze oder Listenelemente auslässt, fügen Sie diese vor dem Senden ausdrücklich ein. Die strenge Regel erleichtert das Erkennen fehlerhafter Vorlagenausgaben und sorgt für vorhersehbare Resultate in unterschiedlichen Automatisierungsumgebungen.
Messen Sie Einsparungen in einem reproduzierbaren Ablauf
Die Antwort misst sowohl die eingereichte Quelle als auch das kompakte Ergebnis in UTF-8-Bytes. Dies bildet die Speicher- und Übertragungsgröße gewöhnlicher HTML-Ressourcen genauer ab als eine JavaScript-Zeichenzählung. Der Unterschied ist wichtig, wenn das Markup Akzente, nichtlateinische Schriften, Emoji oder andere Zeichen enthält, die mehrere Bytes benötigen. reduction_percent wird aus diesen exakten Summen berechnet und auf zwei Dezimalstellen gerundet. comments_removed zeigt zusätzlich, wie viele vollständige HTML-Kommentare gelöscht wurden. Ein Generator für statische Websites kann jede gerenderte Seite verarbeiten, den zurückgegebenen html-Wert speichern und die Messwerte im Buildbericht festhalten. Eine Vorlagenpipeline kann bei Strukturfehlern die Veröffentlichung stoppen, sobald erzeugtes Markup abgeschnitten oder falsch verschachtelt ist. Da die Verarbeitung rein und deterministisch erfolgt, liefert dieselbe Eingabe immer dieselbe Ausgabe und dieselben Messwerte, ohne Netzwerkaufrufe, externe Abhängigkeiten, Zufall oder zeitabhängiges Verhalten. Jede automatisierte API-Anfrage kostet $0.002. Die Operation komprimiert keine Transportdaten, bündelt keine verknüpften Ressourcen, optimiert kein eingebettetes JavaScript oder CSS und ändert nicht die Dokumentsemantik. Anschließend können Sie eine Serverkompression wie Brotli verwenden, um die Übertragungsgröße weiter zu reduzieren.
Anwendungsfälle
Statische Seiten für die Bereitstellung vorbereiten
Entfernen Sie Autorenkommentare und Einrückungen aus erzeugtem HTML, bevor Sie das kompakte Artefakt veröffentlichen.
Vorlagenausgaben validieren
Stoppen Sie einen Build, wenn erzeugtes Markup ein nicht geschlossenes oder falsch verschachteltes gewöhnliches Element enthält.
Die Markup-Verkleinerung verfolgen
Halten Sie ursprüngliche und kompakte Bytes, Kommentarzahl und prozentuale Ersparnis in einem Versionsbericht fest.
Häufige Fragen
Was entfernt der Minifizierer?
Er entfernt vollständige HTML-Kommentare und reine Leerraumtexte zwischen benachbarten Tags.
Entfernt er Leerzeichen aus sichtbarem Text?
Nein. Text mit mindestens einem anderen Zeichen bleibt einschließlich seiner umgebenden Leerzeichen unverändert.
Welche Elemente benötigen keinen schließenden Tag?
Standardmäßige leere HTML-Elemente sind ausgenommen; außerdem wird jedes ausdrücklich selbstschließende Element akzeptiert.
Wie werden Skripte und Stylesheets behandelt?
Ihre Inhalte werden bis zum passenden schließenden Tag unverändert kopiert, damit eingebetteter Code nicht als HTML analysiert wird.
Wie wird die Verkleinerung berechnet?
Die Fähigkeit vergleicht ursprüngliche und minifizierte UTF-8-Bytezahlen und rundet den Prozentwert auf zwei Dezimalstellen.
Was kostet eine API-Anfrage?
Jede API-Anfrage kostet $0.002.
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/dev2/minify-html \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"html":"<!doctype html>\n<html>\n <body>\n <!-- Greeting -->\n <h1>Hello</h1>\n </body>\n</html>"}'const res = await fetch("https://api.kit.forhosting.com/dev2/minify-html", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"html": "<!doctype html>\n<html>\n <body>\n <!-- Greeting -->\n <h1>Hello</h1>\n </body>\n</html>"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/minify-html",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"html": "<!doctype html>\n<html>\n <body>\n <!-- Greeting -->\n <h1>Hello</h1>\n </body>\n</html>"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/minify-html", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"html":"<!doctype html>\\n<html>\\n <body>\\n <!-- Greeting -->\\n <h1>Hello</h1>\\n </body>\\n</html>"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"html":"<!doctype html>\n<html>\n <body>\n <!-- Greeting -->\n <h1>Hello</h1>\n </body>\n</html>"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/minify-html", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"html": "<!doctype html>\n<html>\n <body>\n <!-- Greeting -->\n <h1>Hello</h1>\n </body>\n</html>"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.minify_html",
"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. |