ToolDeck

HTML Minifier

Minifikujte HTML odstraněním mezer a komentářů

Zkusit příklad

HTML vstup

Minifikované HTML

Běží lokálně · Bezpečné pro vkládání tajných údajů
Minifikované HTML se zobrazí zde…

Co je minifikace HTML?

Minifikace HTML je proces zmenšení velikosti HTML dokumentu bez změny způsobu, jakým ho prohlížeč vykresluje. HTML minifier odstraňuje znaky, které slouží pouze pro čitelnost kódu vývojářem: mezery mezi tagy, komentáře, nepovinné uzavírací tagy a nadbytečné hodnoty atributů. Výstup je funkčně identický se zdrojovým kódem, ale menší v bajtech, což znamená rychlejší stahování a kratší dobu do prvního vykreslení stránky.

Prohlížeče parsují HTML do stromové struktury DOM a při tomto procesu zahazují většinu mezer. Sekvence mezer a zalomení řádků mezi dvěma tagy div nemá žádný vizuální vliv na vykreslenou stránku. Komentáře jsou parserem také ignorovány. Minifikace využívá těchto pravidel a odstraňuje vše, co by parser stejně zahodil, takže tato data vůbec nemusí být přenášena po síti.

Úspora z minifikace HTML se liší podle dokumentu. Silně komentované šablony, stránky generované serverem s hlubokým odsazením a výstup CMS s vloženými styly dosahují při samotné minifikaci často 15–30% zmenšení velikosti. U malých dokumentů jsou absolutní úspory skromné, ale na stránkách s vysokou návštěvností se i několik kilobajtů na načtení stránky sčítá na reálné úspory šířky pásma při milionech požadavků.

Proč používat tento HTML Minifier?

Vložte své HTML a okamžitě získejte minifikovaný výstup. Žádné nástroje k instalaci, žádné konfigurační soubory, žádné účty.

Okamžité výsledky
Výstup se zobrazuje při psaní. Vložte celou stránku nebo jediný úryvek a ihned uvidíte minifikovaný výsledek — bez čekání na dokončení CLI příkazu nebo kroku sestavení.
🔒
Zpracování s důrazem na soukromí
Veškerá minifikace probíhá ve vašem prohlížeči pomocí JavaScriptu. Vaše HTML nikdy neopustí vaše zařízení. Bezpečné pro použití s kódem, který obsahuje interní URL, tokeny nebo zákaznická data.
📊
Hlášení velikosti
Porovnejte původní a minifikovaný počet bajtů vedle sebe. Přesně zjistěte, kolik bajtů jste ušetřili, než se rozhodnete, zda nasadit minifikovanou verzi.
📋
Kopírování jedním kliknutím
Zkopírujte minifikovaný výstup do schránky jedním kliknutím. Vložte ho do svého nasazovacího procesu, přímo do e-mailové šablony nebo ho rovnou commitněte.

Případy použití HTML Minifieru

Vývoj frontendu
Minifikujte HTML šablony před nasazením do produkce. Zmenšete objem stránek generovaných serverem, výstup generátorů statických stránek nebo shell jednostránkových aplikací.
Backendové inženýrství
Odstraňte komentáře a mezery z HTML odpovědí generovaných serverovými frameworky jako Django, Rails nebo Laravel před jejich odesláním klientům.
DevOps a CI pipeline
Přidejte krok minifikace HTML do svého sestavovacího procesu. Ověřte, že se výstup správně vykresluje po minifikaci, než ho odešlete na staging nebo produkci.
QA a testování
Porovnejte minifikovaný výstup dvou sestavení a zkontrolujte neočekávané strukturální změny. Minifikace normalizuje mezery, takže strukturální diffy jsou přehlednější.
Optimalizace e-mailových šablon
E-mailoví klienti omezují velikost HTML e-mailů (Gmail ořezává zprávy nad 102 KB). Minifikujte e-mailové šablony, aby nepřekročily limit, a přitom zachovejte veškerý obsah.
Výuka webového výkonu
Studenti mohou vložit HTML a sledovat, které části jsou při minifikaci odstraněny. Tím se naučí, které znaky jsou pro prohlížeče sémanticky důležité a které jsou čistě kosmetické.

Co minifikace HTML odstraňuje

Plně vybavený HTML minifier provádí několik transformací nad rámec pouhého odstraňování mezer. Níže uvedená tabulka uvádí nejběžnější techniky, seřazené od nejbezpečnější (vždy bezztrátová) po nejagresivnější (může narušit okrajové případy při slepé aplikaci).

TechnikaPředPo
Whitespace between tags<div> <p> text </p> </div><div><p>text</p></div>
HTML comments<!-- TODO: fix later -->(removed entirely)
Redundant attribute quotesclass="main"class=main
Boolean attribute valuesdisabled="disabled"disabled
Empty attribute valuesid=""(attribute removed)
Optional closing tags</li>, </td>, </p>(removed when safe)
Type on script/styletype="text/javascript"(removed — default)
Protocol in URLshttps://cdn.example.com//cdn.example.com

Minifikace vs. komprese Gzip

Vývojáři se někdy ptají, zda je minifikace stále potřebná, když server již používá kompresi Gzip nebo Brotli. Krátká odpověď: ano, a společně fungují nejlépe.

Minifikace
Pracuje na úrovni textu. Odstraňuje znaky, které parser ignoruje: komentáře, mezery, nadbytečné atributy. Zmenšuje nezpracovanou velikost souboru ještě před aplikací jakékoli komprese. Provádí se jednou při sestavení.
Komprese Gzip / Brotli
Pracuje na úrovni bajtů. Hledá opakující se bajtové vzory a kóduje je kratšími odkazy. Aplikuje se na každou HTTP odpověď webovým serverem. Prohlížeč ji dekomprimuje při přijetí.

