So beschleunigen Sie WordPress, indem Sie das Browser-Caching über .htaccess nutzen
Veröffentlicht: 2017-08-04Nutzen Sie das Browser-Caching, um Ihre Webseiten schneller zu machen. Wenn Sie das Browser-Caching nutzen können , können Sie die Website-Geschwindigkeit erheblich steigern. Da Google damit beginnt, die Website-Geschwindigkeit als SEO-Parameter zu betrachten, können Webmaster das Browser-Caching nutzen, um die Website-Geschwindigkeit zu verbessern und bessere Suchmaschinen-Rankings zu erzielen.
Hier ist eine vollständige .htaccess
-Datei, die wir im Crunchify-Stammordner haben.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 |
######### CRUNCHIFY SETTING - START ########## Options All - Indexes # Disable ETags < IfModule mod_headers . c > Header unset ETag Header set Connection keep - alive < / IfModule > FileETag None ############## MaxCDN Fix ############# < IfModule mod_headers . c > < FilesMatch "\.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$" > Header set Access - Control - Allow - Origin "*" < / FilesMatch > < / IfModule > ########### REDIRECT TRAFFIC TO HTTPS ############ # RewriteEngine On # RewriteCond %{HTTPS} off # RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] ############ SECURITY ########### < FilesMatch "\.(md|exe|sh|bak|inc|pot|po|mo|log|sql)$" > Order allow , deny Deny from all < / FilesMatch > < Files robots . txt > Allow from all < / Files > ############## CACHING-GZIP ############ < IfModule mod_expires . c > ExpiresActive On ExpiresDefault A2592000 < FilesMatch "\.(txt|xml|js)$" > ExpiresDefault A2592000 < / FilesMatch > < FilesMatch "\.(css)$" > ExpiresDefault A2592000 < / FilesMatch > < FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav|mp4|m4v|ogg|webm|aac)$" > ExpiresDefault A2592000 < / FilesMatch > < FilesMatch "\.(jpg|jpeg|png|gif|swf|webp)$" > ExpiresDefault A2592000 < / FilesMatch > < / IfModule > < IfModule mod_headers . c > < FilesMatch "\.(txt|xml|js)$" > Header set Cache - Control "max-age=2592000" < / FilesMatch > < FilesMatch "\.(css)$" > Header set Cache - Control "max-age=2592000" < / FilesMatch > < FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav|mp4|m4v|ogg|webm|aac)$" > Header set Cache - Control "max-age=2592000" < / FilesMatch > < FilesMatch "\.(jpg|jpeg|png|gif|swf|webp)$" > Header set Cache - Control "max-age=2592000" < / FilesMatch > < / IfModule > < IfModule mod_deflate . c > < IfModule mod_setenvif . c > < IfModule mod_headers . c > SetEnvIfNoCase ^ ( Accept - EncodXng | X - cept - Encoding | X { 15 } | ~ { 15 } | - { 15 } ) $ ^ ( ( gzip | deflate ) \ s* , ? \ s* ) + | [ X ~ - ] { 4 , 13 } $ HAVE_Accept - Encoding RequestHeader append Accept - Encoding "gzip,deflate" env = HAVE_Accept - Encoding < / IfModule > < / IfModule > < IfModule mod_filter . c > AddOutputFilterByType DEFLATE "application/atom+xml" \ "application/javascript" \ "application/json" \ "application/ld+json" \ "application/manifest+json" \ "application/rdf+xml" \ "application/rss+xml" \ "application/schema+json" \ "application/vnd.geo+json" \ "application/vnd.ms-fontobject" \ "application/x-font-ttf" \ "application/x-javascript" \ "application/x-web-app-manifest+json" \ "application/xhtml+xml" \ "application/xml" \ "font/eot" \ "font/opentype" \ "image/bmp" \ "image/svg+xml" \ "image/vnd.microsoft.icon" \ "image/x-icon" \ "text/cache-manifest" \ "text/css" \ "text/html" \ "text/javascript" \ "text/plain" \ "text/vcard" \ "text/vnd.rim.location.xloc" \ "text/vtt" \ "text/x-component" \ "text/x-cross-domain-policy" \ "text/xml" < / IfModule > < IfModule mod_mime . c > AddEncoding gzip svgz < / IfModule > < / IfModule > ######### CRUNCHIFY SETTING END ############ # 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 |

