Google Pagespeed mi dice di sfruttare la memorizzazione nella cache del browser quando la memorizzazione nella cache è già abilitata


8

Google Pagespeed Insights mi dice ancora che devo abilitare la memorizzazione nella cache del browser, ma non capisco cosa mi sto perdendo. Sto usando cloudflare con le ottimizzazioni abilitate. Vedo questa intestazione HTTP negli strumenti per sviluppatori di Chrome:

controllo cache: pubblico, età massima = 86400

quindi la memorizzazione nella cache sembra già abilitata! Ho anche aggiunto

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

nel mio file web.config.

Non so cos'altro fare. Ecco l'errore che Google mi dà:

inserisci qui la descrizione dell'immagine


2
È necessario fare ~ 8 giorni per la scadenza al fine di passare quella regola.
Dhaupin,

Risposte:


6

24 ore sono troppo poche per il controllo della cache :) In teoria, le immagini non cambiano mai senza cambiare anche il loro nome, quindi puoi impostarlo facilmente su un anno (o un mese se ti senti più a tuo agio con quello).

Se si sostituisce un'immagine con una nuova immagine, ha un nuovo nome. picture-of-cat-on-18th-birthday.jpgnon sarà improvvisamente un'altra immagine con lo stesso nome file. Per questo motivo, i nomi dei file dovrebbero essere in qualche modo specifici per il loro contenuto.

Per altri tipi di risorse come CSS e JS potresti voler optare per una tattica diversa. Hai (spesso) cambiando file, e non cambiando mai / a malapena, vuoi dividere la loro lunghezza nella cache:

  • mai cambiando -> cache molto lunga
  • cambiando -> cache bassa

Questo non è fattibile. Puoi farli entrambi o nessuno, .htaccess vede un tipo di file.
Per questo motivo, lo si imposta sulla cache lunga e si utilizza un postfix per forzare un nuovo download se cambia:

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

In questo modo l'utente deve scaricarlo nuovamente solo se hai effettivamente apportato una modifica.
Questa tecnica funziona su tutte le risorse. Puntare sempre alla massima durata della memorizzazione nella cache.


grazie! problema risolto. sì, era troppo corto, ha messo tutto a 8 giorni, quindi non mi darà più il messaggio. il problema è i widget! cose come purechat e kudobuzz, plugin di Facebook e google +. stanno rallentando il mio sito e non memorizzano bene nella cache ...
euge9522

connect.facebook.net/en_US/all.js (20 minuti) connect.facebook.net/it_IT/sdk.js (20 minuti) apis.google.com/js/api.js (30 minuti) oauth.googleusercontent.com … E: rpc: shindig.random: shindig.sha1.js? C = 2 (60 minuti) google-analytics.com/analytics.js (2 ore)
euge9522

Puoi impostare un'enorme cache sui file CSS e JS purché esegui il timestamp del timestamp di src ... con cui puoi fare dinamicamente filemtime(). Quindi, se il file viene modificato, verrà creato un nuovo uri, forzando la riacquisizione dell'asset senza cancellare cache e cose. Può fare la stessa cosa con le immagini o qualsiasi altra cosa. E penso che a Google piaccia il tempo di cache di almeno 8 giorni per superare la velocità della pagina.
Dhaupin,

4

Vedo che la risposta precedente dice che 24 ore non sono sufficienti. Ma guardando nel documento di Google: https://developers.google.com/web/fundamentals/performance/optimizing-content-efficiency/http-caching#defining-optimal-cache-control-policy si dice che le immagini devono essere memorizzate nella cache per 1 giorno per la memorizzazione nella cache ottimale.

La memorizzazione nella cache delle immagini per un breve periodo di tempo ha senso, perché per migliorare la SEO è meglio non eseguire l'impronta digitale delle immagini. Quindi è un buon compromesso se si desidera cambiare l'immagine.

Inoltre, dopo 24 ore le immagini verranno nuovamente caricate (quando si imposta il controllo della cache su 1 giorno), verrà quindi utilizzato l'e-tag e si confronteranno le immagini creando un server di andata e ritorno e una nuova cache.

Pertanto, rimane la domanda sul perché lo strumento di analisi della velocità della pagina non rispetti le raccomandazioni di Google.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.