Minifikace zmenšuje vstup, který Gzip zpracovává, takže komprimovaný výstup je také menší. Pokyny Google PageSpeed doporučují použít obojí. Na typické stránce minifikace ušetří 15–25 % nezpracované velikosti a Gzip výsledek zkomprimuje o dalších 60–80 %. Celkově může celková velikost přenosu klesnout na 10–20 % původního neminifikovaného a nekomprimovaného dokumentu.

Příklady kódu

Níže jsou funkční příklady minifikace HTML ve čtyřech prostředích. Každý příklad odstraňuje komentáře a slučuje mezery.

JavaScript (html-minifier-terser)
import { minify } from 'html-minifier-terser'

const html = `
  <div class="card">
    <!-- user profile -->
    <p>  Hello, world!  </p>
  </div>
`

const result = await minify(html, {
  collapseWhitespace: true,
  removeComments: true,
  removeRedundantAttributes: true,
  removeEmptyAttributes: true,
})
// → '<div class="card"><p>Hello, world!</p></div>'
Python (htmlmin)
import htmlmin

html = """
<div class="card">
  <!-- user profile -->
  <p>  Hello, world!  </p>
</div>
"""

result = htmlmin.minify(html, remove_comments=True, remove_empty_space=True)
# → '<div class="card"><p>Hello, world!</p></div>'
Go (tdewolff/minify)
package main

import (
    "fmt"
    "github.com/tdewolff/minify/v2"
    "github.com/tdewolff/minify/v2/html"
)

func main() {
    m := minify.New()
    m.AddFunc("text/html", html.Minify)

    input := `<div class="card">
  <!-- user profile -->
  <p>  Hello, world!  </p>
</div>`

    result, _ := m.String("text/html", input)
    fmt.Println(result)
    // → <div class=card><p>Hello, world!</div>
}
CLI (html-minifier-terser)
# Install globally
npm install -g html-minifier-terser

# Minify a file
html-minifier-terser --collapse-whitespace --remove-comments input.html -o output.html

# Pipe from stdin
cat index.html | html-minifier-terser --collapse-whitespace --remove-comments

# With all common optimizations
html-minifier-terser \
  --collapse-whitespace \
  --remove-comments \
  --remove-redundant-attributes \
  --remove-empty-attributes \
  --minify-css true \
  --minify-js true \
  input.html -o output.min.html

Často kladené otázky

Může minifikace HTML rozbít mou stránku?
Bezpečná minifikace (odstranění komentářů a sloučení mezer) nemění vykreslování v prohlížeči. Agresivnější možnosti, jako je odstraňování nepovinných uzavíracích tagů nebo slučování booleovských atributů, jsou součástí specifikace HTML a fungují ve všech moderních prohlížečích. Pozornost věnujte obsahu tagů pre a textarea, kde jsou mezery důležité. Dobré minifiery zachovávají mezery uvnitř těchto prvků.
O kolik se HTML po minifikaci zmenší?
Typická úspora se pohybuje od 10 % do 30 % původní velikosti souboru, v závislosti na množství mezer a komentářů ve zdrojovém kódu. Silně odsazené a dobře komentované šablony dosahují největších úspor. Již kompaktní HTML s minimálním formátováním se může zmenšit jen o 5–8 %.
Mám minifikovat HTML, i když již používám Gzip?
Ano. Minifikace a komprese pracují na různých úrovních. Minifikace odstraňuje nadbytečné textové znaky; Gzip hledá opakující se bajtové vzory. Nejprve minifikovat znamená, že Gzip má méně dat ke zpracování, čímž vznikne menší komprimovaný výstup. Google doporučuje použít obojí.
Je bezpečné minifikovat HTML obsahující vložený JavaScript?
Základní minifier slučující mezery neupravuje obsah uvnitř tagů script. Minifiery s volbou --minify-js také komprimují vložený JavaScript pomocí JS minifieru. Pokud vaše vložené skripty závisí na důležitých mezerách (vzácné), otestujte výstup. Většina vložených skriptů po minifikaci funguje bez problémů.
Jaký je rozdíl mezi minifikací HTML a kompresí HTML?
Minifikace je textová transformace při sestavení, která odstraňuje nepotřebné znaky. Komprese (Gzip, Brotli) je binární kódování na straně serveru, které zmenšuje HTTP odpověď. Minifikace je nevratná (komentáře jsou odstraněny), zatímco kompresi prohlížeč při přijetí obrátí.
Ovlivňuje minifikace SEO?
Ne. Crawlery vyhledávačů parsují DOM stejně jako prohlížeče. Ignorují mezery a komentáře. Minifikace nemění strukturu DOM, takže nemá žádný vliv na indexování stránky vyhledávači. Rychlejší načítání stránky díky menšímu HTML může nepřímo zlepšit hodnocení prostřednictvím signálů Core Web Vitals.
Jak se minifikace HTML liší od minifikace CSS nebo JavaScriptu?
Minifiery CSS a JavaScriptu přejmenovávají proměnné, odstraňují mrtvý kód a provádějí optimalizace specifické pro tyto jazyky. HTML minifiery jsou jednodušší, protože HTML nemá žádné proměnné ani spustitelnou logiku k optimalizaci. Minifikace HTML se zaměřuje na mezery, komentáře a nadbytečnou syntaxi atributů.