OpenLiteSpeed ile WooCommerce Performans Optimizasyonu

E-ticaret sitelerinde performans, doğrudan satış rakamlarını etkiler. Sayfa yükleme süresinin her bir saniyelik artışının dönüşüm oranını yüzde yedi civarında düşürdüğünü gösteren araştırmalar var. WooCommerce kullanan bir site yöneticisi olarak bu gerçekle yüzleşmek zorunda kalmışsanızdır. Apache veya Nginx tabanlı bir sunucuda WooCommerce’i optimize etmeye çalışmak çoğu zaman yama üstüne yama yapmak gibi hissettiriyor. OpenLiteSpeed ise bu denklemi tamamen değiştiriyor.

OpenLiteSpeed’in WooCommerce İçin Neden Farklı Olduğunu Anlayın

OpenLiteSpeed, LiteSpeed Technologies tarafından geliştirilen açık kaynak kodlu bir web sunucusudur. Ticari kardeşi LiteSpeed Enterprise’ın aksine ücretsizdir ancak WooCommerce optimizasyonu için ihtiyacınız olan temel özelliklerin büyük çoğunluğunu barındırır.

LSCache mekanizması bu farkın merkezinde duruyor. Apache ile çalışırken önbelleği PHP katmanında yönetmek zorunda kalıyorsunuz. W3 Total Cache veya WP Rocket gibi eklentiler PHP’nin çalışmasını bekliyor, ardından önbellek mantığını uyguluyor. OpenLiteSpeed ise bu süreci sunucu düzeyine taşıyor. PHP hiç devreye girmeden yanıt dönebiliyor. Bir WooCommerce sitesinde bu fark, sayfa başına 200-800ms kazanç anlamına gelebiliyor.

Buna ek olarak HTTP/3 ve QUIC protokol desteği, yerleşik SSL offloading ve esnek rewrite motoru, OpenLiteSpeed’i WooCommerce için son derece uygun bir platform haline getiriyor.

Sunucu Kurulumu ve Temel Yapılandırma

Ubuntu 22.04 LTS üzerinde OpenLiteSpeed kurulumuna başlayalım.

# LiteSpeed repository ekle
wget -O - https://repo.litespeed.sh | sudo bash

# OpenLiteSpeed kur
sudo apt-get update
sudo apt-get install openlitespeed -y

# PHP 8.2 LSPHP kurulumu
sudo apt-get install lsphp82 lsphp82-mysql lsphp82-curl 
  lsphp82-json lsphp82-opcache lsphp82-imagick 
  lsphp82-redis lsphp82-memcached -y

# Servisi başlat
sudo systemctl start lsws
sudo systemctl enable lsws

Kurulum tamamlandıktan sonra OpenLiteSpeed admin paneline https://sunucu-ip:7080 adresinden ulaşabilirsiniz. Varsayılan kullanıcı adı admin, şifreyi ise kurulum sırasında /usr/local/lsws/conf/ dizinindeki yapılandırma dosyasından öğrenebilirsiniz.

PHP-FPM Değil, LSAPI Kullanın

Bu noktada kritik bir yapılandırma kararı var. Birçok sistem yöneticisi alışkanlıkla PHP-FPM kuruyor. OpenLiteSpeed ortamında bu performans açısından sub-optimal bir tercih. LSAPI (LiteSpeed Server Application Programming Interface), PHP isteklerini çok daha verimli işliyor.

# LSPHP binary konumunu doğrula
ls -la /usr/local/lsws/lsphp82/bin/

# lsphp binary'si mevcut mu kontrol et
/usr/local/lsws/lsphp82/bin/lsphp -v

Admin panelinde Server Configuration > External App bölümünde yeni bir LSAPI uygulaması tanımlamanız gerekiyor. Aşağıdaki değerleri kullanın:

  • Name: lsphp82
  • Address: uds://tmp/lshttpd/lsphp.sock
  • Max Connections: 35
  • Environment: PHP_LSAPI_CHILDREN=35
  • Initial Request Timeout: 60
  • Retry Timeout: 0

WooCommerce Virtual Host Yapılandırması

WooCommerce için optimize edilmiş bir virtual host konfigürasyonu oluşturalım. Bu yapılandırmayı /usr/local/lsws/conf/vhosts/woocommerce/vhconf.conf dosyasına uygulayabiliriz.

