Htaccess kodlaması ile WordPress hız optimizasyonu

VagonSoft Eğitim Blogu

Htaccess kodlaması ile WordPress hız optimizasyonu

Web sitenize kaliteli içerik eklediniz, gerekli ayarları yaptınız ancak sırada büyük bir sorun vardır. Oda web sitenizi hızlandırmak. Ve sanırım bu durum web sitenizin kalitesi ve kullanıcı deneyimi açısından çok önemli.

Paylaşımlı bir hosting yada bir VPS sunucu sahibi olmanızın bu durumda çok fazla bir önemi yok. Her iki durumda da .htaccess komutlarının WordPress Hız Optimizasyonuna önemli katkısı vardır.

Kullanıcıları ve Google’ın kullandığı algoritmayı etkilemek için sitenizi iki saniyeden daha kısa sürede açılması gerekmektedir. Sitenizi optimize etmenin yollarından biri .htaccess dosyasını düzenlemedir.

.htaccess dosyası nedir?

.htaccess dosyası, konfigürasyon dosyasıdır. Kök dizininde (Web sitenizin bulunduğu public_html/www) web yer almaktadır.

.htaccess dosyası ne işe yarar?

Belirli bir klasörü veya sunucunun bir parçasını kontrol etmenin anahtar dosyasıdır. .htaccess, sunucunun bazı özelliklerini veya işlevlerini başlatmak veya duraklatmak gibi komutlar ile sunucu yazılımının yapılandırmasını düzenlemek için çok kullanılır.

Bu komutlara örnek vermek gerekirse, 301 yönlendirmeleri, parola korumalı dizinler oluşturabilir, belirli IP’leri engelleyebilir, sayfa yükleme hızını iyileştirebilir ve siteyi optimize edebilirsiniz.

WordPress’te .htaccess dosyası nerede ?

  • WordPress sitenizin bir .htaccess dosyası oluşturduğunu varsayarsak, Public_html/www dosyanızın içerisinde bulunur.
  • .htaccess dosyası gizli bir dosyadır, bu nedenle cPanel veya FTP programı kullanırken ‘gizli dosyaları göster’ bölümünü aktif etmeniz gerekir.

cPanel > Dosya Yönetici sayfasına girdiğimizde aşağıda ki resimde gördüğünüz gibi dosyamız burada yer alır.

Varsayılan olarak, .htaccess dosyası bazı güvenlik nedenlerinden dolayı gizlenmiştir, bu nedenle manuel olarak görünür hale getirene kadar public_html dizini altında göremezsiniz. Bunun için:

  • Ayarlar  tıklayınız
  • Gizli Dosyaları (dotfiles) göster tıklayınız ve Kaydedin.

.htaccess dosyasını bulamıyorsanız

Bunun nedeni, ilgili sitenizin henüz bir .htaccess dosyası oluşturmamış olması olabilir.

Bir .htaccess dosyası oluşturmak için kalıcı bağlantılar kurun:

  • Ayarlara gidin
  • Kalıcı bağlantı ayarlarına gidin ve değişiklikleri kaydet’e tıklayın.

Bu şekilde kolayca bir varsayılan .htaccess dosyası oluşturabilirsiniz.

Sitenizi .htacess üzerinden optimize etmeden önce

  • Eklentilerin önbellek oluşturmasını pasif edin ve eklentiler tarafından daha önce üretilen önbelleği temizleyin.
  • Web sitenizin aktif durumda olup olmadığını kontrol edin. Herhangi bir hata var isedüzenleyin.
  • Sayfa yükleme süresi için önceden bir kaç test gerçekleştirin.
    Bunun için Google Speed – GTmetrix – PingDoom Tools

.htacess Kullanarak sayfa hızlandırma

Sayfa yükleme süresini azaltmak çok adımlı bir işlemdir ve etkinleştirmeniz veya devre dışı bırakmanız gereken birkaç özellik/komut vardır. Biraz araştırma yaptıktan sonra, çoğu geliştiricinin ve bizlerinde kullandığı komutlar aşağıda ki gibidir;

  • Gzip’i Etkinleştirme ve Sıkıştırmayı aktif etme
  • Tarayıcı Önbelleğe Almayı Etkinleştirme
  • Keep-Alive Etkinleştirme
  • Resim Bağlantısını Devre Dışı Bırak
  • mod_pagespeed’i etkinleştirme

Gelin tüm bu adımları tek tek öğrenelim.

.htaccess Kullanarak WordPress Sitesini Hızlandıran Gzip ve Deflate Sıkıştırma

