SVG significa Scalable Vector Graphics. É o padrão aberto do W3C para imagens descritas como instruções em vez de pixels: desenhe um círculo aqui, siga esta curva, preencha essa forma com esta cor, coloque esta palavra nesse tipo de letra. Como a imagem é um conjunto de instruções, ela pode ser desenhada em qualquer tamanho sem ficar borrada ou pixelada, por isso logotipos, ícones, mapas e gráficos são tão frequentemente SVG.
Como um SVG armazena uma imagem
Um arquivo SVG é XML: texto legível que você pode abrir em qualquer editor. Um elemento <path> carrega uma cadeia compacta de comandos de desenho, <rect>, <circle> e <polygon> fazem o óbvio, <text> contém texto real e selecionável, e <g> agrupa elementos para que possam ser movidos ou estilizados juntos. Um atributo viewBox define o sistema de coordenadas, o que faz com que todo o desenho seja escalonado corretamente.
Por ser texto, um SVG é extremamente bem compactado; um SVG compactado com gzip (às vezes com a extensão .svgz) costuma ter apenas uma fração do tamanho original. Por também ser texto, um SVG pode ser estilizado com CSS, animado e programado. O navegador o trata como parte do documento, e não como uma imagem opaca.
Essa última capacidade tem um aspecto de segurança importante: um SVG pode conter um elemento <script>. Sempre que um SVG é aceito como upload de usuário, ele precisa ser higienizado ou servido de um modo que impeça a execução, e é por isso que alguns sites recusam SVG mesmo aceitando qualquer formato raster.
SVG é um contêiner ruim para fotografias. Você pode incorporar uma imagem raster dentro dele, mas então terá uma imagem de pixels embrulhada em XML, sem nenhum dos benefícios de escalonamento.
Quais metadados um SVG contém
SVG tem um elemento dedicado <metadata> e, como o padrão não define o que deve ir nele, os editores colocam muita coisa ali. O mais comum é conter RDF usando termos Dublin Core: dc:title, dc:creator, dc:date, dc:description, dc:rights e um URI de licença. Elementos <title> e <desc> também podem ficar na raiz ou em qualquer forma individual, onde funcionam como texto de acessibilidade para leitores de tela.
Depois há o controle interno do próprio editor, que geralmente é a maior parte. O Inkscape grava todo um namespace próprio: a geometria da janela do documento, nível de zoom e posição do cursor quando foi salvo pela última vez, linhas-guia, configurações de grade, nomes e visibilidade de camadas e uma string inkscape:version. O Illustrator incorpora um pacote XMP com seus próprios identificadores e histórico do documento. Nada disso desenha coisa alguma.
Daí se seguem dois pontos práticos. Os dados do editor podem facilmente ser a maior parte do arquivo, então passar um SVG por um otimizador antes de publicar muitas vezes reduz seu tamanho pela metade. E os nomes das camadas são texto que você escreveu: <g inkscape:label="client logo v3 REJECTED"> é invisível na imagem e perfeitamente visível no arquivo.
Quando usar SVG
Use SVG para qualquer coisa desenhada em vez de fotografada: logotipos, ícones, diagramas, gráficos, ilustrações, mapas. É a opção certa para a web, em que um arquivo atende a todas as densidades de tela, e para impressão, em que ele pode ser escalado para qualquer tamanho.
Use PNG ou JPG para fotografias e para qualquer coisa com tom contínuo. Exporte também uma cópia raster plana quando você precisar de uma imagem que abra em software muito antigo ou limitado para SVG, e remova os metadados do editor antes de publicar, tanto para reduzir o tamanho do arquivo quanto porque os nomes de camadas nem sempre são para o público.