# Virtual host dizinini oluştur
sudo mkdir -p /usr/local/lsws/conf/vhosts/woocommerce
sudo mkdir -p /var/www/woocommerce/html
sudo mkdir -p /var/www/woocommerce/logs

# WordPress .htaccess dosyasını oluştur
cat > /var/www/woocommerce/html/.htaccess << 'EOF'
# 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
EOF

OpenLiteSpeed, .htaccess dosyalarını destekler ancak kendi rewrite sözdizimini tercih etmek performansı artırır. Admin panel üzerinden Virtual Hosts > woocommerce > Rewrite bölümünde aşağıdaki kuralları ekleyin:

# OpenLiteSpeed native rewrite kuralları
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

LSCache Plugin Kurulumu ve Yapılandırması

LiteSpeed Cache WordPress eklentisi, OpenLiteSpeed’in cache mekanizmasıyla doğrudan iletişim kurar. WordPress admin panelinden bu eklentiyi kurmanız şart.

# WP-CLI ile kurulum yapılıyorsa
wp plugin install litespeed-cache --activate --path=/var/www/woocommerce/html/

Eklenti kurulduktan sonra WooCommerce’e özel kritik ayarları yapılandırmanız gerekiyor. LiteSpeed Cache > Cache menüsünden şu ayarları düzenleyin:

  • Cache Logged-in Users: Kapalı (WooCommerce oturumları kişiselleştirilmiş içerik taşır)
  • Cache Commenters: Kapalı
  • Cache REST API: Açık (catalog API’leri cache’lenebilir)
  • Cache Login Page: Kapalı
  • TTL for Public Cache: 86400 (24 saat)

WooCommerce özelinde en kritik nokta sepet ve checkout sayfalarının asla önbelleğe alınmaması. LSCache bu sayfaları otomatik olarak tespit eder ancak ek güvenlik için functions.php veya özel bir plugin üzerinden exclude kuralı ekleyebilirsiniz:

<?php
// WooCommerce sayfalarını cache dışında tut
add_filter('litespeed_is_noncacheable', function($is_noncacheable) {
    if (function_exists('is_cart') && is_cart()) {
        return true;
    }
    if (function_exists('is_checkout') && is_checkout()) {
        return true;
    }
    if (function_exists('is_account_page') && is_account_page()) {
        return true;
    }
    return $is_noncacheable;
});

Object Cache ile Redis Entegrasyonu

Sayfa önbelleği WooCommerce’in yalnızca bir boyutu. Veritabanı sorguları, özellikle büyük ürün kataloglarında, ciddi bir yük oluşturuyor. Redis object cache bu sorunu çözer.

# Redis kurulumu
sudo apt-get install redis-server -y

# Redis yapılandırması
sudo nano /etc/redis/redis.conf

Redis yapılandırmasında şu değerleri düzenleyin:

  • maxmemory: 512mb (sunucu RAM’ine göre ayarlayın)
  • maxmemory-policy: allkeys-lru
  • bind: 127.0.0.1
  • save: Boş bırakın (persistence’a gerek yok, önbellek verisi)
# Redis'i yeniden başlat
sudo systemctl restart redis-server
sudo systemctl enable redis-server

# Redis bağlantısını test et
redis-cli ping
# Yanıt: PONG

WordPress tarafında wp-config.php dosyasına Redis yapılandırmasını ekleyin:

<?php
// Redis Object Cache yapılandırması
define('WP_CACHE_KEY_SALT', 'woocommerce_site_benzersiz_anahtar_');
define('WP_REDIS_HOST', '127.0.0.1');
define('WP_REDIS_PORT', 6379);
define('WP_REDIS_DATABASE', 0);
define('WP_REDIS_TIMEOUT', 1);
define('WP_REDIS_READ_TIMEOUT', 1);
define('WP_REDIS_MAXTTL', 3600);

// WooCommerce spesifik grupları cache'den hariç tut
define('WP_REDIS_IGNORED_GROUPS', [
    'counts',
    'session',
    'woocommerce_transients',
]);

LSCache eklentisi üzerinden de Redis object cache’i etkinleştirebilirsiniz. LiteSpeed Cache > Object Cache bölümünde Redis’i seçip bağlantı bilgilerini girin.

PHP OPcache Optimizasyonu

LSPHP için OPcache ayarları WooCommerce performansını doğrudan etkiliyor. WooCommerce büyük bir PHP kod tabanına sahip ve her istek için bu kodun yorumlanması ciddi zaman kaybı oluşturuyor.