Sıkıştırma komutu yalnızca bir belgenin boyutunu küçültür, XML dosyaları, JavaScript’ler, CSS ve HTML dosyaları için önerilir. Sıkıştırmanın komutlarının dosyalarınızı %60 ile %80 oranında azalttığını biliyor muydunuz?

Sıkıştırmayı etkinleştirmenin iki iyi yolu vardır, Apache Yazılımı kullanıyorsanız mod_gzip veya mod_deflate kullanmanız gerekmektedir. Mod_deflate biraz daha kolaydır, ancak web sitenizin veya sunucunuzun desteklememesi ihtimali vardır. Bu nedenle önceden sunucunuzu kontrol ediniz. Eğer bir paylaşımlı hosting kullanıyorsanız barındırma şirketinize sorabilirsiniz.

DEFLATE Sıkıştırma komutları

# BEGIN DEFLATE COMPRESSION
<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
</IfModule>
# END DEFLATE COMPRESSION

10 Adımda WordPress Site Hızlandırma için: https://www.vagonsoft.com/wordpress-site-hizlandirma/

Eğer web siteniz Deflate komutlarını desteklemiyorsa, GZIP komutlarını kullanabilirsiniz.

.htaccess komutlarını kullanarak GZIP etkinleştirme

Bu GZİP komutları web sitenizin yüklenme süresini 30-40% oranında kısaltacaktır.
Yalnızca yüklenme süresini kısaltmak için değil, her zaman siteniz için Gzip sıkıştırmanız önerilir.

Apache sunucusunda .htaccess komutlarını kullanarak GZIP ayarlama

Çoğunuz web barındırma hizmetlerinde Apache sunucusunu kullanıyorsunuzdur. Doğrudan yazacağınız deflate komutları ile GZIP’i açabilirsiniz

# compress text, html, javascript, css, xml:
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript

Nginix sunucu kullanıyorsanız

NGINX sunucusunda yer alan kullanıcılar için de çözümüm var 😉 bu htaccess kodunu web sunucunuzdaki yapılandırma dosyanızda kullanın.

gzip on;
gzip_comp_level 2;
gzip_http_version 1.0;
gzip_proxied any;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_types text/plain text/html text/css application/x-javascript text/xml application/xml application/xml+rss text/javascript;
gzip_disable "MSIE [1-6].(?!.*SV1)";
gzip_vary on;

Tarayıcı Önbelleğe Almayı Etkinleştirme

Tarayıcı önbelleğe almayı etkinleştirmek, tarayıcıların yerel sürücüdeki bazı kaynakları indireceği ve yeniden ihtiyaç duyulduğunda tarayıcının önceden depolanmış dosyaları kullandığı ve dolayısıyla ziyaretleri hızlandıracağı anlamına gelir.

.htaccess komutu ile çerezlerin ne kadar süreyle saklanacağı ayarlayabilirsiniz.

Tarayıcı önbelleğe almayı etkinleştirmek için bu iki kod yöntemini kullanın (önerilir)

Expires Headers

#BEGIN EXPIRES HEADERS
<IfModule mod_expires.c>
# Enable expirations
ExpiresActive On
# Default expiration: 1 hour after request
ExpiresDefault "now plus 1 hour"
# CSS and JS expiration: 1 week after request
ExpiresByType text/css "now plus 1 week"
ExpiresByType application/javascript "now plus 1 week"
ExpiresByType application/x-javascript "now plus 1 week"
# Image files expiration: 1 month after request
ExpiresByType image/bmp "now plus 1 month"
ExpiresByType image/gif "now plus 1 month"
ExpiresByType image/jpeg "now plus 1 month"
ExpiresByType image/jp2 "now plus 1 month"
ExpiresByType image/pipeg "now plus 1 month"
ExpiresByType image/png "now plus 1 month"
ExpiresByType image/svg+xml "now plus 1 month"
ExpiresByType image/tiff "now plus 1 month"
ExpiresByType image/vnd.microsoft.icon "now plus 1 month"
ExpiresByType image/x-icon "now plus 1 month"
ExpiresByType image/ico "now plus 1 month"
ExpiresByType image/icon "now plus 1 month"
ExpiresByType text/ico "now plus 1 month"
ExpiresByType application/ico "now plus 1 month"
# Webfonts
ExpiresByType font/truetype "access plus 1 month"
ExpiresByType font/opentype "access plus 1 month"
ExpiresByType application/x-font-woff "access plus 1 month"
ExpiresByType image/svg+xml "access plus 1 month"
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
</IfModule>
#END EXPIRES HEADERS

Çerez Kontrolü

