Visão geral

O Google AMP Cache disponibiliza cópias em cache de conteúdo de AMP válido publicado na Web. Disponibilize conteúdo diretamente do Google AMP Cache para oferecer uma experiência de usuário rápida.

Para aproveitar o Google AMP Cache, um URL de AMP precisa ser acessado diretamente do cache usando o formato de URL do cache de AMP. Toda vez que um usuário acessa o conteúdo de AMP em cache, esse conteúdo é atualizado automaticamente, e a versão atualizada é disponibilizada ao próximo usuário depois de o conteúdo ter sido armazenado em cache.

Formato de URL do cache de AMP

O formato do URL do cache de AMP consiste nos seguintes componentes:

Componente Descrição
Nome do subdomínio

Os subdomínios criados pelo Google AMP Cache serão legíveis quando os limites de caracteres e as especificações técnicas permitirem e se assemelharão ao domínio do próprio editor. Quando possível, o Google AMP Cache criará cada subdomínio:

  1. convertendo o domínio do documento AMP de IDN (Punycode) para UTF-8;
  2. substituindo cada "-" (traço) por "--" (dois traços);
  3. substituindo cada "." (ponto) por um "-" (traço);
  4. revertendo a conversão para IDN (Punycode).

Por exemplo, pub.com será mapeado como pub-com.cdn.ampproject.org. Quando as limitações técnicas impedirem um subdomínio legível, um hash unidirecional será usado.

Tipo de conteúdo O tipo de conteúdo é um dos seguintes: "c" para um documento HTML para AMP, "i" para uma imagem ou "r" para um recurso, como uma fonte. O Google AMP Cache retorna um erro 404 para recursos que não correspondem a esses tipos de conteúdo (consulte o erro principal).
"s" opcional Se presente, exige que o Google busque o conteúdo na origem usando TLS (HTTPS seguro). Se o "s" não estiver presente, o conteúdo será buscado a partir da origem usando HTTP simples.
URI URI do conteúdo a ser buscado. O URI não pode conter um esquema, isto é, não pode ser "http://" ou "https://".

Como encontrar o nome do subdomínio

Normalmente, o nome do subdomínio de um URL do Google AMP Cache será uma conversão legível do URL original usando as etapas descritas acima. No entanto, como há circunstâncias em que isso pode não ser verdade, a melhor maneira de recuperar URLs do Google AMP Cache para aplicativos prontos para produção é usar a API Google AMP Cache URL.

Em situações de não produção, para determinar o nome do subdomínio gerado pelo Google AMP Cache, teste a ferramenta interativa Using the Google AMP Cache em ampbyexample.com.

Exemplo de solicitação de documento usando TLS

Solicitação de um documento HTML para AMP (especificado com o prefixo /c) buscado em https://example.com/amp_document.html:

https://example-com.cdn.ampproject.org/c/s/example.com/amp_document.html

Como /s segue o prefixo /c, o documento será buscado em example.com usando TLS.

Exemplo de solicitação de imagem usando HTTP simples

Solicitação de uma imagem (especificada com o prefixo /i) buscada em http://example.com/logo.png:

https://example-com.cdn.ampproject.org/i/example.com/logo.png

Como não há /s após o prefixo /i, o Google busca a imagem em example.com usando HTTP simples, não HTTP por TLS.

Exemplo de parâmetro de consulta

O formato do URL do cache de AMP também pode incluir parâmetros na string de consulta. Segue-se um exemplo de HTTPS com parâmetros: https://example-com.cdn.ampproject.org/c/s/ampbyexample.com/g?value=Hello%20World

Atualizações do Google AMP Cache

Quando um usuário solicita um documento AMP a partir do Google AMP Cache, o cache solicita automaticamente atualizações para poder disponibilizar um novo conteúdo para o próximo usuário depois que ele tiver sido armazenado. Com esse modelo, as atualizações dos documentos AMP se propagam de forma rápida e automática. Poucos usuários verão a versão não atualizada após sua atualização.

O cache segue um modelo "stale-while-revalidate". Ele usa os cabeçalhos de cache da origem, como Max-Age, como hints para decidir se um determinado documento ou recurso está desatualizado. Quando um usuário faz uma solicitação de algo que está desatualizado, essa solicitação faz com que uma nova cópia seja buscada para que o próximo usuário receba o conteúdo atualizado.

Para limitar a quantidade de carga gerada pelos sites dos editores, o Google AMP Cache considera qualquer documento como atualizado por pelo menos 15 segundos e qualquer recurso como atualizado por pelo menos 1 minuto. Observe que esses números podem mudar no futuro, já que ajustamos o cache para ter um equilíbrio ideal entre a atualização e o carregamento nos sites dos editores.

Otimizações e modificações de cache

O Google AMP Cache realiza otimizações e modificações, como as seguintes:

  • Valida se o conteúdo está realmente no formato AMP, atendendo a todas as metas de desempenho de AMP.
  • Armazena imagens e fontes em cache, além de documentos AMP.
  • Limita as dimensões máximas da imagem para evitar problemas de memória e pouca capacidade de resposta do navegador.
  • Várias transformações para melhorar a eficiência de envio de imagens por meio da tag amp-img, como:
    • remoção de dados invisíveis ou difíceis de ver, como determinados metadados;
    • conversão de imagens para formatos menores e melhor otimizados para dispositivos móveis, como a conversão de imagens em formato GIF, PNG e JPEG para WebP em navegadores compatíveis com WebP;
    • transformação da imagem para uma qualidade inferior se a solicitação incluir o cabeçalho Save-Data;
    • geração de versões de tamanhos alternativos e adição de atributos srcset, para compatibilidade com o envio de imagens de tamanho responsivo.
  • Veicula por meio de um canal seguro (HTTPS) e usa os protocolos mais recentes da Web (SPDY, HTTP/2).
  • Limpa os documentos AMP para evitar ataques XSS com base em tags HTML incorretamente fechadas, comentários e muito mais.

Ao fazer as transformações acima, o Google AMP Cache desconsidera o cabeçalho "Cache-Control: no-transform".

Limpeza de HTML

O Google AMP Cache reescreve todos os documentos para normalizar a análise. Por exemplo:

  • Todos os comentários HTML são removidos.
  • Os nomes de tags e atributos são escritos em letras minúsculas.
  • Os valores de atributo aparecem de forma consistente entre aspas e com escape.
  • Todas as tags são fechadas, exceto os elementos vazios de HTML5.
  • O espaço em branco dentro das tags é removido.
  • O texto é inserido com escape.
  • Caracteres de texto codificados são simplificados, usando caracteres equivalentes UTF-8.
  • Elementos que só podem estar no body são movidos para o body.
  • Os links de saída são absolutos para que continuem a funcionar quando o documento for disponibilizado a partir da origem do Google AMP Cache, em vez da origem do editor.

Inserir tags de pré-busca

O Google AMP Cache adiciona várias tags de hint de pré-busca para navegadores para ajudar no carregamento antecipado de recursos. Por exemplo, <link href='https://fonts.googleapis.com/css?family=Lato' rel='stylesheet’> é alterado para:

<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
<link href="https://fonts.gstatic.com" rel="preconnect">
<link href="https://fonts.gstatic.com" rel="dns-prefetch">