# LSPHP 8.2 için OPcache yapılandırma dosyasını düzenle
sudo nano /usr/local/lsws/lsphp82/etc/php/8.2/litespeed/conf.d/10-opcache.ini
# OPcache optimal ayarları
opcache.enable=1
opcache.enable_cli=0
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=20000
opcache.max_wasted_percentage=5
opcache.validate_timestamps=0
opcache.revalidate_freq=0
opcache.fast_shutdown=1
opcache.jit_buffer_size=100M
opcache.jit=1255

opcache.validate_timestamps=0 ayarı dikkat gerektiriyor. Bu ayar PHP dosyalarının değişip değişmediğini kontrol etmeyi devre dışı bırakıyor. Canlı üretim ortamında harika bir performans artışı sağlıyor, ancak kod güncellemesi yaptıktan sonra OPcache’i manuel temizlemeniz gerekiyor:

# OPcache temizleme scripti
# /usr/local/bin/clear-opcache.sh olarak kaydedin
#!/bin/bash
php -r "opcache_reset();" 2>/dev/null || true
/usr/local/lsws/bin/lswsctrl restart
echo "OPcache temizlendi ve LiteSpeed yeniden başlatıldı"

Görsel Optimizasyonu ve WebP Dönüşümü

WooCommerce ürün görselleri, özellikle büyük kataloglarda, sayfa ağırlığının büyük bölümünü oluşturuyor. LSCache’in görsel optimizasyon modülü bu konuda güçlü araçlar sunuyor.

LiteSpeed Cache > Image Optimization bölümünde şu ayarları yapılandırın:

  • Auto Request Cron: Açık
  • WebP Replacement: Açık
  • WebP for Extra srcset: Açık
  • Optimize Original Images: Kapalı (yedek almadan yapma)
  • Remove Original Backups After Optimization: Kapalı

Toplu görsel optimizasyonu için WP-CLI ile şu komutu çalıştırabilirsiniz:

# Mevcut görselleri optimize et
wp litespeed-img opt --path=/var/www/woocommerce/html/

# WebP dönüşümünü kontrol et
wp litespeed-img pull --path=/var/www/woocommerce/html/

Veritabanı Optimizasyonu

WooCommerce zamanla veritabanını şişiriyor. Sipariş meta verileri, ürün geçici değerleri ve revizyon kayıtları gereksiz yük oluşturuyor. MySQL/MariaDB tarafında da yapılandırma optimizasyonu şart.

# MySQL/MariaDB yapılandırması
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

WooCommerce veritabanı için kritik MariaDB parametreleri:

  • innodb_buffer_pool_size: RAM’in yüzde yetmişi (örn. 8GB RAM için 5.6G)
  • innodb_log_file_size: 512M
  • innodb_flush_log_at_trx_commit: 2 (performans için, güvenlik biraz azalır)
  • innodb_flush_method: O_DIRECT
  • query_cache_type: 0 (MySQL 8.0 ve MariaDB 10.6+ için kaldırıldı)
  • max_connections: 150
  • innodb_read_io_threads: 4
  • innodb_write_io_threads: 4
# WooCommerce veritabanı temizleme scripti
# Düzenli olarak çalıştırın (aylık önerilir)
mysql -u root -p woocommerce_db << 'EOF'
-- Eski geçici değerleri temizle
DELETE FROM wp_options 
WHERE option_name LIKE '_transient_%' 
AND option_value < UNIX_TIMESTAMP(NOW() - INTERVAL 1 DAY);

-- WooCommerce eski sipariş meta verilerini temizle
DELETE pm FROM wp_postmeta pm
LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
WHERE wp.ID IS NULL;

-- Tablo optimizasyonu
OPTIMIZE TABLE wp_options, wp_postmeta, wp_woocommerce_sessions;
EOF

Gerçek Dünya Senaryosu: Flash Satış Trafiği

Bir müşterim için geçen yıl yaşanan bir durumu paylaşayım. 500 ürünlük bir WooCommerce mağazası, kampanya dönemlerinde saatte 15.000 benzersiz ziyaretçi alıyordu. Apache + PHP-FPM kurulumunda sunucu bu yükü kaldıramıyor, ortalama yanıt süresi 8-12 saniyeye çıkıyordu.

