Cum să accelerezi WordPress utilizând memorarea în cache a browserului prin .htaccess
Publicat: 2017-08-04Profitați de memorarea în cache a browserului pentru a vă face paginile web mai rapide. Dacă puteți profita de memorarea în cache a browserului , puteți crește viteza site-ului în mod considerabil. Pe măsură ce Google începe să ia în considerare viteza site-ului ca un parametru SEO, webmasterii pot profita de memorarea în cache a browserului pentru a îmbunătăți viteza site-ului și a obține o poziție mai bună în motoarele de căutare.
Iată un fișier complet .htaccess
pe care îl avem în folderul rădăcină Crunchify.
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 |

NOTĂ : Vă rugăm să eliminați redirecționarea către blocarea HTTPS dacă nu sunteți pe HTTPS :). L-am comentat deja. Dacă ați activat HTTPS deja pe site și încă permiteți utilizatorului să viziteze site-ul prin HTTP, atunci sunteți bine.
Să înțelegem fiecare secțiune a fișierului .htaccess:
Pasul 1. Scaparea de ETag
În primul rând, trebuie să disable ETag header
deoarece vom folosi durata Expires. Tehnologia ETag
este cunoscută ca fiind lentă și problematică – chiar și alte site-uri de top se plâng de aceasta.
Adăugați la .htaccess
: (situat la locația rădăcină a blogului)
1 2 3 4 5 6 |
# Disable ETags < IfModule mod_headers . c > Header unset ETag Header set Connection keep - alive < / IfModule > FileETag None |
De asemenea, menținem conexiunea keep-alive
. Se numește persistent connection
. Dacă trebuie să fie deschisă o nouă conexiune pentru fiecare cerere sau fișier, ar putea dura mult mai mult timp.
Altele trebuie să citească:
- 5 trucuri utile pentru a accelera WordPress și a crește performanța
- 9 resurse WordPress esențiale pe care este posibil să le fi ratat
Pasul 2 Activați memorarea în cache a browserului
Dacă setați o dată de expirare sau o vârstă maximă în anteturile HTTP pentru resursele statice, browserele moderne vor încărca resurse statice descărcate anterior, cum ar fi imagini, css, javascript, pdf, swf etc. de pe discuri locale, mai degrabă decât prin rețea.
Așadar, dacă vă configurați serverul web pentru a seta antetele de cache și le aplicați tuturor resurselor statice care pot fi stocate în cache, site-ul dvs. va părea să se încarce mult mai repede. Adăugați mai jos la .htaccess
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 > |
Ceea ce face aceasta este adăugarea antetului de expirare în viitor departe (asigurați-vă că mod_expires
este încărcat în configurația Apache dacă aveți probleme) la conținutul dvs. static (imagini, js, css etc).
Două lucruri aici:
- ExpiresDefault A2592000 = 1 lună în viitor
- Cache-Control „max-age=2592000” = 1 lună
Dacă doriți, puteți seta și valoarea la 1 an = 31536000
Pasul 3 Adăugați gzip și dezumflați anteturile de compresie
Comprimarea lucrurilor ajunge întotdeauna să le facă mai mici și să se încarce mai rapid, așa că implementarea unei forme de compresie pe componente este o necesitate.
Este posibil ca acest pas de optimizare să nu funcționeze pentru dvs. dacă serverul dvs. nu are instalat nici mod_deflate
, nici mod_gzip
ca parte a Apache.
Practic, comprimăm majoritatea resurselor, astfel încât acele încărcări se încarcă cu o lățime de bandă mai mică și foarte rapid.
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 > |
Pasul 4 Verificați dacă setările dvs. funcționează corect
Verificați mai jos captura de ecran. Ar trebui să vedeți toți parametrii setați în antetul de răspuns al fișierului dvs.
Întrebare deschisă: pot schimba data de expirare a unor resurse, cum ar fi scriptul Google Adsense sau scriptul Google Analytics?
- https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js
- https://www.google-analytics.com/analytics.js
Answer is NO
. Puteți seta doar valoarea de expirare a resurselor care se încarcă de pe site-ul dvs.