O Google Pagespeed me diz para aproveitar o cache do navegador quando o cache já está ativado

8

O Google Pagespeed Insights ainda me diz que preciso ativar o cache do navegador, mas não entendo o que está faltando. Estou usando o cloudflare com otimizações ativadas. Eu vejo esse cabeçalho HTTP nas ferramentas de desenvolvedores do chrome:

controle de cache: público, idade máxima = 86400

então o cache já parece ativado! Eu também adicionei

<staticContent>
    <clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00" />
</staticContent>

no meu arquivo web.config.

Eu não sei mais o que fazer. Aqui está o erro que o Google me dá:

insira a descrição da imagem aqui

euge9522
fonte
2
Você precisa fazer aproximadamente 8 dias para expirar para passar essa regra.
dhaupin

Respostas:

6

24 horas é muito pouco para o controle de cache :) Em teoria, as imagens nunca mudam sem que o nome também mude; portanto, você pode definir isso facilmente para um ano (ou um mês, se você se sentir mais confortável com isso).

Se você substituir uma imagem por uma nova, ela terá um novo nome. picture-of-cat-on-18th-birthday.jpgde repente não será outra imagem com o mesmo nome de arquivo. Por esse motivo, os nomes de arquivos devem ser um pouco específicos ao seu conteúdo.

Para outros tipos de recursos como CSS e JS, convém optar por uma tática diferente. Você (frequentemente) altera arquivos e nunca / quase não altera, deseja dividir o tamanho do cache deles:

  • nunca mudando -> cache muito longo
  • mudando -> cache baixo

Isso não é factível. Você pode fazer os dois ou nenhum, .htaccess vê um tipo de arquivo.
Por isso, você o define para o cache longo e usa um postfix para forçar um novo download, se ele mudar:

<script src="static.js" />  
<script src="changing.js?last_update=150422" />

Dessa forma, o usuário só precisará fazer o download novamente se você realmente fez uma alteração.
Esta técnica funciona em todos os recursos. Sempre almeje a maior duração de armazenamento em cache.

Martijn
fonte
obrigado! resolveu o problema. Sim, foi muito curto, colocou tudo em 8 dias para que não me desse mais a mensagem. problema é os widgets! coisas como purechat e kudobuzz, plugin do facebook e google +. eles estão retardando o meu site e não cache bem ...
euge9522
connect.facebook.net/en_US/all.js (20 minutos) connect.facebook.net/it_IT/sdk.js (20 minutos) apis.google.com/js/api.js (30 minutos) oauth.googleusercontent.com … E: rpc: shindig.random: shindig.sha1.js? C = 2 (60 minutos) google-analytics.com/analytics.js (2 horas)
euge9522
Você pode definir um cache enorme nos arquivos CSS e JS, contanto que você consulte o carimbo de data / hora do src ... com o qual você pode fazer dinamicamente filemtime(). Então, se o arquivo for modificado, uma nova URI será criada, forçando a readquirição do ativo sem limpar caches e outras coisas. Pode fazer o mesmo com imagens ou o que quer que seja. E acho que o Google gosta de um tempo de cache de aproximadamente 8 dias no mínimo para passar a velocidade da página.
precisa saber é o seguinte
4

Vejo que a resposta anterior diz que 24 horas não são suficientes. Mas, olhando para o documento do Google: https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching#defining-optimal-cache-control-policy , diz que as imagens são armazenadas em cache por 1 dia para um cache ideal.

Fazer cache de imagens por um curto período de tempo faz sentido, porque, para melhorar o SEO, é melhor não imprimir as imagens. Portanto, é uma boa escolha se você deseja alterar a imagem.

Além disso, após 24 horas as imagens serão carregadas novamente (quando você definir o controle de cache para 1 dia), ele usará a etiqueta eletrônica e comparará as imagens, fazendo uma ida e volta ao servidor.

Portanto, permanece a questão de por que a ferramenta de insight de velocidade da página não respeita a recomendação do Google.

Samuel
fonte