OpenLiteSpeed’e geçtikten sonra şu yapılandırmayı uyguladık. Önce httpd_config.conf dosyasında bağlantı limitlerini ayarladık:

# /usr/local/lsws/conf/httpd_config.conf içinde
# Bu değerleri admin panel üzerinden de ayarlayabilirsiniz
maxConnections 2000
maxSSLConnections 2000
connTimeout 300
maxKeepAliveReq 10000
keepAliveTimeout 5
sndBufSize 0
rcvBufSize 0

Sonuç olarak aynı donanımda ortalama yanıt süresi 8-12 saniyeden 0.4-0.8 saniyeye düştü. Sunucu CPU kullanımı yüzde 85-90 bandından yüzde 35-45 bandına indi. Bu farkı sadece önbellek mekanizması değil, LSAPI’nin PHP isteklerini işleme biçimi yaratıyor.

Güvenlik Katmanı: ModSecurity ve Rate Limiting

Performans optimizasyonu güvenliği es geçmeyi gerektirmiyor. OpenLiteSpeed, ModSecurity desteğiyle birlikte geliyor.

# ModSecurity kurulumu
sudo apt-get install modsecurity-crs -y

# LiteSpeed ModSecurity kural seti konumu
ls /usr/local/lsws/conf/modsec/

# WooCommerce için temel kural dışlama listesi
# Admin panel üzerinden Web Application Firewall bölümüne ekleyin
cat > /usr/local/lsws/conf/modsec/woocommerce_exceptions.conf << 'EOF'
# WooCommerce ödeme sayfası için false positive kurallarını devre dışı bırak
SecRuleRemoveById 981176
SecRuleRemoveById 981200
SecRuleRemoveById 960024
EOF

Rate limiting ile brute force ve bot saldırılarına karşı koruma sağlayın. Admin panelde Security > Access Control bölümünde şu kuralları tanımlayın:

  • wp-login.php için: Dakikada 5 istek limiti
  • wc-api endpoint’leri için: Saniyede 10 istek limiti
  • wp-admin/admin-ajax.php için: Saniyede 20 istek limiti

Ölçüm ve İzleme

Optimizasyonların etkisini ölçmeden nerede durduğunuzu bilemezsiniz.

# OpenLiteSpeed gerçek zamanlı istatistikleri
curl http://localhost:7080/status

# Cache hit oranını kontrol et
grep -r "X-LiteSpeed-Cache" /var/log/nginx/access.log 2>/dev/null || 
curl -I https://siteniz.com | grep -i litespeed

# Redis cache istatistikleri
redis-cli info stats | grep -E "keyspace_hits|keyspace_misses"

# PHP-LSAPI process durumu
pgrep -a lsphp

Cache hit oranı yüzde seksenin altındaysa önbellek kurallarınızı gözden geçirin. WooCommerce sitelerinde yüzde seksen beş ile doksan arasında bir cache hit oranı iyi kabul edilir. Sepet ve ödeme sayfalarının hariç tutulduğunu düşündüğünüzde bu oran mantıklı bir hedef.

GTmetrix veya WebPageTest ile düzenli performans testleri yapın. Özellikle şu metriklere odaklanın:

  • Time to First Byte (TTFB): 200ms altında olmalı
  • Largest Contentful Paint (LCP): 2.5 saniye altında
  • Total Blocking Time: 200ms altında

Sonuç

OpenLiteSpeed ile WooCommerce optimizasyonu tek seferlik bir görev değil, sürekli ince ayar gerektiren bir süreç. Burada anlattığım yapılandırmalar birçok farklı WooCommerce kurulumunda test edilmiş ve gerçek iyileştirmeler sağlamış yaklaşımlar.

Başlangıç noktası olarak şu sırayı takip edin: Önce LSAPI ile PHP entegrasyonunu doğru kurun, ardından LSCache’i WooCommerce’e özel yapılandırın, Redis object cache’i ekleyin, OPcache’i optimize edin ve son olarak veritabanı bakımını otomatize edin. Her adımı uyguladıktan sonra performans testleri yaparak etkisini ölçün.

Büyük trafik artışları yaşayan mağazalarda OpenLiteSpeed’in sağladığı sunucu kaynağı tasarrufu bazen ek bir sunucuya gerek kalmadan sorunları çözüyor. Bu, hem performans hem de maliyet açısından ciddi bir avantaj. Sorularınız ve kendi deneyimleriniz için yorumları kullanın.

Yorum yapın