Durante muitos anos, o carregamento dinâmico de tipos de letra a partir de fonts.googleapis.com e fonts.gstatic.com foi a norma nos temas de WordPress. Bastava uma etiqueta <link> no cabeçalho para aceder a um vasto catálogo tipográfico. No entanto, perante o Regulamento Geral sobre a Proteção de Dados (RGPD) e as exigências do Core Web Vitals, este método acarreta sérios riscos jurídicos e perdas de velocidade.
Neste guia, analisamos o enquadramento legal resultante da sentença do tribunal de Munique, explicamos por que razão o endereço IP é considerado um dado pessoal e mostramos como implementar uma arquitetura local de fontes WOFF2 no WordPress e WooCommerce.
1. A Sentença do LG München I (Processo n.º 3 O 17493/20): Factos e Fundamentos
Em 20 de janeiro de 2022, a 3.ª Secção Cível do Tribunal Regional de Munique I (Landgericht München I, Processo n.º 3 O 17493/20) proferiu uma decisão marcante que deu origem a notificações judiciais em toda a União Europeia.
Os Factos
A empresa ré geria um sítio Web comercial que carregava tipos de letra do Google Fonts diretamente dos servidores da Google LLC nos Estados Unidos. Sempre que um utilizador acedia a uma página, o navegador enviava automaticamente um pedido HTTP à Google contendo:
- O endereço IP público completo do utilizador.
- A cadeia User-Agent (navegador e sistema operativo).
- O cabeçalho HTTP Referer com o endereço exato da página visualizada.
A Decisão do Tribunal
O tribunal considerou que este tratamento de dados violou o Regulamento (UE) 2016/679 (RGPD):
- Endereço IP como dado pessoal: De acordo com o Art. 4.º, ponto 1 do RGPD e a jurisprudência do Tribunal de Justiça da União Europeia (Processo C-582/14 Patrick Breyer contra República Federal da Alemanha, de 19 de outubro de 2016), um endereço IP dinâmico constitui um dado pessoal, desde que existam meios legais para identificar a pessoa em causa.
- Ausência de consentimento nos termos do Art. 6.º, n.º 1, alínea a) do RGPD: O utilizador não tinha prestado consentimento prévio, livre e esclarecido antes da transmissão dos dados à Google LLC.
- Recusa do interesse legítimo (Art. 6.º, n.º 1, alínea f) do RGPD): A ré alegou que a utilização do serviço externo decorria de razões estéticas e de otimização técnica. O tribunal rejeitou integralmente essa tese, sublinhando que as fontes tipográficas podem ser facilmente descarregadas e alojadas localmente pelo responsável pelo tratamento, evitando a transferência de dados para países terceiros (em conformidade com o Art. 44.º do RGPD).
- Indemnização ao abrigo do Art. 82.º, n.º 1 do RGPD: O tribunal fixou uma indemnização de 100 EUR por danos não patrimoniais pela perda de controlo sobre os dados pessoais e cominou uma sanção pecuniária até 250 000 EUR em caso de reincidência.
2. Por que motivo os avisos de cookies não resolvem a questão
Algumas agências tentam contornar a questão bloqueando o carregamento do Google Fonts até que o visitante clique em “Aceitar tudo” na barra de consentimento.
Esta abordagem traz desvantagens técnicas evidentes:
- Desvios de layout (FOIT / FOUT): Se o visitante rejeitar os cookies opcionais, a página é apresentada com tipos de letra genéricos do sistema (como Times New Roman), originando saltos visuais indesejados (Cumulative Layout Shift - CLS).
- Atraso no carregamento da página: As fontes só começam a descarregar após a execução do script de consentimento, prejudicando o Largest Contentful Paint (LCP).
- Prejuízo na conversão: Os clientes que valorizam a sua privacidade devem beneficiar de uma loja online legível e profissional.
A tipografia é um componente visual estrutural e não um mecanismo de rastreio publicitário. Deve residir no servidor do próprio sítio Web.
3. Benefícios de desempenho do alojamento local (Core Web Vitals)
A ideia de que a CDN da Google é mais rápida devido a uma cache partilhada entre navegadores deixou de ser verdadeira desde a introdução do isolamento de cache (cache partitioning) nos navegadores modernos. Para impedir ataques de rastreio e recolha de impressões digitais, o Chrome, Safari e Firefox mantêm agora caches estanques por cada domínio de primeiro nível.
O alojamento local proporciona melhorias evidentes:
| Métrica | Google Fonts Externo | Alojamento Local WOFF2 |
|---|---|---|
| Ligações externas | 2 domínios de terceiros (fonts.googleapis.com, fonts.gstatic.com) | 0 domínios adicionais (reutilização do mesmo canal ou CDN própria) |
| Sobrecarga DNS e TLS | 2 x resolução DNS + 2 x handshake TLS (100-250 ms perdidos) | 0 ms (multiplexagem sobre ligação HTTP/2 ou HTTP/3 existente) |
| Fiabilidade do serviço | Quebras na Google afetam a tipografia da sua loja | 100% autónomo e resiliente |
| Conformidade com o RGPD | Risco elevado de infração dos Art. 6.º e 44.º | Conformidade total (sem envio de dados para os EUA) |
4. Soluções no ecossistema WordPress
Existem dois caminhos principais para implementar o alojamento local no WordPress.
Opção A: Plugins dedicados a tipos de letra (ex.: OMGF / Host Webfonts Locally)
Criado por Daan van den Bergh, o OMGF foi concebido especificamente para intercetar folhas de estilo do Google Fonts:
- Funcionamento: Analisa as folhas de estilo registadas, descarrega os ficheiros WOFF2 para
wp-content/uploads/omgf/e gera uma folha de estilo local. - Vantagens: Ferramenta focada unicamente na gestão tipográfica.
- Limitações: Requer verificações e limpeza manual da cache de fontes após atualizações de temas.
Opção B: Pacote integrado de conformidade comercial (Shoplex)
No comércio eletrónico europeu, os lojistas WooCommerce têm de cumprir várias exigências legais em simultâneo: a Diretiva Omnibus (preço mais baixo nos últimos 30 dias), regras de faturação B2B, direito de livre resolução, sistemas de depósito de embalagens e os critérios do European Accessibility Act (EAA).
O plugin Shoplex reúne estas funcionalidades e inclui o módulo LocalFontsService:
- Interceção automática sem fugas (zero-leakage): Captura as folhas de estilo através do gancho
style_loader_srce elimina as etiquetas<link rel="preconnect" href="https://fonts.gstatic.com">. - Ficheiros WOFF2 otimizados: Descarrega apenas formatos modernos WOFF2 com suporte completo para carateres acentuados da língua portuguesa (
ç,ã,õ,é), mantendo os ficheiros com pesos reduzidos. - Cache de longa duração: Entrega os ficheiros com o cabeçalho
Cache-Control: public, max-age=31536000, immutable.
5. Implementação manual sem fugas num tema personalizado
Se desenvolve o seu próprio tema, pode integrar esta solução diretamente em PHP e CSS.
Passo 1: Desativar fontes remotas do tema
add_action( 'wp_enqueue_scripts', function(): void {
wp_dequeue_style( 'theme-google-fonts' );
wp_deregister_style( 'theme-google-fonts' );
}, 999 );Passo 2: Limpar ligações de pré-ligação externa
add_filter( 'wp_resource_hints', function( array $urls, string $relation_type ): array {
if ( in_array( $relation_type, array( 'preconnect', 'dns-prefetch' ), true ) ) {
$urls = array_filter( $urls, static function( string $url ): bool {
return ! str_contains( $url, 'fonts.googleapis.com' )
&& ! str_contains( $url, 'fonts.gstatic.com' );
} );
}
return $urls;
}, 10, 2 );Passo 3: Declarar regras @font-face no CSS
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('/wp-content/themes/o-seu-tema/assets/fonts/inter-v13-latin-regular.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0100-02AF;
}
@font-face {
font-family: 'Inter';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('/wp-content/themes/o-seu-tema/assets/fonts/inter-v13-latin-700.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0100-02AF;
}6. Procedimento de validação nas DevTools
Depois de aplicar a configuração, valide o tráfego de rede no navegador:
- Abra uma nova janela em modo privado (navegação anónima).
- Abra as Ferramentas de Programação (F12) e selecione o separador Rede (Network).
- Filtre por:
fonts. - Atualize a página (Ctrl+F5 ou Cmd+Shift+R).
- Critérios de sucesso:
- Nenhum pedido enviado para
fonts.googleapis.comoufonts.gstatic.com. - Todos os ficheiros
.woff2são servidos a partir do seu domínio. - O cabeçalho de resposta indica
content-type: font/woff2e diretivas de cache corretas.
- Nenhum pedido enviado para
Conclusão
A decisão do tribunal de Munique confirmou que a conveniência técnica não pode sobrepor-se à proteção dos dados pessoais dos utilizadores.
Alojando as Google Fonts localmente no WordPress, obtém-se plena conformidade com o Art. 6.º do RGPD e assegura-se simultaneamente uma redução tangível no tempo de resposta das páginas. Seja através de um plugin como o OMGF, do módulo integrado no Shoplex, ou de código no próprio tema, esta transição é hoje indispensável para qualquer loja online de qualidade.






