Minificar HTML
Tire comentários e espaços em branco e reduza o CSS e o JavaScript dentro da página — sem mexer no espaçamento que realmente aparece. Seu código-fonte nunca sai do navegador.
- Nunca armazenado
- Sem fila, sem espera
- Sem cadastro, sem marca d'água
O HTML minificado aparece aqui.
Como funciona
Cole seu HTML
Ou solte o arquivo aqui. Nada fica armazenado — e isso importa mais para código-fonte do que para quase tudo.
Escolha até onde ir
Comentários, espaços em branco, CSS embutido e JavaScript embutido têm cada um sua própria opção.
Copie ou baixe
Você vê quanto ficou menor, com o antes e o depois.
O espaço em branco que importa e o que não importa
Em HTML, um espaço entre dois elementos inline é um espaço de verdade, e é isso que separa um minificador cuidadoso de um que quebra páginas. Remova a quebra de linha entre dois links e as palavras grudam na tela; remova o recuo dentro de um bloco pre ou de um textarea e o próprio conteúdo muda, porque ali o espaço em branco é conteúdo. Por isso, o espaço em branco só é removido onde comprovadamente não aparece na página, e fica exatamente como está onde aparece. Um minificador que tira todos os espaços do mesmo jeito gera um arquivo menor e uma página visivelmente errada.
Os comentários saem, já que servem para quem mantém o código-fonte, não para quem lê a página — com exceção dos comentários condicionais, que são instruções, não anotações. Atributos redundantes são descartados: um type="text/javascript" em um elemento script é o padrão há uma década, e method="get" em um formulário diz o que o formulário já faz.
Remover as aspas dos atributos gera HTML válido e vem desativado, de propósito. A especificação permite um valor de atributo sem aspas, desde que ele não tenha espaços nem caracteres problemáticos, e os navegadores lidam com isso perfeitamente. Os motores de template, muitas vezes, não: uma expressão Blade, Twig, Handlebars ou JSX dentro de um atributo sem aspas deixa de ser interpretada corretamente, e a falha aparece na hora do build, em um arquivo que ninguém quer ler. O ganho é pequeno e o risco não é, então é opcional.
A medida honesta do que isso ganha é depois da compressão, não antes. Os servidores enviam o HTML comprimido com gzip ou brotli, e esses algoritmos são ótimos com espaços em branco repetidos — então um documento que cai de 100 KB para 70 KB ao ser minificado pode passar só de 12 KB para 11 KB na transferência. Minificar HTML vale a pena, e é o menor dos três ganhos; a folha de estilos e o script são onde está o peso de verdade.
Quando você precisa de outra coisa
Para um site, e não um arquivo, isso deve ficar no build, não em uma aba do navegador. Todos os frameworks e geradores de sites estáticos atuais minificam o HTML no build, e fazer isso à mão significa que deixa de acontecer no momento em que alguém esquece. As bibliotecas por trás deles podem ser configuradas transformação por transformação, o que vale a pena quando uma regra específica está causando problema.
Antes de otimizar a marcação, confira quanto a página realmente pesa. Em quase todo site real, o HTML é um erro de arredondamento perto das imagens, das fontes e do JavaScript — o Lighthouse ou o próprio painel de rede do navegador mostra isso em segundos, e a resposta costuma ser que uma imagem de destaque não otimizada custa mais do que todos os bytes de marcação da página.
Perguntas frequentes
Meu código fica armazenado em algum lugar?
Não, e para código-fonte esse é o ponto. Nada fica armazenado e nenhum servidor o vê. Colar código proprietário em um minificador online que o envia para algum lugar é uma divulgação, diga o site o que disser sobre retenção — e é exatamente o tipo de coisa que se faz com pressa, sem pensar.
Minificar vai mudar a aparência da página?
Não do jeito que está configurado aqui. Os espaços em branco só são reduzidos onde não aparecem na página: entre elementos de bloco, como divs e itens de lista. O espaço ENTRE elementos INLINE é mantido, porque removê-lo junta visivelmente duas palavras — "</span> <span>" é um espaço real na tela e "</span><span>" não é. O conteúdo de <pre> e <textarea> fica intacto, byte por byte. E a remoção de tags de fechamento opcionais está desativada de propósito: é HTML válido, mas muitos motores de template e clientes de e-mail interpretam mal o resultado.
O que exatamente é removido?
Comentários, espaços em branco que nunca apareciam na página e as folgas dentro dos blocos <style> e <script>. A estrutura da marcação, os atributos e o texto ficam intactos — a ferramenta é verificada interpretando a página antes e depois e confirmando que o número de elementos, os itens de lista e o texto visível são idênticos.
Devo remover as aspas dos atributos?
Só se o resultado for direto para um navegador. É HTML válido e economiza um pouco, mas atributos sem aspas quebram alguns motores de template, alguns clientes de e-mail e a maioria dos parsers ingênuos. A opção vem desativada, e a página avisa quando você a ativa.
Ele minifica o CSS e o JavaScript dentro da página?
Sim, os dois, do mesmo jeito que os nossos minificadores de CSS e JavaScript. Uma exceção: se o seu CSS embutido usa aninhamento nativo ou media queries modernas, a etapa de CSS é desativada nessa execução — o minificador de CSS é anterior a esses recursos e apagaria regras sem avisar. O HTML continua sendo minificado, e a página avisa que isso aconteceu em vez de devolver uma página sem estilos.
Quanto menor vai ficar?
Para HTML escrito à mão, com recuo e comentários, geralmente de 10 a 30%. Depois, o gzip do seu servidor faz a maior parte do trabalho restante — minificar antes ainda ajuda, porque os dois ganhos se somam, mas não espere que só a minificação corte um arquivo pela metade.
Posso minificar um site inteiro de uma vez?
Aqui é uma página por vez. Para um site com muitas páginas, minifique como parte do build ou do deploy, para que todas as páginas sejam tratadas do mesmo jeito a cada versão — e mantenha o código-fonte legível no controle de versão, nunca o resultado minificado.
Bom saber: Os espaços em branco só são reduzidos onde não aparecem na página, então o texto dentro de pre e textarea fica exatamente como está e os espaços entre elementos inline são mantidos. Remover as aspas dos atributos gera HTML válido, mas quebra alguns motores de template — por isso vem desativado.
Coloque esta ferramenta no seu site
Grátis para qualquer blog, página de turma ou artigo de ajuda. Cole um único trecho de código e seus visitantes podem usá-la direto na sua página.
Ferramentas relacionadas
Minificar CSS
Reduza uma folha de estilos, ou saiba por que não dá
Minificar JavaScript
Comprima JavaScript, com privacidade
Formatador XML
Indente XML para conseguir ler
Visualizar Markdown
Veja seu Markdown como o GitHub exibe
Remover linhas duplicadas
Tire repetições, ordene e organize uma lista
Converter maiúsculas e minúsculas
MAIÚSCULAS, minúsculas, Iniciais Maiúsculas, camelCase e mais