Como melhorar a Pesquisa Google com dicionários de compactação

Publicado em: 14 de maio de 2025

O Transporte do dicionário de compactação é um novo padrão que permite compactar conteúdo repetido em solicitações e foi lançado no Chrome 130 no final de 2024. A Pesquisa Google adotou essa nova tecnologia e teve melhorias significativas.

A oportunidade

Há muita duplicação nas páginas da Web que visitamos. Muitas páginas do mesmo site consistem em grandes partes do mesmo código, seja HTML, CSS ou JavaScript, com apenas o conteúdo entre todo esse código mudando. Embora cada resultado seja uma combinação exclusiva de centenas de recursos que resultam em conteúdo totalmente exclusivo, ainda há muita semelhança no código enviado ao navegador para produzi-los.

Visualmente, a maioria das páginas de resultados da pesquisa é um pouco semelhante, não importa qual seja o termo de pesquisa inserido: na parte de cima, temos o logotipo do Google, a barra de pesquisa e alguns controles. No meio, temos algumas guias para o tipo de pesquisa e, em seguida, uma lista de resultados da pesquisa à esquerda, intercalada com vários widgets para ajudar o usuário, e contexto adicional à direita com painéis "sobre":

Página de resultados da Pesquisa Google típica com barra de pesquisa na parte de cima, resultados na coluna principal à esquerda e informações adicionais à direita
Página de resultados da Pesquisa Google

Por fim, na parte de baixo, temos as opções de paginação e o rodapé padrão. Isso é apenas o que está disponível visualmente. Nos bastidores, há muito código (HTML, CSS e JavaScript) para produzir essa página. Grande parte desse código é incorporada diretamente ao HTML da página como uma otimização de performance. Embora isso permita um carregamento de página mais rápido, ele não compartilha esse código entre diferentes páginas de resultados, como um recurso armazenado em cache externamente permitiria.

Compactação na Web

A compactação é uma tecnologia muito usada na Web. A compactação de recursos com gzip ou algoritmos mais recentes, como Brotli ou Zstandard, permite evitar a repetição em um arquivo com compactação sem perdas para empacotar todas as informações da forma mais compacta possível no servidor antes do envio. Em seguida, o navegador pode descompactar os bytes compactados para restaurar o conteúdo original. Para imagens, a compactação com perdas oferece benefícios semelhantes, removendo bytes extras que podem não ser perceptivelmente diferentes para os usuários.

Até recentemente, a compactação na Web era limitada à compactação em recursos. Não era possível compactar recursos diferentes e, certamente, não em páginas diferentes. Essa limitação foi reconhecida há muito tempo e os engenheiros da Web procuraram corrigi-la.

Transporte do dicionário de compactação para o resgate!

Browser Support

  • Chrome: 130.
  • Edge: 130.
  • Firefox Technology Preview: supported.
  • Safari: not supported.

Source

O Transporte do dicionário de compactação é um novo padrão que permite a compactação em recursos com o uso de "dicionários" compartilhados que permitem que séries comuns de bytes sejam substituídas por referências desse dicionário compartilhado.

Algoritmos de compactação modernos, como Brotli e Zstandard, oferecem suporte ao uso de dicionários de termos comuns que permitem maior compactação, substituindo esses termos por uma referência menor ao dicionário. O Brotli é até mesmo fornecido com um dicionário integrado de termos comuns da Web. O Transporte do dicionário de compactação se baseia nisso, oferecendo maneiras para o servidor e o navegador compartilharem dicionários personalizados.

Os dicionários personalizados podem ser um recurso já usado no site. Por exemplo, você pode usar app.v1.js como um dicionário ao fazer o download de app.v2.js para baixar apenas a diferença (geralmente conhecida como "compactação delta"). Como alternativa, um recurso de dicionário separado pode ser especificado com uma tag <link rel="compression-dictionary"> (ou cabeçalho HTTP Link equivalente).

Isso pode reduzir drasticamente o tamanho do download de recursos com muito conteúdo ou código compartilhado, como as páginas de resultados da pesquisa mencionadas anteriormente.

Uso de dicionários de compactação da Pesquisa Google

A equipe da Pesquisa Google está sempre buscando melhorar a performance da pesquisa. Eles foram um dos primeiros a adotar dicionários de compactação, pois viram o potencial dessa tecnologia.

A pesquisa usa a compactação Brotli compartilhada para as páginas de resultados com um arquivo de dicionário separado criado a partir de uma amostra representativa de resultados da pesquisa. Um pipeline automatizado robusto garante que o dicionário permaneça atualizado, acompanhando o conteúdo da página de resultados da pesquisa (SRP, na sigla em inglês) que muda com frequência e é lançado várias vezes ao dia. Você pode usar o DevTools para ver exatamente como isso funciona.