# BEGIN Cache-Control Headers
<ifModule mod_headers.c>
 <filesMatch "\.(ico|jpe?g|png|gif|swf)$">
 Header set Cache-Control "max-age=2592000, public"
 </filesMatch>
 <filesMatch "\.(css)$">
 Header set Cache-Control "max-age=604800, public"
 </filesMatch>
 <filesMatch "\.(js)$">
 Header set Cache-Control "max-age=216000, private"
 </filesMatch>
 <filesMatch "\.(x?html?|php)$">
 Header set Cache-Control "max-age=600, private, must-revalidate"
 </filesMatch>
</ifModule>
# END Cache-Control Headers
  • Tarayıcı önbelleğe almayı etkinleştirdiğinizde web sitesi yüklemesini hızlandıracağı garanti edilir.
  • Süresi dolan başlıklar yöntemiyle (Expires Headers) önbellek denetimini zaten etkinleştirdiyseniz ve zaman sınırını ayarladıysanız, Çerez kontrolü yöntemiyle önbelleğe almayı etkinleştirdiğinizde bu komutu kullanmanız gerekmez. Ancak ikisini de kullanmanız sorun değildir.

LightSpeed ​​Sunucu Önbelleği

Web siteni LightSpeed ​​Sunucusu kullanıyorsa, -ki muhtemelen ülkemizde en popüler sunucu tipidir. Bu sunucu içinde bir kaç kod satırı vardır.

# ENABLE LITESPEED CACHE START
<IfModule LiteSpeed>
CacheEnable public
RewriteEngine On
RewriteCond %{REQUEST_METHOD} ^GET|HEAD$
RewriteCond %{HTTP_HOST} ^sample.com|sample.net|sample.org [NC]
RewriteCond %{REQUEST_URI} !login|admin|register|post|cron
RewriteCond %{QUERY_STRING} !nocache
RewriteRule .* - [E=Cache-Control:max-age=300]
</IfModule>
# ENABLE LITESPEED CACHE END

Keep-Alive ile WordPress Hızlandırma

Keep-Live, işe yarayan başka bir komut satırıdır; Bu komutu etkinleştirmek, tarayıcılardan birden fazla bağlantı yerine, bir kez TCP bağlantısı kurmasını ister.

Bu tür, tarayıcıların, örn; Resimler, Javascriptler, CSS komut dosyaları vb. için web sayfanıza yüklenen tüm dosyalar için özellikle bir HTTP bağlantısını kalıcı olarak açılmasını sağlar.

Keep-Live etkinleştirmek, herhangi bir dezavantajı olmadığından her zaman önerilir. Keep-Alive etkinleştirmek için bunu http başlığıyla da yapabilirsiniz. Ama biz burada .htaccess dosyası ile göstereceğiz.

.htaccess dosyasının içine şu kodu ekleyin:

# START ENABLE KEEP ALIVE
<ifModule mod_headers.c>
Header set Connection keep-alive
</ifModule>
# END ENABLE KEEP ALIVE

Daha Hızlı Sayfa Yüklemesi için mod_pagespeed etkinleştirin

Mod_pagespeed, HTML, Javascript, PNG, JPEG ve CSS gibi dosyaları otomatik olarak optimize etmek için açık kaynaklı bir modüldür.

Görüntüyü sıkıştıran ve yeniden boyutlandıran, Javascript ve CSS’yi birleştiren, küçülten ve çok daha fazlasını yapan 40’tan fazla filtre vardır. Mod_speed türü, gereksiz içeriği keser ve HTTP isteklerini en aza indirir.

<IfModule pagespeed_module>
ModPagespeed on
ModPagespeedEnableFilters rewrite_css,combine_css
ModPagespeedEnableFilters recompress_images
ModPagespeedEnableFilters convert_png_to_jpeg,convert_jpeg_to_webp
ModPagespeedEnableFilters collapse_whitespace,remove_comments
</IfModule>

WordPress’te web sitenizi hızlandırmak için bu garantili işlemlerden sonra, eğer henüz aradığınızı bulamadıysanız bana İletişim Sayfasından ulaşabilirsiniz.

5 Yorumlar

  • Rıfat

    Resim Bağlantısını Devre Dışı Bırak başlığını açıklamayı unutmuş olmalısınız. Yazı mükemmel olmuş, teşekkür ederim.

    21 Haziran 2021
    Yanıtla
  • WordPress harici sistemlerde ekstra faydalı olacaktır. Teşekkür ederim Alişan hocam.

    21 Haziran 2021
    Yanıtla
  • Mükemmel bir yazı olmuş. Tebrikler Ali Bey

    27 Haziran 2021
    Yanıtla

Yorum Gönder

Name

E-mail Address

Website