HINWEIS : Bitte entfernen Sie die Umleitung zum HTTPS-Block, wenn Sie nicht auf HTTPS sind :). Ich habe es aber schon auskommentiert. Wenn Sie HTTPS bereits auf der Website aktiviert haben und Benutzer die Website weiterhin über HTTP besuchen können, sind Sie gut.
Lassen Sie uns die einzelnen Abschnitte der .htaccess-Datei verstehen:
Schritt-1 ETag loswerden
Zunächst müssen wir den disable ETag header
da wir die Expires-Dauer verwenden werden. ETag
-Technologie ist als langsam und problematisch bekannt – sogar andere hochrangige Websites beschweren sich darüber.
Zu .htaccess
: (befindet sich am Stammverzeichnis des Blogs)
1 2 3 4 5 6 |
# Disable ETags < IfModule mod_headers . c > Header unset ETag Header set Connection keep - alive < / IfModule > FileETag None |
Wir halten auch die Verbindung keep-alive
. Es heißt persistent connection
. Wenn für jede Anfrage oder Datei eine neue Verbindung geöffnet werden muss, kann dies erheblich länger dauern.
Andere müssen lesen:
- 5 nützliche Tricks, um WordPress zu beschleunigen und die Leistung zu steigern
- 9 wichtige WordPress-Ressourcen, die Sie möglicherweise verpasst haben
Schritt-2 Browser-Caching aktivieren
Wenn Sie in den HTTP-Headern für statische Ressourcen ein Ablaufdatum oder ein maximales Alter festlegen, laden moderne Browser zuvor heruntergeladene statische Ressourcen wie Bilder, CSS, Javascript, PDF, SWF usw. von lokalen Festplatten und nicht über das Netzwerk.
Wenn Sie also Ihren Webserver so konfigurieren, dass er Caching-Header festlegt und sie auf alle cachebaren statischen Ressourcen anwendet, scheint Ihre Website viel schneller geladen zu werden. Unten zu .htaccess hinzufügen
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
< IfModule mod_expires . c > ExpiresActive On ExpiresDefault A2592000 < FilesMatch "\.(txt|xml|js)$" > ExpiresDefault A2592000 < / FilesMatch > < FilesMatch "\.(css)$" > ExpiresDefault A2592000 < / FilesMatch > < FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav|mp4|m4v|ogg|webm|aac)$" > ExpiresDefault A2592000 < / FilesMatch > < FilesMatch "\.(jpg|jpeg|png|gif|swf|webp)$" > ExpiresDefault A2592000 < / FilesMatch > < / IfModule > < IfModule mod_headers . c > < FilesMatch "\.(txt|xml|js)$" > Header set Cache - Control "max-age=2592000" < / FilesMatch > < FilesMatch "\.(css)$" > Header set Cache - Control "max-age=2592000" < / FilesMatch > < FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav|mp4|m4v|ogg|webm|aac)$" > Header set Cache - Control "max-age=2592000" < / FilesMatch > < FilesMatch "\.(jpg|jpeg|png|gif|swf|webp)$" > Header set Cache - Control "max-age=2592000" < / FilesMatch > < / IfModule > |
Dies fügt dem statischen Inhalt (Bilder, JS, CSS usw.) den Header „Fear Future Expires“ hinzu (stellen Sie sicher, dass mod_expires
in Ihrer Apache-Konfiguration geladen ist, wenn Sie Probleme haben).
Zwei Dinge hier:
- ExpiresDefault A2592000 = 1 Monat in der Zukunft
- Cache-Control „max-age=2592000“ = 1 Monat
Wenn Sie möchten, können Sie den Wert auch auf 1 Jahr = 31536000 setzen
Schritt-3 Fügen Sie gzip hinzu und entleeren Sie die Komprimierungsheader
Das Komprimieren von Dingen führt immer dazu, dass sie kleiner werden und schneller geladen werden, daher ist die Implementierung einer Form der Komprimierung Ihrer Komponenten ein Muss.
Dieser Optimierungsschritt funktioniert möglicherweise nicht für Sie, wenn auf Ihrem Server weder mod_deflate
noch mod_gzip
als Teil von Apache installiert ist.
Grundsätzlich komprimieren wir die meisten Ressourcen, sodass diese mit weniger Bandbreite und sehr schnell geladen werden.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
< IfModule mod_deflate . c > < IfModule mod_setenvif . c > < IfModule mod_headers . c > SetEnvIfNoCase ^ ( Accept - EncodXng | X - cept - Encoding | X { 15 } | ~ { 15 } | - { 15 } ) $ ^ ( ( gzip | deflate ) \ s* , ? \ s* ) + | [ X ~ - ] { 4 , 13 } $ HAVE_Accept - Encoding RequestHeader append Accept - Encoding "gzip,deflate" env = HAVE_Accept - Encoding < / IfModule > < / IfModule > < IfModule mod_filter . c > AddOutputFilterByType DEFLATE "application/atom+xml" \ "application/javascript" \ "application/json" \ "application/ld+json" \ "application/manifest+json" \ "application/rdf+xml" \ "application/rss+xml" \ "application/schema+json" \ "application/vnd.geo+json" \ "application/vnd.ms-fontobject" \ "application/x-font-ttf" \ "application/x-javascript" \ "application/x-web-app-manifest+json" \ "application/xhtml+xml" \ "application/xml" \ "font/eot" \ "font/opentype" \ "image/bmp" \ "image/svg+xml" \ "image/vnd.microsoft.icon" \ "image/x-icon" \ "text/cache-manifest" \ "text/css" \ "text/html" \ "text/javascript" \ "text/plain" \ "text/vcard" \ "text/vnd.rim.location.xloc" \ "text/vtt" \ "text/x-component" \ "text/x-cross-domain-policy" \ "text/xml" < / IfModule > < IfModule mod_mime . c > AddEncoding gzip svgz < / IfModule > < / IfModule > |
Schritt-4 Überprüfen Sie, ob Ihre Einstellungen korrekt funktionieren
Checkout unten Screenshot. Sie sollten alle im Antwortheader Ihrer Datei festgelegten Parameter sehen.
Offene Frage: Kann ich das Ablaufdatum einiger Ressourcen wie Google Adsense-Skript oder Google Analytics-Skript ändern?
- https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js
- https://www.google-analytics.com/analytics.js
Answer is NO
. Sie können nur den Ablaufwert von Ressourcen festlegen, die von Ihrer Website geladen werden.