Quando um cliente carrega uma página de resultados da pesquisa pela primeira vez, o servidor fornece um link para o dicionário usando o cabeçalho HTTP Link: com um tipo de rel=compression-dictionary:

Cabeçalhos HTTP de resposta no Chrome DevTools com o cabeçalho Link rel=compression-dictionary destacado
Chrome DevTools mostrando o cabeçalho Link na guia "Rede"

Se o cliente oferece suporte à compactação do dicionário Brotli, mas ainda não armazenou em cache o dicionário compartilhado, o navegador faz o download desse dicionário durante o tempo de inatividade. A resposta do dicionário inclui o cabeçalho de resposta Use-As-Dictionary, que informa ao navegador para quais recursos ele pode usar esse dicionário:

Cabeçalhos HTTP de resposta no Chrome DevTools com o cabeçalho &quot;Use-As-Dictionary&quot; destacado
Chrome DevTools mostrando o cabeçalho Use-As-Dictionary na guia "Rede"

O dicionário vai usar a semântica cache-control padrão e estará disponível para todos os recursos que corresponderem às regras definidas nesse cabeçalho. Neste exemplo, as páginas começaram com /search.

Para carregamentos futuros da página de resultados da pesquisa, o navegador pode informar ao servidor que tem um dicionário usando o cabeçalho da solicitação HTTP Available-Dictionary. Atualizar a página mostra isso em ação:

Cabeçalhos HTTP de resposta no Chrome DevTools com o cabeçalho &quot;Available-Dictionary&quot; destacado
Chrome DevTools mostrando o cabeçalho Available-Dictionary na guia "Rede"

Com a caixa de seleção Preservar registro ativada e a filtragem, podemos comparar as duas respostas:

Comparação de dois downloads do mesmo recurso, sendo o de cima de 107 kB e o de baixo de 60 kB
Guia "Rede" do Chrome DevTools

Neste exemplo, a primeira solicitação é a resposta completa de 107 kB e usa a compactação Brotli (br), enquanto a segunda solicitação de recarregamento tem quase metade do tamanho, 60 kB, e usa a compactação Brotli compactada por dicionário (dcb), resultando em um tempo de download mais rápido.

No Chrome, você pode acessar a página chrome://net-internals/#sharedDictionary para visualizar os dicionários compartilhados e limpá-los se quiser repetir esse exemplo desde o início.

Página &quot;Dicionário compartilhado&quot; mostrando um dicionário compartilhado
Página #sharedDictionary do Net-Internals

Os resultados

A mudança foi lançada para usuários da pesquisa na primavera de 2025, inicialmente para usuários do Chrome. Isso reduziu o tamanho médio do payload HTML em todos os usuários do Chrome em 23% em comparação com a compactação Brotli padrão. Essa média geral inclui resultados não compactados por dicionário (por exemplo, usuários iniciantes sem um dicionário) e resultados de pesquisa compactados por dicionário. Para resultados compactados por dicionário, a economia é ainda maior, como vimos com a melhoria de quase 50% no exemplo anterior.

Isso resultou em uma melhoria de 1, 7% no Largest Contentful Paint (LCP) geral e até 9% em redes de alta latência. Isso pode parecer pequeno, mas a Pesquisa Google é um site hiperotimizado, então ganhos dessa magnitude são enormes. Outros sites podem ter melhorias ainda maiores com essa tecnologia.

Teste no seu site!

O Transporte do dicionário de compactação está pronto para uso em todos os navegadores baseados no Chromium (Chrome, Edge, Opera e assim por diante). É um aprimoramento progressivo que será ignorado por navegadores sem suporte, mas, à medida que mais navegadores oferecem suporte a ele, eles também podem se beneficiar.

Os desafios que essa tecnologia aborda não são específicos da Pesquisa Google. Muitos sites podem se beneficiar do Transporte do dicionário de compactação, seja com um dicionário separado, como a pesquisa usada, ou usando um recurso atual como o dicionário (como a versão anterior de um app ao lançar uma nova versão).

Confira o guia no MDN para mais detalhes sobre como essa tecnologia funciona e como você pode implementá-la no seu site.

Isso exige alguma configuração no servidor ou no processo de build para criar recursos compactados baseados em dicionário e veiculá-los conforme apropriado, mas os resultados podem ser muito impressionantes em termos de performance.