Support » Allgemeine Fragen » Expires Headers für statische Inhalte

  • alanhorman

    (@alanhorman)


    Laut Google Pagespeed Insight wurden 13 kritische statische Inhalte gefunden, bei denen die Cache-Richtlinie angepasst werden soll.

    Als Link zum Nachschlagen wurde https://developers.google.com/web/tools/lighthouse/audits/cache-policy angegeben.

    In meiner .htaccess-Datei habe ich bereits Code für die Expires Headers eingefügt und es hat funktioniert. Allerdings sind die statischen Ressourcen nicht betroffen.

    Gibt es eine Möglichkeit, um die Lebensdauer der 13 statischen Inhalten zu verlängern?

    Die Seite, für die ich Hilfe brauche: [Anmelden, um den Link zu sehen]

Ansicht von 6 Antworten - 1 bis 6 (von insgesamt 6)
  • hupe13

    (@hupe13)

    Welchen Code hast Du denn in der .htaccess angegeben? Ich habe mal Deine Seite mit Google Pagespeed Insight gecheckt, das sollte helfen:

    <filesMatch "\.(png|gif|js|woff2)$">
    	Header set Cache-Control "max-age=86400, public"
    </filesMatch>

    Hier wird der Cache Zeit auf einen Tag festgelegt, Google empfiehlt ein Jahr.

    timmehosting

    (@timmehosting)

    Stammen die 13 statischen Inhalte denn von Deiner Domain oder sind es externe Ressourcen? Wenn es externe Ressourcen sind, hast Du auf die Expires-Header keinen Einfluss.

    alanhorman

    (@alanhorman)

    @timmehosting: Die 13 Inhalte stammen überwiegend von meinen internen Ressourcen. Ich versuche zu wenig externe Ressourcen wie möglich zu verwenden.

    @hupe13:

    
    # BEGIN LSCACHE
    # END LSCACHE
    # BEGIN NON_LSCACHE
    # END NON_LSCACHE
    RewriteEngine On
    RewriteCond %{SERVER_PORT} !=443
    RewriteRule ^(.*)$ https://wilhelm-kg.de/$1 [R=301,L]
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    
    # END WordPress
    <IfModule mod_deflate.c>
        # Compress HTML, CSS, JavaScript, Text, XML and fonts
        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
        AddOutputFilterByType DEFLATE text/xml
        # Remove browser bugs (only needed for really old browsers)
        BrowserMatch ^Mozilla/4 gzip-only-text/html
        BrowserMatch ^Mozilla/4\.0[678] no-gzip
        BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
        Header append Vary User-Agent
    </IfModule>
    #Expire Header
    <FilesMatch "(?i)^.*\.(ico|flv|jpg|jpeg|png|gif|js|css|woff)$">
    ExpiresActive On
    ExpiresDefault A2592000
    </FilesMatch>
    # Aktiviert GZIP Komprimierung
     <IfModule mod_deflate.c>
     SetOutputFilter DEFLATE
     </IfModule>
    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 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 2 days
    <IfModule mod_expires.c>
        ExpiresActive on
        ExpiresDefault                                      "access plus 1 month"
      # CSS
        ExpiresByType text/css                              "access plus 1 year"
      # Data interchange
        ExpiresByType application/atom+xml                  "access plus 1 hour"
        ExpiresByType application/rdf+xml                   "access plus 1 hour"
        ExpiresByType application/rss+xml                   "access plus 1 hour"
        ExpiresByType application/json                      "access plus 0 seconds"
        ExpiresByType application/ld+json                   "access plus 0 seconds"
        ExpiresByType application/schema+json               "access plus 0 seconds"
        ExpiresByType application/vnd.geo+json              "access plus 0 seconds"
        ExpiresByType application/xml                       "access plus 0 seconds"
        ExpiresByType text/xml                              "access plus 0 seconds"
      # Favicon (cannot be renamed!) and cursor images
        ExpiresByType image/vnd.microsoft.icon              "access plus 1 week"
        ExpiresByType image/x-icon                          "access plus 1 week"
      # HTML - Behält die Website eine Stunde im Cache, neues wird erst nach Ablauf einer Stunde
      # angezeigt. Wenn nicht gewuenscht, bei 3600 eine Null eintragen
        ExpiresByType text/html                             "access plus 3600 seconds"
      # JavaScript
        ExpiresByType application/javascript                "access plus 1 year"
        ExpiresByType application/x-javascript              "access plus 1 year"
        ExpiresByType text/javascript                       "access plus 1 year"
      # Manifest files
        ExpiresByType application/manifest+json             "access plus 1 week"
        ExpiresByType application/x-web-app-manifest+json   "access plus 0 seconds"
        ExpiresByType text/cache-manifest                   "access plus 0 seconds"
      # Media files
        ExpiresByType audio/ogg                             "access plus 1 month"
        ExpiresByType image/bmp                             "access plus 1 month"
        ExpiresByType image/gif                             "access plus 1 month"
        ExpiresByType image/jpeg                            "access plus 1 month"
        ExpiresByType image/png                             "access plus 1 month"
        ExpiresByType image/svg+xml                         "access plus 1 month"
        ExpiresByType image/webp                            "access plus 1 month"
        ExpiresByType video/mp4                             "access plus 1 month"
        ExpiresByType video/ogg                             "access plus 1 month"
        ExpiresByType video/webm                            "access plus 1 month"
      # Web fonts
        # Embedded OpenType (EOT)
        ExpiresByType application/vnd.ms-fontobject         "access plus 1 month"
        ExpiresByType font/eot                              "access plus 1 month"
        # OpenType
        ExpiresByType font/opentype                         "access plus 1 month"
        # TrueType
        ExpiresByType application/x-font-ttf                "access plus 1 month"
        # Web Open Font Format (WOFF) 1.0
        ExpiresByType application/font-woff                 "access plus 1 month"
        ExpiresByType application/x-font-woff               "access plus 1 month"
        ExpiresByType font/woff                             "access plus 1 month"
        # Web Open Font Format (WOFF) 2.0
        ExpiresByType application/font-woff2                "access plus 1 month"
      # Other
        ExpiresByType text/x-cross-domain-policy            "access plus 1 week"
    </IfModule>
    <IfModule mod_deflate.c>
    # Insert filters / compress text, html, javascript, css, xml:
    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE text/vtt 
    AddOutputFilterByType DEFLATE text/x-component
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/js
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE application/x-httpd-php
    AddOutputFilterByType DEFLATE application/x-httpd-fastphp
    AddOutputFilterByType DEFLATE application/atom+xml 
    AddOutputFilterByType DEFLATE application/json
    AddOutputFilterByType DEFLATE application/ld+json 
    AddOutputFilterByType DEFLATE application/vnd.ms-fontobject 
    AddOutputFilterByType DEFLATE application/x-font-ttf
    AddOutputFilterByType DEFLATE application/font-woff2
    AddOutputFilterByType DEFLATE application/x-font-woff
    AddOutputFilterByType DEFLATE application/x-web-app-manifest+json font/woff
    AddOutputFilterByType DEFLATE font/woff 
    AddOutputFilterByType DEFLATE font/opentype
    AddOutputFilterByType DEFLATE image/svg+xml
    AddOutputFilterByType DEFLATE image/x-icon 
    # Exception: Images
    SetEnvIfNoCase REQUEST_URI \.(?:gif|jpg|jpeg|png|svg)$ no-gzip dont-vary
    # Drop problematic browsers
    BrowserMatch ^Mozilla/4 gzip-only-text/html
    BrowserMatch ^Mozilla/4\.0[678] no-gzip
    BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
    # Make sure proxies don't deliver the wrong content
    Header append Vary User-Agent env=!dont-vary
    </IfModule>
    #Alternative caching using Apache's "mod_headers", if it's installed.
    #Caching of common files - ENABLED
    <IfModule mod_headers.c>
    <FilesMatch "\.(ico|pdf|flv|swf|js|css|gif|png|jpg|jpeg|txt)$">
    Header set Cache-Control "max-age=2592000, public"
    </FilesMatch>
    </IfModule>
    <IfModule mod_headers.c>
      <FilesMatch "\.(js|css|xml|gz)$">
        Header append Vary Accept-Encoding
      </FilesMatch>
    </IfModule>
    # Set Keep Alive Header
    <IfModule mod_headers.c>
        Header set Connection keep-alive
    </IfModule>
    # If your server don't support ETags deactivate with "None" (and remove header)
    <IfModule mod_expires.c> 
      <IfModule mod_headers.c> 
        Header unset ETag 
      </IfModule> 
      FileETag None 
    </IfModule>
    <IfModule mod_headers.c>
    <FilesMatch ".(js|css|xml|gz|html|woff|woff2|ttf)$">
    Header append Vary: Accept-Encoding
    </FilesMatch>
    </IfModule>
    # BEGIN WP Performance Score Booster Settings
    # END WP Performance Score Booster Settings
    #Customize expires cache start - adjust the period according to your needs<IfModule mod_expires.c> FileETag MTime Size AddOutputFilterByType DEFLATE text/plain text/html text/xml text/css application/xml application/xhtml+xml application/rss+xml application/javascript application/x-javascript ExpiresActive On ExpiresByType text/html "access 600 seconds" ExpiresByType application/xhtml+xml "access 600 seconds" ExpiresByType text/css "access 1 month" ExpiresByType text/javascript "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/javascript "access 1 month" ExpiresByType application/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresByType image/jpg "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresDefault "access 1 month"
    </IfModule>#Expires cache end
    ## EXPIRES 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>
    ## EXPIRES CACHING ##
    # 1 Month for most static assets
    <filesMatch ".(css|jpg|jpeg|png|gif|js|ico)$">
    Header set Cache-Control "max-age=2592000, public"
    </filesMatch> 
    php_value max_execution_time 180 
    php_value max_input_vars 1620
    # BEGIN WP-HUMMINGBIRD-CACHING
    # END WP-HUMMINGBIRD-CACHING

    Ich denke, dass ich bei den Expires Headers einiges doppelt habe. Teilweise war ich bei denen wirklich am verzweifeln, wieso meine Headers immer noch so schlecht abschnitten. Deinen Code habe ich am Ende meiner .htaccess hinzugefügt und mit Google PageSpeed Insight erneut geprüft, jedoch hat sich nur der Desktop beschleunigt, im Vergleich zu Mobil.

    • Diese Antwort wurde geändert vor 6 Monate von  alanhorman.
    hupe13

    (@hupe13)

    @alanhorman,

    hast Du den Beitrag gelöscht? Ich habe zwar eine Mail erhalten, sehe den Beitrag hier aber nicht.
    Ich würde an Deiner Stelle die ganzen Expires-Aweisungen aufräumen. Einige sind doppelt und dreifach angegeben.
    Zu Google PageSpeed Insights: Die Zeiten sind (zumindest habe ich die Erfahrung gemacht) auch tageszeitabhängig. Früh sind sie besser als abends. Ich habe für meine Webseite alle Hinweise mehr oder weniger befolgt. Manches will ich nicht ändern, z.B. max-age auf ein Jahr, manches kann ich nicht ändern, z.B. die Serverantwortzeiten.

    Moderator Reisiger, Angelika

    (@la-geek)

    hast Du den Beitrag gelöscht? Ich habe zwar eine Mail erhalten, sehe den Beitrag hier aber nicht.

    Der Beitrag wurde von Askimet als Spam eingestuft ¯\_(ツ)_/¯, habe ihn soeben freigeschaltet.

    alanhorman

    (@alanhorman)

    @hupe13 @la-geek Nachdem ich meinen Beitrag nochmal bearbeitet habe, wegen eines Rechtschreibfehlers, wurde die Nachricht angezeigt, dass ein Administrator informiert wird.

    Zum Glück bin ich kein Spam und würde auch nicht in Foren spammen. 😉

    Die Expires Headers werde ich aufräumen und die Duplikate entfernen.
    Google PageSpeed Insight soll nur eine Orientierung sein, ist aber auch nicht zu 100% zuverlässig. Ich danke euch für eure Hilfe.

Ansicht von 6 Antworten - 1 bis 6 (von insgesamt 6)
  • Das Thema „Expires Headers für statische Inhalte“ ist für neue Antworten geschlossen.