PageSpeed ​​Insights "Nutzen Sie das Browser-Caching" Google Analytics


7

Ich versuche, meine Ladezeiten mithilfe von Google PageSpeed ​​Insights als eines meiner Tools zu verkürzen. Mir ist aufgefallen, dass es 2 Dateien gibt, über die es sich immer wieder beschwert:

Nutzen Sie das Browser-Caching

Durch Festlegen eines Ablaufdatums oder eines Höchstalters in den HTTP-Headern für statische Ressourcen wird der Browser angewiesen, zuvor heruntergeladene Ressourcen nicht über das Netzwerk, sondern von der lokalen Festplatte zu laden.

https://apis.google.com/js/api.js (30 minutes)

https://ssl.google-analytics.com/ga.js (2 hours)

Ich gehe davon aus, dass die oben genannten Dateien als Teil des Standard-Magento-Pakets referenziert sind, und sehe mich im Admin-Bereich nur um, wo ich meinen Analysecode ablegen kann.

Wohin gehe ich oder welche Datei muss ich ändern, um den Ablauf der oben genannten Dateien zu verlängern?

Antworten:


6

Wenn Sie die JS-Dateien von Google laden, ist Haya korrekt. Sie können nichts tun, um den Cache für das Browser-Caching zu ändern.

Wenn Sie den asynchronen GA-Code verwenden, hat dies keine Auswirkungen auf die Ladezeiten der Seiten, da diese getrennt von Ihrer Magento-Seite geladen werden.

Wenn Sie das JS zwischenspeichern möchten, können Sie es lokal laden, wie unter http://diywpblog.com/leverage-browser-cache-optimize-google-analytics/ beschrieben.

Sie können die lokale Version von template / googleanalytics / ga.phtml bearbeiten

um die URL anzupassen, von der GA geladen wird.


6

Ich habe es geschafft, mit mobilen und Desktop-Versionen auf meiner Website 99/100 zu erzielen. Nur apis.google.com/js/platform.js Browser-Caching ist eine Barriere in 100. Ich weiß, dass es kaum einen Unterschied macht, nur zum Spaß. Irgendeine Ahnung?

Mein htaccess-

# Enable Compression
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
</IfModule>
<IfModule mod_gzip.c>
  mod_gzip_on Yes
  mod_gzip_dechunk Yes
  mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
  mod_gzip_item_include handler ^cgi-script$
  mod_gzip_item_include mime ^text/.*
  mod_gzip_item_include mime ^application/x-javascript.*
  mod_gzip_item_exclude mime ^image/.*
  mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

# Leverage Browser Caching
<IfModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/jpg "access 1 year"
  ExpiresByType image/jpeg "access 1 year"
  ExpiresByType image/gif "access 1 year"
  ExpiresByType image/png "access 1 year"
  ExpiresByType text/css "access 1 month"
  ExpiresByType text/html "access 1 month"
  ExpiresByType application/pdf "access 1 month"
  ExpiresByType text/x-javascript "access 1 month"
  ExpiresByType application/x-shockwave-flash "access 1 month"
  ExpiresByType image/x-icon "access 1 year"
  ExpiresDefault "access 1 month"
</IfModule>
<IfModule mod_headers.c>
  <filesmatch "\.(ico|flv|jpg|jpeg|png|gif|css|swf)$">
  Header set Cache-Control "max-age=2678400, public"
  </filesmatch>
  <filesmatch "\.(html|htm)$">
  Header set Cache-Control "max-age=7200, private, must-revalidate"
  </filesmatch>
  <filesmatch "\.(pdf)$">
  Header set Cache-Control "max-age=86400, public"
  </filesmatch>
  <filesmatch "\.(js)$">
  Header set Cache-Control "max-age=2678400, private"
  </filesmatch>
</IfModule>

Ist das eine Antwort? Oder fragen Sie, ob jemand eine Ahnung hat, ob die platform.jsDatei auch über ein ordnungsgemäßes Browser-Caching verfügt ? Wenn ja, verwenden Sie bitte die Aks-Frage- Schaltfläche, um dies selbst als Frage zu stellen. Sie können auf diese Frage verweisen, um den Kontext bereitzustellen.
7ochem

4

Für Nginx:

   location ~ /analytics.js {
        proxy_pass https://www.google-analytics.com;
        expires 31536000s;
        proxy_set_header Pragma "public";
        proxy_set_header Cache-Control "max-age=31536000, public";
    }

Ändern Sie dann den Pfad https://www.google-analytics.com/analytics.js in https://yoursite.com/analytics.js


1
Funktioniert das tatsächlich?
Nathan

Ich weiß, dass es alt ist, aber das ist GOLD. Habe das gleiche mit der Maps-API gemacht. Einfach toll, funktioniert wie erwartet!
Eduard

3

Meines Wissens können Sie nichts dagegen tun, da diese Teil der Google Domain sind.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.