.htaccess ile Tarayıcı Önbelleğe Almadan Yararlanan WordPress Nasıl Hızlandırılır
Yayınlanan: 2017-08-04Web sayfalarınızı daha hızlı hale getirmek için tarayıcı önbelleğinden yararlanın. Tarayıcı önbelleğinden yararlanabiliyorsanız , web sitesi hızını önemli ölçüde artırabilirsiniz. Google, site hızını bir SEO parametresi olarak görmeye başladığında, web yöneticileri site hızını artırmak ve daha iyi arama motoru sıralamaları elde etmek için tarayıcı önbelleğinden yararlanabilir.
İşte tam bir .htaccess
dosyası, onu Crunchify kök klasöründe bulunduruyoruz.
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 : HTTPS'de değilseniz lütfen HTTPS bloğuna yönlendirmeyi kaldırın :). Gerçi ben zaten yorumlamıştım. Sitede HTTPS'yi zaten etkinleştirdiyseniz ve yine de kullanıcının siteyi HTTP üzerinden ziyaret etmesine izin veriyorsanız, sorun yok demektir.
.htaccess dosyasının her Bölümünü anlayalım:
Adım-1 ETag'den kurtulmak
Öncelikle Expires süresini kullanacağımız için disable ETag header
gerekiyor. ETag
teknolojisi yavaş ve sorunlu olarak bilinir – en üst sıradaki diğer siteler bile bundan şikayet eder.
.htaccess
ekleyin: (blogun kök konumunda bulunur)
1 2 3 4 5 6 |
# Disable ETags < IfModule mod_headers . c > Header unset ETag Header set Connection keep - alive < / IfModule > FileETag None |
Ayrıca bağlantıyı keep-alive
tutuyoruz. persistent connection
denir. Her istek veya dosya için yeni bir bağlantının açılması gerekiyorsa, önemli ölçüde daha uzun zaman alabilir.
Diğerleri okumalı:
- WordPress'i Hızlandırmak ve Performansı Artırmak İçin 5 Faydalı Hile
- Kaçırmış olabileceğiniz 9 temel WordPress kaynağı
Adım-2 Tarayıcı önbelleğe almayı etkinleştirin
Statik kaynaklar için HTTP başlıklarında bir son kullanma tarihi veya maksimum yaş belirlerseniz, modern tarayıcılar, ağ üzerinden değil, yerel disklerden görüntüler, css, javascript, pdf, swf vb. gibi önceden indirilmiş statik kaynakları yükler.
Bu nedenle, web sunucunuzu önbelleğe alma başlıklarını ayarlayacak ve bunları önbelleğe alınabilir tüm statik kaynaklara uygulayacak şekilde yapılandırırsanız, siteniz çok daha hızlı yükleniyor gibi görünecektir. .htaccess'e aşağıya ekleyin
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 > |
Bunun yaptığı şey, statik içeriğinize (resimler, js, css, vb.) çok geleceğin süresi doluyor başlığını eklemektir (sorun yaşıyorsanız apache yapılandırmanızda mod_expires
yüklendiğinden emin olun).
Burada iki şey var:
- ExpiresDefault A2592000 = 1 ay sonra
- Önbellek Kontrolü “max-age=2592000” = 1 ay
İsterseniz değeri 1 Yıl = 31536000 olarak da ayarlayabilirsiniz.
Adım-3 gzip ekleyin ve sıkıştırma başlıklarını söndürün
Bir şeyleri sıkıştırmak her zaman onları küçültür ve daha hızlı yükler, bu nedenle bileşenlerinize bir tür sıkıştırma uygulamak bir zorunluluktur.
Sunucunuzda Apache'nin bir parçası olarak mod_deflate
veya mod_gzip
kurulu değilse, bu optimizasyon adımı sizin için çalışmayabilir.
Temel olarak, kaynakların çoğunu sıkıştırıyoruz, böylece bu yükler daha az bant genişliğine sahip ve çok hızlı.
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 > |
Adım-4 Ayarlarınızın doğru çalışıp çalışmadığını doğrulayın
Ekran görüntüsünün altında kontrol edin. Dosyanızın yanıt başlığında ayarlanan tüm parametreleri görmelisiniz.
Açık soru: Google Adsense komut dosyası veya Google Analytics komut dosyası gibi bazı kaynakların son kullanma tarihini değiştirebilir miyim?
- https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js
- https://www.google-analytics.com/analytics.js
Answer is NO
. Yalnızca sitenizden yüklenen kaynakların sona erme değerini belirleyebilirsiniz.