Bhinish Dhiman· Atualizado 5 de outubro de 2026
Como reduzir o tamanho de um SVG sem quebrar o arquivo
Traduzido do original em inglês. Ler o original
Passe o arquivo pelo SVGO removendo os metadados do editor e cortando a precisão das coordenadas para três casas decimais, ou duas em ícones, e depois compare uma prévia renderizada com o original. Mantenha o viewBox e o elemento title: remover o viewBox impede o arquivo de se redimensionar, e remover o title tira o nome acessível dele, e é por isso que o SVGO 4 mantém os dois por padrão. Avalie a economia pelo tamanho com gzip, que é o que vai para o ar.
Um SVG exportado de uma ferramenta de design é, em boa parte, texto que o navegador descarta: metadados do editor, comentários e coordenadas escritas com seis casas decimais. Remover isso é seguro. O problema é que duas das configurações que mais encolhem um arquivo também o quebram, e a contagem de bytes não diz qual das duas coisas aconteceu.
Otimize um SVG com a ferramenta
- Abra o SVG optimiser. Cole o seu código na caixa chamada SVG markup (código SVG), pressione Open SVG files (abrir arquivos SVG), embaixo dela, ou solte arquivos SVG em qualquer lugar da página; vários arquivos são otimizados juntos, cada um no seu cartão. A caixa começa com um pequeno ícone de exemplo, e a linha de contagem dela diz quantos caracteres e linhas ela tem.
- Não há botão para pressionar: cada arquivo é otimizado de novo toda vez que você muda o texto dele ou uma configuração. Leia os números em Result (resultado): Before (antes), After (depois), Saved (economia) e Gzipped (com gzip, antes → depois, “which is what ships”, o que vai para o ar). O cartão de cada arquivo mostra o próprio antes e depois.
- Mova Coordinate precision (precisão das coordenadas). Ela vai de 0 a 6 casas decimais e começa em 3. Abaixo de 2, aparece um aviso embaixo do controle.
- Deixe Run repeatedly until it stops shrinking (repetir até parar de encolher) marcado. Ele vem ativado por padrão e repete a otimização até que uma passada não economize mais nada.
- Abra More options (mais opções) para ver Options that can break the file (opções que podem quebrar o arquivo): Remove viewBox, Remove <title> e Shorten and drop unused ids. Todas vêm desmarcadas, e cada uma diz, embaixo do nome, o que custa. A linha embaixo de More options diz quais estão ligadas, e Result as nomeia mesmo com o grupo fechado.
- Compare as duas prévias renderizadas, chamadas Original e Optimised. Se forem diferentes, foi a última configuração que você mudou.
- Pressione Download optimised SVG (ou a tecla D) para salvar o resultado, como
optimised.svgpara código colado oulogo-optimised.svgpara um arquivo chamadologo.svg, ou Copy SVG code (copiar o código SVG, ou a tecla C). Com vários arquivos, All 3 as .zip salva todos juntos.
O que cada configuração remove, e o que pode quebrar
| Configuração | Estado inicial | O que economiza | O que pode quebrar |
|---|---|---|---|
| Comentários, metadados do editor, definições não usadas | Sempre ativo | Os bytes fáceis de qualquer exportação de ferramenta de design | Nada que você consiga ver |
| Coordinate precision | 3 casas decimais | A maior parte da economia numa exportação típica | As curvas, abaixo de 2 casas |
| Run repeatedly | Ativo | O que uma única passada deixou para trás | Nada |
| Remove viewBox | Desmarcado | Pouquíssimos bytes | O redimensionamento |
Remove <title> |
Desmarcado | O texto do título | O nome acessível |
| Shorten and drop unused ids | Desmarcado | As strings de id | CSS externo, scripts e referências <use> vindas de outros documentos |
A precisão é onde estão os bytes
Precisão das coordenadas é o número de casas decimais mantidas em cada número do arquivo. Ferramentas de design costumam escrever seis ou mais, e nenhuma tela consegue mostrar a diferença.
O próprio exemplo da ferramenta mostra a escala disso. O sinal de visto dele é desenhado por este path:
M 16.000000 24.000000 L 22.000000 30.000000 L 32.000000 14.000000
Essa string tem 65 caracteres. Cada uma das seis coordenadas traz um ponto decimal e seis zeros, então 6 × 7 = 42 desses 65 caracteres não dizem absolutamente nada. Quando os dígitos finais não são zeros, num ícone desenhado no tamanho pretendido eles ainda descrevem uma diferença muito menor que um pixel, e é isso que o controle corta: três casas é o ponto de partida, duas costumam bastar para um ícone, e abaixo de duas as curvas se deformam visivelmente. A prévia lado a lado existe para você ver isso acontecer em vez de confiar numa porcentagem.
As duas configurações que quebram arquivos
viewBox é o atributo que mapeia as coordenadas internas de um desenho para a caixa em que o SVG for desenhado. É ele que permite que um mesmo arquivo seja exibido em qualquer tamanho. Remova-o e o SVG fica preso aos atributos width e height: não preenche um contêiner nem responde ao dimensionamento por CSS. Essa é a forma mais comum de um ícone otimizado acabar no tamanho errado em produção, e a configuração economiza pouquíssimos bytes em troca.
O elemento <title> é como um leitor de tela dá nome a um SVG. Remova-o e um gráfico informativo é anunciado como nada. Só é seguro removê-lo de um ícone puramente decorativo que já esteja escondido das tecnologias assistivas com aria-hidden.
O SVGO, o motor que a ferramenta usa, tirou essas duas opções do preset padrão na versão 4 exatamente por esses motivos. Se você comparar o resultado da ferramenta com o de um otimizador mais antigo e este sair um pouco maior, um viewBox e um title mantidos quase sempre são a diferença. O arquivo menor era o quebrado.
Confira os seus ids à mão
Os ids são o risco mais silencioso. Se algo fora do SVG se refere a um id dentro dele (uma folha de estilo, um script ou um elemento <use> em outro documento apontando para dentro de um sprite), encurtar ou remover esse id quebra a referência sem nenhuma mudança visível na prévia, porque a prévia mostra o arquivo sozinho.
Por isso, deixe Shorten and drop unused ids desmarcado para qualquer arquivo para o qual outro arquivo aponte, e marque-o só para um ícone independente, em que nada fora do arquivo se importa. Num sprite, os ids são a interface inteira.
Essa caixa nem sempre fez o que dizia. Enquanto escrevíamos este guia, descobrimos que o SVGO 4.1, a versão que a ferramenta usa, ainda inclui a limpeza de ids no preset padrão, então os ids eram encurtados ou descartados mesmo com a caixa desmarcada. Agora a ferramenta desliga explicitamente essa limpeza quando a caixa está desmarcada, e um teste no código do site verifica os dois sentidos. Se você otimizou um sprite aqui antes de outubro de 2026, procure no resultado os ids de que o seu site depende.
Os bytes brutos exageram a economia
Os servidores comprimem o SVG na transmissão, e a compressão já lida com repetições. Dois resultados que parecem muito distantes sem compressão costumam ficar bem mais próximos com gzip, e é por isso que a ferramenta mostra os números com gzip ao lado dos brutos. Se uma configuração arriscada compra uma grande economia bruta e quase nada com gzip, fique com o arquivo mais seguro.
Outras formas de fazer
O SVGO também roda na linha de comando:
npx svgo input.svg -o output.svg
Esse comando usa o preset padrão do SVGO. Da versão 4 em diante, o padrão mantém o viewBox e o elemento title, como a ferramenta faz. Para a precisão e as outras configurações, veja a documentação do próprio SVGO. Não existe otimizador de SVG nativo no macOS nem no Windows.
Como confirmar que nada foi enviado
O SVGO roda na aba. Na primeira vez que a página otimiza alguma coisa, o que acontece assim que o exemplo carrega, o navegador baixa o código do próprio SVGO, cerca de 195 KB com gzip; essa é a única requisição que você vai ver no painel Network das ferramentas de desenvolvedor, e ela chega em vez de sair. Depois disso, você pode se desconectar da rede, colar o seu arquivo, e a ferramenta continua funcionando.
Próximo passo
Cole o seu arquivo no SVG optimiser, baixe a precisão para dois e compare as prévias. Se o SVG for um logo a caminho de virar favicon, o Favicon generator o aceita diretamente. Se você pretende embuti-lo no CSS, o Data URI converter diz se vale a pena.