{"id":257,"date":"2025-12-14T22:18:29","date_gmt":"2025-12-14T22:18:29","guid":{"rendered":"https:\/\/www.vps.tc\/blog\/cms-performans-ve-hiz-ayarlari-wordpress-joomla-drupal\/"},"modified":"2025-12-14T22:22:45","modified_gmt":"2025-12-14T22:22:45","slug":"cms-performans-ve-hiz-ayarlari-wordpress-joomla-drupal","status":"publish","type":"post","link":"https:\/\/www.vps.tc\/blog\/tr\/cms-performans-ve-hiz-ayarlari-wordpress-joomla-drupal\/","title":{"rendered":"CMS Performans ve H\u0131z Ayarlar\u0131: WordPress, Joomla, Drupal"},"content":{"rendered":"<h2>CMS tabanl\u0131 sitelerde h\u0131z neden bu kadar kritik?<\/h2>\n<p>\u0130ster WordPress, ister Joomla, ister Drupal kullan\u0131yor olun; \u00f6l\u00e7ek b\u00fcy\u00fcd\u00fck\u00e7e sorun genelde temadan \u00f6nce altyap\u0131da patlar. <strong>cms performans<\/strong> problemleri \u00e7o\u011fu zaman yanl\u0131\u015f yap\u0131land\u0131r\u0131lm\u0131\u015f PHP, veritaban\u0131 veya cache katman\u0131ndan kaynaklan\u0131r. Tema de\u011fi\u015ftirmek, eklenti silmek bazen i\u015fe yarar ama sunucu taraf\u0131 zay\u0131fsa asla yeterli olmaz.<\/p>\n<p>Canl\u0131 sistem y\u00f6neten herkes bilir: Trafik bir anda ikiye katland\u0131\u011f\u0131nda ilk darbe CPU, disk IO ve veritaban\u0131na gelir. \u00d6zellikle payla\u015f\u0131ml\u0131 hosting ortam\u0131nda saniyeler i\u00e7inde 504 hatalar\u0131, timeout sorunlar\u0131 ve admin paneline bile girememe gibi s\u0131k\u0131nt\u0131lar ortaya \u00e7\u0131kmaya ba\u015flar. Bu y\u00fczden en ba\u015ftan, CMS\u2019inizi ta\u015f\u0131yaca\u011f\u0131n\u0131z VPS, bulut veya dedicated sunucuyu do\u011fru se\u00e7mek ve mant\u0131kl\u0131 varsay\u0131lanlarla kurmak \u015fart.<\/p>\n<p>Burada odak, tek tek CMS ayarlar\u0131ndan \u00e7ok altyap\u0131n\u0131n \u00fc\u00e7 katman\u0131nda olacak: web sunucusu ve PHP, veritaban\u0131 ve cache. <strong>WordPress h\u0131zland\u0131rma<\/strong>, <strong>Joomla sunucu ayarlar\u0131<\/strong> veya <strong>Drupal optimize<\/strong> \u00e7al\u0131\u015fmalar\u0131 yaparken temel prensip hep ayn\u0131: statik i\u00e7eri\u011fi m\u00fcmk\u00fcn oldu\u011funca \u00f6nbellekten servis etmek, dinamik sorgu say\u0131s\u0131n\u0131 azaltmak ve a\u011f\u0131r i\u015flemleri arka plana ta\u015f\u0131mak.<\/p>\n<h2>Altyap\u0131 se\u00e7imi: VPS, bulut ve dedicated aras\u0131nda denge<\/h2>\n<p>\u0130yi ayarlanmam\u0131\u015f g\u00fc\u00e7l\u00fc bir dedicated sunucu, d\u00fczg\u00fcn yap\u0131land\u0131r\u0131lm\u0131\u015f orta seviye bir VPS\u2019ten \u00e7o\u011fu zaman daha yava\u015f \u00e7al\u0131\u015f\u0131r. Bu nedenle \u00f6nce i\u015f y\u00fck\u00fcn\u00fc ve b\u00fcy\u00fcme h\u0131z\u0131n\u0131z\u0131 do\u011fru okumak gerekiyor.<\/p>\n<ul>\n<li>Az trafikli kurumsal site veya blog i\u00e7in genellikle 2 vCPU, 4 GB RAM ve h\u0131zl\u0131 SSD depolama i\u015f g\u00f6r\u00fcr.<\/li>\n<li>Yo\u011fun eklentili WordPress, \u00e7ok dilli Joomla veya a\u011f\u0131r mod\u00fcll\u00fc Drupal sitelerinde 4 vCPU, 8 GB RAM ve m\u00fcmk\u00fcnse NVMe diskle ba\u015flamak daha g\u00fcvenlidir.<\/li>\n<li>E-ticaret, \u00fcyelik tabanl\u0131 sistemler veya \u00e7ok yo\u011fun API \u00e7a\u011fr\u0131s\u0131 alan projelerde ise <a href=\"https:\/\/www.vps.tc\/tr\/sanal-veri-merkezi\">sanal veri merkezi<\/a> veya <a href=\"https:\/\/www.vps.tc\/tr\/turkiye-fiziksel-sunucu\">dedicated sunucu<\/a> tercih edip kaynaklar\u0131 yatayda \u00f6l\u00e7eklemek daha sa\u011fl\u0131kl\u0131d\u0131r.<\/li>\n<\/ul>\n<p>T\u00fcrkiye lokasyonlu, d\u00fc\u015f\u00fck gecikmeli bir altyap\u0131 ar\u0131yorsan\u0131z, CMS\u2019inizi do\u011frudan payla\u015f\u0131ml\u0131 hosting yerine \u00f6rne\u011fin <a href=\"https:\/\/www.vps.tc\/tr\/vps\">VPS.TC VPS<\/a> ya da <a href=\"https:\/\/www.vps.tc\/tr\/bulut-sunucu\">bulut sunucu<\/a> \u00fczerinde ko\u015fturmak size hem \u00f6zg\u00fcrl\u00fck hem de daha tutarl\u0131 performans sa\u011flar. Kendi Nginx, PHP-FPM ve veritaban\u0131 versiyonlar\u0131n\u0131z\u0131 se\u00e7ebilir, kernel parametrelerine kadar ince ayar yapabilirsiniz.<\/p>\n<p>Burada en kritik nokta \u015fu: Donan\u0131m\u0131 rastgele b\u00fcy\u00fctmek yerine darbo\u011faz nerede, \u00f6nce onu tespit edin. CPU mu doluyor, RAM mi \u015fi\u015fiyor, disk IO mu t\u0131kan\u0131yor, yoksa veritaban\u0131 sorgular\u0131 m\u0131 yava\u015f? \u00d6l\u00e7meden yap\u0131lan her optimizasyon, \u00fcretim ortam\u0131nda risk demek.<\/p>\n<h2>Web sunucusu ve PHP katman\u0131nda kritik ayarlar<\/h2>\n<h3>PHP s\u00fcr\u00fcm\u00fc, OPcache ve FPM havuz ayarlar\u0131<\/h3>\n<p>WordPress, Joomla ve Drupal\u2019\u0131n g\u00fcncel s\u00fcr\u00fcmleri PHP 8.x ile ciddi performans kazan\u0131yor. Eski bir 7.x s\u00fcr\u00fcm\u00fcnde 200 ms s\u00fcren bir PHP iste\u011fi, do\u011fru yap\u0131land\u0131r\u0131lm\u0131\u015f PHP 8.1 ile 120\u2013130 ms civar\u0131na inebiliyor. Bu y\u00fczden ilk ad\u0131m, CMS\u2019inizin destekledi\u011fi en g\u00fcncel, kararl\u0131 PHP s\u00fcr\u00fcm\u00fcne ge\u00e7mek olmal\u0131.<\/p>\n<p>\u0130kinci ad\u0131m, OPcache\u2019i aktif edip d\u00fczg\u00fcn ayarlamak. OPcache, PHP dosyalar\u0131n\u0131 derlenmi\u015f halde bellekte tuttu\u011fu i\u00e7in her istek ba\u015f\u0131na dosya okuma ve derleme maliyetini ortadan kald\u0131r\u0131r. Tipik bir \u00fcretim ortam\u0131nda \u015fu de\u011ferlerle ba\u015flamak mant\u0131kl\u0131:<\/p>\n<ul>\n<li>opcache.enable = 1<\/li>\n<li>opcache.memory_consumption = 256 (veya trafik yo\u011funlu\u011funuza g\u00f6re 512)<\/li>\n<li>opcache.max_accelerated_files = 20000<\/li>\n<li>opcache.validate_timestamps = 0 (sadece deploy s\u00fcrecini kontrol edebiliyorsan\u0131z)<\/li>\n<\/ul>\n<p>PHP-FPM havuz ayarlar\u0131, \u00f6zellikle y\u00fcksek trafikli WordPress h\u0131zland\u0131rma senaryolar\u0131nda b\u00fcy\u00fck fark yarat\u0131r. \u00c7ok d\u00fc\u015f\u00fck de\u011ferlerle site kitlenir, \u00e7ok y\u00fcksek de\u011ferlerle de RAM patlar. Basit bir \u00f6rnek konfig\u00fcrasyon \u015f\u00f6yle olabilir:<\/p>\n<pre><code class=\"language-ini\">[www]\npm = dynamic\npm.max_children = 20\npm.start_servers = 4\npm.min_spare_servers = 4\npm.max_spare_servers = 8\npm.max_requests = 500<\/code><\/pre>\n<p>Buradaki de\u011ferler her sistem i\u00e7in ge\u00e7erli de\u011fildir; mutlaka canl\u0131 \u00f6ncesi test ortam\u0131nda denemelisiniz. \u00d6zellikle pm.max_children de\u011ferini, RAM kullan\u0131m\u0131n\u0131 ve ortalama PHP s\u00fcre\u00e7 ba\u015f\u0131na t\u00fcketilen belle\u011fi \u00f6l\u00e7erek belirlemek gerekir. Aksi halde anl\u0131k trafik art\u0131\u015flar\u0131nda OOM (Out Of Memory) ile t\u00fcm PHP-FPM\u2019in \u00e7\u00f6kmesine sebep olursunuz.<\/p>\n<h3>Nginx veya Apache i\u00e7in ba\u011flant\u0131 ve s\u0131k\u0131\u015ft\u0131rma ayarlar\u0131<\/h3>\n<p>Web sunucusu taraf\u0131nda ana hedef; ayn\u0131 anda m\u00fcmk\u00fcn oldu\u011funca fazla iste\u011fi y\u00f6netmek ve her bir iste\u011fin a\u011f \u00fczerinden olabildi\u011fince k\u00fc\u00e7\u00fck boyutta ta\u015f\u0131nmas\u0131n\u0131 sa\u011flamakt\u0131r.<\/p>\n<p>Nginx kullan\u0131yorsan\u0131z, keepalive ve gzip ayarlar\u0131n\u0131 mant\u0131kl\u0131 seviyelerde tutmak \u00f6nemli:<\/p>\n<pre><code class=\"language-nginx\">http {\n    keepalive_timeout  15;\n    sendfile           on;\n    tcp_nopush         on;\n\n    gzip on;\n    gzip_comp_level 5;\n    gzip_types text\/css application\/javascript application\/json image\/svg+xml;\n}<\/code><\/pre>\n<p>Apache kullan\u0131yorsan\u0131z event MPM ve mod_http2 ile birlikte PHP-FPM entegrasyonu (mod_php yerine proxy_fcgi) genellikle daha \u00f6l\u00e7eklenebilir bir yap\u0131 sunar. Ayn\u0131 \u015fekilde, mod_deflate veya mod_brotli ile s\u0131k\u0131\u015ft\u0131rma sa\u011flayarak \u00f6zellikle HTML, CSS ve JS boyutlar\u0131n\u0131 ciddi oranda k\u00fc\u00e7\u00fcltebilirsiniz.<\/p>\n<p>Burada yap\u0131lan yayg\u0131n hata, her \u015feyi maksimuma a\u00e7mak. \u00d6rne\u011fin gzip_comp_level de\u011ferini 9 yapmak CPU\u2019yu gereksiz yorarken kazand\u0131\u011f\u0131n\u0131z bant geni\u015fli\u011fi \u00e7o\u011fu senaryoda anlaml\u0131 olmaz. \u00dcretim ortam\u0131nda her de\u011fi\u015fikli\u011fi \u00f6nce test edip, ard\u0131ndan canl\u0131ya al\u0131rken e\u015f zamanl\u0131 izleme yapmal\u0131s\u0131n\u0131z.<\/p>\n<h2>Veritaban\u0131 katman\u0131n\u0131 ayarlamak<\/h2>\n<h3>MySQL\/MariaDB i\u00e7in temel tampon ve ba\u011flant\u0131 ayarlar\u0131<\/h3>\n<p>WordPress, Joomla ve Drupal\u2019\u0131n b\u00fcy\u00fck \u00e7o\u011funlu\u011fu MySQL veya MariaDB \u00fczerinde \u00e7al\u0131\u015f\u0131yor. Veritaban\u0131 yava\u015fsa, en m\u00fckemmel PHP ve cache optimizasyonu bile toplam s\u00fcreyi kurtaramaz.<\/p>\n<p>\u0130lk bak\u0131lmas\u0131 gereken yer, InnoDB yap\u0131land\u0131rmas\u0131d\u0131r. \u00d6zellikle innodb_buffer_pool_size parametresi \u00e7ok k\u00fc\u00e7\u00fcksa, her sorguda diskten okuma yap\u0131ld\u0131\u011f\u0131 i\u00e7in gecikme artar. Genel bir kural olarak, veritaban\u0131n\u0131z\u0131n aktif veri setinin m\u00fcmk\u00fcn oldu\u011funca b\u00fcy\u00fck k\u0131sm\u0131n\u0131 RAM\u2019de tutmaya \u00e7al\u0131\u015f\u0131n.<\/p>\n<pre><code class=\"language-ini\">[mysqld]\ninnodb_buffer_pool_size = 4G\ninnodb_log_file_size    = 1G\nmax_connections         = 200\nquery_cache_type        = 0\nquery_cache_size        = 0<\/code><\/pre>\n<p>Eski al\u0131\u015fkanl\u0131klarla h\u00e2l\u00e2 query_cache a\u00e7an \u00e7ok y\u00f6netici g\u00f6r\u00fcyorum. Modern InnoDB ile query cache \u00e7o\u011fu zaman yarardan \u00e7ok zarar veriyor; kilitlenmelere ve bekleme s\u00fcrelerine sebep olabiliyor. O y\u00fczden kapal\u0131 b\u0131rakmak daha g\u00fcvenli.<\/p>\n<p>max_connections de\u011ferini de abartmadan, ger\u00e7ekten ihtiya\u00e7 duydu\u011funuz seviyede tutun. 1000 ba\u011flant\u0131 limiti koyup RAM yetmedi\u011fi i\u00e7in swap\u2019e d\u00fc\u015fen, sonra da t\u00fcm siteleri duran sistemler g\u00f6rmek maalesef \u00e7ok yayg\u0131n.<\/p>\n<h3>CMS seviyesinde temizlik ve indeks kullan\u0131m\u0131<\/h3>\n<p>WordPress h\u0131zland\u0131rma \u00e7al\u0131\u015fmalar\u0131nda gereksiz revizyon kay\u0131tlar\u0131, otomatik taslaklar ve \u015fi\u015fmi\u015f wp_options tablosu klasik sorunlard\u0131r. D\u00fczg\u00fcn bir bak\u0131m takvimi ile:<\/p>\n<ul>\n<li>Eski revizyonlar\u0131 ve otomatik taslaklar\u0131 temizleyebilir,<\/li>\n<li>Autoload edilen ama art\u0131k kullan\u0131lmayan se\u00e7enekleri kald\u0131rabilir,<\/li>\n<li>Yo\u011fun sorgu alan tablolara eksik indeksleri ekleyebilirsiniz.<\/li>\n<\/ul>\n<p>Joomla ve Drupal taraf\u0131nda da benzer \u015fekilde log ve oturum tablolar\u0131 zamanla \u015fi\u015fer. \u00d6zellikle Drupal\u2019da watchdog (log) tablolar\u0131 temizlenmezse hem disk hem de sorgu s\u00fcreleri a\u00e7\u0131s\u0131ndan ciddi y\u00fck olu\u015fturabilir.<\/p>\n<p>Bu temizlik i\u015flemlerini asla do\u011frudan \u00fcretim veritaban\u0131nda denemeyin. \u00d6nce yede\u011fi al\u0131n, tercihen staging ortam\u0131nda test edin, ard\u0131ndan bak\u0131m penceresi a\u00e7\u0131p canl\u0131 sistemde uygulay\u0131n. Yanl\u0131\u015f bir silme komutu, saniyeler i\u00e7inde t\u00fcm sitenizi kullan\u0131lmaz hale getirebilir.<\/p>\n<h2>WordPress h\u0131zland\u0131rma i\u00e7in sunucu odakl\u0131 pratikler<\/h2>\n<p>WordPress ekosisteminde binlerce cache eklentisi var; fakat as\u0131l kazan\u0131m, bu eklentileri do\u011fru yap\u0131land\u0131r\u0131lm\u0131\u015f bir sunucu ortam\u0131yla birle\u015ftirdi\u011finizde ortaya \u00e7\u0131kar.<\/p>\n<p>\u00d6ncelikle PHP taraf\u0131nda OPcache\u2019in stabil \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun. Sonras\u0131nda, objekt cache i\u00e7in Redis veya Memcached tercih etmek, \u00f6zellikle \u00e7ok sorgu yapan eklentilerde hissedilir bir rahatlama sa\u011flar. Redis i\u00e7in tipik bir kurulumdan sonra wp-config.php i\u00e7ine ba\u011flant\u0131 bilgilerini eklemek yeterlidir.<\/p>\n<p>Yo\u011fun trafik alan sitelerde WordPress cron sistemini ger\u00e7ek cron\u2019a ta\u015f\u0131mak da gecikmeleri azalt\u0131r. Aksi halde her kullan\u0131c\u0131 iste\u011finde cron tetiklenmeye \u00e7al\u0131\u015f\u0131r ve kimi zaman sayfa y\u00fcklenmesini geciktirir.<\/p>\n<pre><code class=\"language-php\">define('DISABLE_WP_CRON', true);<\/code><\/pre>\n<p>Bu sat\u0131rdan sonra sistem cron\u2019unda dakikada bir \u00e7al\u0131\u015fan bir g\u00f6rev ekleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\"># WordPress cron'u ger\u00e7ek cron \u00fczerinden \u00e7al\u0131\u015ft\u0131rmak i\u00e7in\n* * * * * www-data php \/var\/www\/site\/public\/wp-cron.php &gt;\/dev\/null 2&gt;&amp;1<\/code><\/pre>\n<p>Nginx kullan\u0131yorsan\u0131z, WordPress i\u00e7in FastCGI cache yap\u0131land\u0131rmak, \u00f6zellikle anonim kullan\u0131c\u0131 trafi\u011finde sayfa yan\u0131t s\u00fcrelerini milisaniye seviyesine \u00e7ekebilir. Buradaki kritik nokta; giri\u015f yapm\u0131\u015f kullan\u0131c\u0131lar\u0131, sepeti olan ziyaret\u00e7ileri veya \u00f6zel cookie ta\u015f\u0131yan istekleri \u00f6nbelle\u011fe almamakt\u0131r.<\/p>\n<p>Depolama taraf\u0131nda da k\u00fc\u00e7\u00fck ama etkili dokunu\u015flar var: Resimleri otomatik s\u0131k\u0131\u015ft\u0131ran ve WebP format\u0131na \u00e7eviren \u00e7\u00f6z\u00fcmler, CDN kullan\u0131m\u0131 ve HTTP\/2 deste\u011fi, WordPress h\u0131zland\u0131rma s\u00fcrecinde g\u00f6z ard\u0131 edildi\u011finde ciddi f\u0131rsat kayb\u0131 yarat\u0131r.<\/p>\n<h2>Joomla sunucu ayarlar\u0131 ile kararl\u0131 h\u0131z<\/h2>\n<p>Joomla yap\u0131s\u0131 gere\u011fi mod\u00fcller ve eklentiler \u00fczerinden geni\u015fletildi\u011fi i\u00e7in, k\u00f6t\u00fc yaz\u0131lm\u0131\u015f birka\u00e7 eklenti t\u00fcm siteyi yava\u015flatabilir. Ancak sunucu taraf\u0131nda alaca\u011f\u0131n\u0131z \u00f6nlemlerle bu etkiyi s\u0131n\u0131rlamak m\u00fcmk\u00fcn.<\/p>\n<p>\u00d6ncelikle PHP s\u00fcr\u00fcm\u00fcn\u00fc g\u00fcncel tutup OPcache\u2019i etkinle\u015ftirin. Ard\u0131ndan Joomla\u2019n\u0131n dahili cache mekanizmas\u0131n\u0131 etkinle\u015ftirip, m\u00fcmk\u00fcnse dosya tabanl\u0131 cache yerine Redis veya Memcached gibi bellek tabanl\u0131 \u00e7\u00f6z\u00fcmler kullan\u0131n. Bu, hem CPU hem de disk IO y\u00fck\u00fcn\u00fc azalt\u0131r.<\/p>\n<p>Joomla sunucu ayarlar\u0131 taraf\u0131nda dikkat edilmesi gereken ba\u015fl\u0131klar:<\/p>\n<ul>\n<li>Gzip veya Brotli s\u0131k\u0131\u015ft\u0131rmas\u0131n\u0131 web sunucusu seviyesinde etkinle\u015ftirmek,<\/li>\n<li>Session verisini dosya yerine Redis gibi kal\u0131c\u0131 bir store\u2019da tutmak,<\/li>\n<li>PHP-FPM havuzunu \u00f6zellikle admin trafi\u011fini hesaba katarak boyutland\u0131rmak,<\/li>\n<li>Gereksiz Apache mod\u00fcllerini kapatmak veya Nginx taraf\u0131nda fazla kural y\u00fck\u00fcn\u00fc azaltmak.<\/li>\n<\/ul>\n<p>Admin panelinde yap\u0131lan yap\u0131land\u0131rma de\u011fi\u015fikliklerini canl\u0131ya almadan \u00f6nce staging bir Joomla kopyas\u0131nda test etmek, \u00f6zellikle cache ve s\u0131k\u0131\u015ft\u0131rma ayarlar\u0131nda bozulmalar\u0131 \u00f6nler. Yanl\u0131\u015f bir .htaccess kural\u0131, t\u00fcm siteyi 500 hata ekran\u0131na \u00e7evirebilir.<\/p>\n<h2>Drupal optimize ipu\u00e7lar\u0131<\/h2>\n<p>Drupal, esnekli\u011fi ve mod\u00fcler yap\u0131s\u0131 sayesinde b\u00fcy\u00fck projelerde s\u0131k tercih ediliyor; ama yanl\u0131\u015f yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131nda \u00e7ok a\u011f\u0131r \u00e7al\u0131\u015fabiliyor. Burada da sunucu taraf\u0131 ayarlar\u0131 \u00f6nemli bir kald\u0131raca d\u00f6n\u00fc\u015f\u00fcyor.<\/p>\n<p>\u0130lk olarak, Drupal\u2019\u0131n cache sistemini tam anlam\u0131yla kullanabilmek i\u00e7in PHP OPcache, APCu veya Redis gibi bile\u015fenleri devreye al\u0131n. \u00c7oklu sunucu senaryolar\u0131nda, Redis \u00fczerinden payla\u015f\u0131lan cache ve session y\u00f6netimi ciddi tutarl\u0131l\u0131k sa\u011flar.<\/p>\n<p>Asset (CSS ve JS) birle\u015ftirme ve k\u00fc\u00e7\u00fcltme ayarlar\u0131n\u0131 aktif etmek, \u00f6zellikle ilk y\u00fcklenme s\u00fcresini iyile\u015ftirir. Ayn\u0131 zamanda HTTP\/2 ve m\u00fcmk\u00fcnse HTTP\/3 deste\u011fi olan bir ters proxy (\u00f6rne\u011fin Nginx) arkas\u0131nda Drupal ko\u015fturmak da paralel istek say\u0131s\u0131n\u0131 ve gecikmeyi iyile\u015ftirir.<\/p>\n<p>Drupal optimize \u00e7al\u0131\u015fmalar\u0131 s\u0131ras\u0131nda log ve cron yap\u0131land\u0131rmas\u0131n\u0131 da atlamay\u0131n. Yo\u011fun log tutan mod\u00fcller diski doldurabilir, d\u00fczenli \u00e7al\u0131\u015fmayan cron g\u00f6revleri ise cache temizli\u011fi gibi kritik i\u015flemleri aksatabilir. \u00d6zellikle cron tetikleme s\u0131kl\u0131\u011f\u0131 ile trafik profilinizi birbiriyle uyumlu hale getirmelisiniz.<\/p>\n<p>Bir di\u011fer nokta da veritaban\u0131 sorgular\u0131n\u0131n izlenmesi. Drupal\u2019da yava\u015f sorgular\u0131 yakalamak i\u00e7in veritaban\u0131 loglar\u0131n\u0131 ve gerekiyorsa uygulama seviyesindeki profil ara\u00e7lar\u0131n\u0131 kullan\u0131n. Bu sorgulara uygun indeks eklemek, kimi zaman donan\u0131m\u0131 iki kat\u0131na \u00e7\u0131karmaktan daha etkili sonu\u00e7 verir.<\/p>\n<h2>\u0130zleme, log analizi ve s\u00fcrekli iyile\u015ftirme i\u00e7in yol haritas\u0131<\/h2>\n<p>Sunucunuza SSH ile ba\u011fland\u0131\u011f\u0131n\u0131zda ilk yapman\u0131z gereken, anl\u0131k durumu g\u00f6rmek olmal\u0131. \u00d6rne\u011fin htop veya top ile CPU ve RAM kullan\u0131m\u0131n\u0131, iostat ile disk IO\u2019yu, netstat veya ss ile de ba\u011flant\u0131 durumlar\u0131n\u0131 incelemek iyi bir ba\u015flang\u0131\u00e7t\u0131r.<\/p>\n<pre><code class=\"language-bash\"># Temel canl\u0131 izleme komutlar\u0131\nhtop\niostat -x 1\nvmstat 1\nss -tnp | head<\/code><\/pre>\n<p>Bu komutlar size nerede t\u0131kanma oldu\u011funu g\u00f6sterir: CPU mu dolu, disk mi kilitlenmi\u015f, yoksa y\u00fczlerce bekleyen TCP ba\u011flant\u0131s\u0131 m\u0131 var? Sonras\u0131nda web sunucusu loglar\u0131 (access ve error), PHP-FPM loglar\u0131 ve veritaban\u0131 slow query log\u2019u ile tabloyu netle\u015ftirebilirsiniz.<\/p>\n<p>Her b\u00fcy\u00fck de\u011fi\u015fiklikten \u00f6nce mutlaka tam yedek al\u0131n: dosya sistemi, veritaban\u0131 ve m\u00fcmk\u00fcnse snapshot bazl\u0131 disk yede\u011fi. \u00d6zellikle <a href=\"https:\/\/www.vps.tc\/tr\/vds-sanal-sunucu\">VDS<\/a> veya <a href=\"https:\/\/www.vps.tc\/tr\/bulut-sunucu\">bulut sunucu<\/a> kullan\u0131yorsan\u0131z, snapshot\u2019lar h\u0131zl\u0131 geri d\u00f6n\u00fc\u015f i\u00e7in hayat kurtar\u0131r. Canl\u0131 ortamda yapt\u0131\u011f\u0131n\u0131z her ayar\u0131n geri d\u00f6n\u00fc\u015f yolunu ba\u015ftan planlay\u0131n.<\/p>\n<p>\u0130lerlerken \u015fu basit d\u00f6ng\u00fcy\u00fc uygulamak i\u015finizi kolayla\u015ft\u0131r\u0131r:<\/p>\n<ul>\n<li>\u00d6l\u00e7: CPU, RAM, disk IO, sorgu s\u00fcreleri ve yan\u0131t s\u00fcrelerini izle.<\/li>\n<li>Darbo\u011faz\u0131 bul: En \u00e7ok kaynak t\u00fcketen bile\u015feni tespit et.<\/li>\n<li>Hedefli de\u011fi\u015fiklik yap: Sadece ilgili katmanda ayar de\u011fi\u015ftir.<\/li>\n<li>Tekrar \u00f6l\u00e7: De\u011fi\u015fikli\u011fin etkisini rakamlarla g\u00f6r.<\/li>\n<\/ul>\n<p>B\u00f6ylece rastgele hamleler yerine, ger\u00e7ekten etkili optimizasyonlar yapm\u0131\u015f olursunuz. WordPress h\u0131zland\u0131rma, Joomla sunucu ayarlar\u0131 veya Drupal optimize s\u00fcre\u00e7lerinin hepsinde bu yakla\u015f\u0131m ge\u00e7erli.<\/p>\n<p>\u0130lk ad\u0131m olarak mevcut sunucunuzda k\u00fc\u00e7\u00fck bir performans envanteri \u00e7\u0131kar\u0131n: Hangi PHP s\u00fcr\u00fcm\u00fc kullan\u0131l\u0131yor, OPcache aktif mi, veritaban\u0131 tamponlar\u0131 yeterli mi, cache mekanizmas\u0131 nas\u0131l \u00e7al\u0131\u015f\u0131yor? Ard\u0131ndan burada payla\u015ft\u0131\u011f\u0131m ayarlar\u0131 test ortam\u0131nda deneyip, canl\u0131ya kontroll\u00fc \u015fekilde ge\u00e7in. Birka\u00e7 hafta sonra, do\u011fru yap\u0131land\u0131r\u0131lm\u0131\u015f bir altyap\u0131n\u0131n <strong>cms performans<\/strong> \u00fczerinde ne kadar dramatik fark yaratt\u0131\u011f\u0131n\u0131 net \u015fekilde g\u00f6receksiniz.<\/p>\n<div class=\"faq-section\">\n<h2>S\u0131k\u00e7a Sorulan Sorular<\/h2>\n<div class=\"faq-item\">\n<h3>CMS performans\u0131n\u0131 art\u0131rmak i\u00e7in nereden ba\u015flamal\u0131y\u0131m?<\/h3>\n<p>\u00d6nce \u00f6l\u00e7\u00fcmle ba\u015flay\u0131n. CPU, RAM, disk IO ve veritaban\u0131 sorgu s\u00fcrelerini izleyip darbo\u011faz\u0131n nerede oldu\u011funu belirleyin. Ard\u0131ndan PHP s\u00fcr\u00fcm\u00fcn\u00fc g\u00fcncelleyip OPcache\u2019i etkinle\u015ftirin, veritaban\u0131nda InnoDB tampon ayarlar\u0131n\u0131 g\u00f6zden ge\u00e7irin ve mutlaka bir cache katman\u0131 (OPcache, Redis, dosya cache vb.) devreye al\u0131n. De\u011fi\u015fiklikleri \u00f6nce test ortam\u0131nda, ard\u0131ndan yedek alarak \u00fcretim ortam\u0131nda uygulay\u0131n.<\/p>\n<\/div>\n<div class=\"faq-item\">\n<h3>WordPress h\u0131zland\u0131rma i\u00e7in sunucu taraf\u0131nda hangi ayarlar en kritiktir?<\/h3>\n<p>WordPress h\u0131zland\u0131rma a\u00e7\u0131s\u0131ndan en kritik ba\u015fl\u0131klar; g\u00fcncel PHP 8.x kullan\u0131m\u0131, do\u011fru yap\u0131land\u0131r\u0131lm\u0131\u015f PHP-FPM havuz ayarlar\u0131, aktif ve yeterli belle\u011fe sahip OPcache, verimli bir veritaban\u0131 (do\u011fru innodb_buffer_pool_size, makul max_connections) ve d\u00fczg\u00fcn \u00e7al\u0131\u015fan bir cache katman\u0131d\u0131r. Nginx FastCGI cache veya benzer tam sayfa cache \u00e7\u00f6z\u00fcmleriyle anonim ziyaret\u00e7ilerin b\u00fcy\u00fck b\u00f6l\u00fcm\u00fcn\u00fc \u00f6nbellekten kar\u015f\u0131layabilir, cron g\u00f6revlerini ger\u00e7ek cron ile \u00e7al\u0131\u015ft\u0131rarak istek ba\u015f\u0131na ek y\u00fck\u00fc azaltabilirsiniz.<\/p>\n<\/div>\n<div class=\"faq-item\">\n<h3>Joomla sunucu ayarlar\u0131 i\u00e7in minimum donan\u0131m ne olmal\u0131?<\/h3>\n<p>K\u00fc\u00e7\u00fck ve orta \u00f6l\u00e7ekli Joomla siteleri i\u00e7in genelde 2 vCPU, 4 GB RAM ve h\u0131zl\u0131 SSD depolama iyi bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r. Yo\u011fun bile\u015fen kullanan, \u00e7ok dilli veya y\u00fcksek trafikli sitelerde 4 vCPU ve 8 GB RAM daha g\u00fcvenli olur. \u00d6nemli olan yaln\u0131zca donan\u0131m de\u011fil, PHP-FPM, OPcache, gzip\/brotli s\u0131k\u0131\u015ft\u0131rma ve cache katman\u0131n\u0131 do\u011fru yap\u0131land\u0131rmakt\u0131r. Donan\u0131m\u0131 b\u00fcy\u00fctmeden \u00f6nce yap\u0131land\u0131rmay\u0131 optimize etmek \u00e7o\u011fu zaman daha iyi sonu\u00e7 verir.<\/p>\n<\/div>\n<div class=\"faq-item\">\n<h3>Drupal optimize \u00e7al\u0131\u015fmalar\u0131 s\u0131ras\u0131nda en s\u0131k yap\u0131lan hatalar nelerdir?<\/h3>\n<p>En s\u0131k g\u00f6r\u00fclen hatalar; PHP ve veritaban\u0131 ayarlar\u0131n\u0131 varsay\u0131lan b\u0131rakmak, Drupal cache sistemini tam kullanmamak, log tablolar\u0131n\u0131 ve cron g\u00f6revlerini ihmal etmek ve her de\u011fi\u015fikli\u011fi do\u011frudan \u00fcretim ortam\u0131nda denemektir. Ayr\u0131ca Redis veya benzeri cache \u00e7\u00f6z\u00fcmlerini devreye almadan sadece mod\u00fcl kapat\u0131p a\u00e7arak performans beklemek de yayg\u0131n bir yanl\u0131\u015ft\u0131r. Her b\u00fcy\u00fck de\u011fi\u015fiklik \u00f6ncesi yedek almak, staging ortam\u0131nda test etmek ve ard\u0131ndan canl\u0131ya kontroll\u00fc ge\u00e7i\u015f yapmak bu hatalar\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde \u00f6nler.<\/p>\n<\/div>\n<\/div>\n<p><script type=\"application\/ld+json\">{\"@context\":\"https:\/\/schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"CMS performans\u0131n\u0131 art\u0131rmak i\u00e7in nereden ba\u015flamal\u0131y\u0131m?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"\u00d6nce \u00f6l\u00e7\u00fcmle ba\u015flay\u0131n. CPU, RAM, disk IO ve veritaban\u0131 sorgu s\u00fcrelerini izleyip darbo\u011faz\u0131n nerede oldu\u011funu belirleyin. Ard\u0131ndan PHP s\u00fcr\u00fcm\u00fcn\u00fc g\u00fcncelleyip OPcache\u2019i etkinle\u015ftirin, veritaban\u0131nda InnoDB tampon ayarlar\u0131n\u0131 g\u00f6zden ge\u00e7irin ve mutlaka bir cache katman\u0131 (OPcache, Redis, dosya cache vb.) devreye al\u0131n. De\u011fi\u015fiklikleri \u00f6nce test ortam\u0131nda, ard\u0131ndan yedek alarak \u00fcretim ortam\u0131nda uygulay\u0131n.\"}},{\"@type\":\"Question\",\"name\":\"WordPress h\u0131zland\u0131rma i\u00e7in sunucu taraf\u0131nda hangi ayarlar en kritiktir?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"WordPress h\u0131zland\u0131rma a\u00e7\u0131s\u0131ndan en kritik ba\u015fl\u0131klar; g\u00fcncel PHP 8.x kullan\u0131m\u0131, do\u011fru yap\u0131land\u0131r\u0131lm\u0131\u015f PHP-FPM havuz ayarlar\u0131, aktif ve yeterli belle\u011fe sahip OPcache, verimli bir veritaban\u0131 (do\u011fru innodb_buffer_pool_size, makul max_connections) ve d\u00fczg\u00fcn \u00e7al\u0131\u015fan bir cache katman\u0131d\u0131r. Nginx FastCGI cache veya benzer tam sayfa cache \u00e7\u00f6z\u00fcmleriyle anonim ziyaret\u00e7ilerin b\u00fcy\u00fck b\u00f6l\u00fcm\u00fcn\u00fc \u00f6nbellekten kar\u015f\u0131layabilir, cron g\u00f6revlerini ger\u00e7ek cron ile \u00e7al\u0131\u015ft\u0131rarak istek ba\u015f\u0131na ek y\u00fck\u00fc azaltabilirsiniz.\"}},{\"@type\":\"Question\",\"name\":\"Joomla sunucu ayarlar\u0131 i\u00e7in minimum donan\u0131m ne olmal\u0131?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"K\u00fc\u00e7\u00fck ve orta \u00f6l\u00e7ekli Joomla siteleri i\u00e7in genelde 2 vCPU, 4 GB RAM ve h\u0131zl\u0131 SSD depolama iyi bir ba\u015flang\u0131\u00e7 noktas\u0131d\u0131r. Yo\u011fun bile\u015fen kullanan, \u00e7ok dilli veya y\u00fcksek trafikli sitelerde 4 vCPU ve 8 GB RAM daha g\u00fcvenli olur. \u00d6nemli olan yaln\u0131zca donan\u0131m de\u011fil, PHP-FPM, OPcache, gzip\/brotli s\u0131k\u0131\u015ft\u0131rma ve cache katman\u0131n\u0131 do\u011fru yap\u0131land\u0131rmakt\u0131r. Donan\u0131m\u0131 b\u00fcy\u00fctmeden \u00f6nce yap\u0131land\u0131rmay\u0131 optimize etmek \u00e7o\u011fu zaman daha iyi sonu\u00e7 verir.\"}},{\"@type\":\"Question\",\"name\":\"Drupal optimize \u00e7al\u0131\u015fmalar\u0131 s\u0131ras\u0131nda en s\u0131k yap\u0131lan hatalar nelerdir?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"En s\u0131k g\u00f6r\u00fclen hatalar; PHP ve veritaban\u0131 ayarlar\u0131n\u0131 varsay\u0131lan b\u0131rakmak, Drupal cache sistemini tam kullanmamak, log tablolar\u0131n\u0131 ve cron g\u00f6revlerini ihmal etmek ve her de\u011fi\u015fikli\u011fi do\u011frudan \u00fcretim ortam\u0131nda denemektir. Ayr\u0131ca Redis veya benzeri cache \u00e7\u00f6z\u00fcmlerini devreye almadan sadece mod\u00fcl kapat\u0131p a\u00e7arak performans beklemek de yayg\u0131n bir yanl\u0131\u015ft\u0131r. Her b\u00fcy\u00fck de\u011fi\u015fiklik \u00f6ncesi yedek almak, staging ortam\u0131nda test etmek ve ard\u0131ndan canl\u0131ya kontroll\u00fc ge\u00e7i\u015f yapmak bu hatalar\u0131 b\u00fcy\u00fck \u00f6l\u00e7\u00fcde \u00f6nler.\"}}]}<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>WordPress, Joomla ve Drupal sitelerinde ger\u00e7ek h\u0131z kazanmak istiyorsan\u0131z i\u015fe sunucudan ba\u015flamak zorundas\u0131n\u0131z. PHP, veritaban\u0131 ve cache ayarlar\u0131yla cms performans fark\u0131n\u0131 net g\u00f6r\u00fcrs\u00fcn\u00fcz.<\/p>\n","protected":false},"author":1,"featured_media":256,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[666],"tags":[1093,1096,1099,1102,1105,1108,340,678],"class_list":["post-257","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cms","tag-cache-yonetimi","tag-cms-performans","tag-drupal-optimize","tag-joomla-sunucu-ayarlari","tag-mysql-optimizasyonu","tag-php-fpm","tag-vps-sunucu","tag-wordpress-hizlandirma"],"lang":"tr","translations":{"tr":257,"en":272},"pll_sync_post":[],"_links":{"self":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/257","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/comments?post=257"}],"version-history":[{"count":1,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/257\/revisions"}],"predecessor-version":[{"id":258,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/posts\/257\/revisions\/258"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/media\/256"}],"wp:attachment":[{"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/media?parent=257"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/categories?post=257"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vps.tc\/blog\/wp-json\/wp\/v2\/tags?post=257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}