WordPress Neden Çağ Dışı Kalmış Bir Teknolojidir?
Originally published at oguzhan.in on October 14, 2016.
Bu yazının hikayesi, kendine WordPress ile web sitesi yapmaya çalışan, Sinema Prodüksiyonu ile uğraşan yakın bir arkadaşımın, klasik bir şekilde benden yardım talep etmesiyle başlıyor. WordPress kurup, ayarlayabilecek seviyede birisi fakat kesinlikle developer değil.
abi benim siteye bir bakar mısın ya, çok yavaş çalışıyor
Bu tarz talepleri tahmin ediyorum ki herkes çevresinden almıştır.
İlk baktığımda 20–30 tane yazısı bulunan sıradan bir WordPress sitesiydi. Fakat paylaşımlı hosting hesabında bulunan site, 100%’e yakın CPU harcadığı için, sürekli kapatılıyormuş.
Benim tahminlerime göre bu hata sunucudan kaynaklıydı. Shared Hosting üzerinde site mi tutulur diye arkadaşıma kızdım. Ben bunu duyar duymaz, siteyi kendi sunucuma transfer ettim. Ve uygulamanın neden 100% CPU harcadığını anlamaya çalıştım.
Siteyi Browser üzerinden çağırdığınız anda, php-fpm %100’e vuran bir kullanıma sahip oluyor. WordPress’in kendi panelinde gezinirken, sitenin ön tarafında gezinirken her bir iş sonrasında 100%’e vuruyor görmüş olduğunuz rakamlar.
WordPress Ne İçin Kullanılır ve Neden Böyle Sorunlar Yaşanıyor?
11 yıl önce WordPress 2.0 versiyonunu kullanmaya başlayan biri olarak söyleyebilirim ki, WordPress ilk çıktığında, blog yazmak için gayet kullanışlı ve hızlı çözümler sunan bir araçtı.
Hatırladığım kadarıyla çok hızlı bir şekilde popülerleşmişti. Şimdiki İnternet Fenomenleri yerine o sıralar Blogger’ları takip ettiğimiz yıllardı. Free olarak, WordPress için bir sürü plugin ve template yayınlanıyordu. Hemen hemen internette blog yazan herkes WordPress kullanıyordu. Veya alternatifi olarak Blogger’ı. Fakat hiç biri WordPress kadar tema desteğine sahip değildi ve istediğiniz şekilde geliştiremiyordunuz..
2005–2006 yıllarında Envato vb. alternatif pazarların oluşmaya başlaması ile birlikte, Wordpress o eski basitliğinden çıkıp, ilkel kod yapısı üzerinde, büyük işler yaratmaya çalışan bir projeye dönüştü. Wordpress’i her yerde kullanabileceğimiz bir CMS’e çevirdiler.
WordPress gereksiz mottolarla pazarlandığı için bu günlerine geldi. Örneğin SEO işleri ile uğraşanların, WordPress’in her yerde SEO destekli veya uyumlu(?) olduğunu, pazarlamaları gibi. Veya kod yazmayı bilmeyen insanların, hızlıca site yapmalarına sağlaması gibi.
Ne İçin Kullanılır?
WordPress bana göre, kişisel blog yazılamanın dışında, kurumsal müşterinize, dostunuza, akrabanıza, basit sayfalar yapmak için, hazır tema alıp “bas geç” modunda hızlıca işinizi halletmek için gayet ideal bir platform olması gerekirken, şu an geldiği nokta içler acısı bir halde.
Neden Yavaş veya İlkel?
Ben temel olarak Wordpress’in gerçekten kötü ve dağınık bir kod yapısına sahip olduğunu düşünüyorum. “Dağınık kod” kulağa korkunç gibi geliyor ama , normal kullanıcı için bu ne anlam ifade ediyor? Ya da normal kullanıcıların kullanması için tasarlanan yapıyı kullanan insanlar, bunun ne olduğu ile ilgileniyor mu?
Elbette, hayır. Neden böyle konuştuğumun sebepleri ise şunlar:
- Optimize edilmiş bir WordPress sistemi ile, hiç Optimize edilmemiş WordPress arasında dağlar kadar fark var. Ve bu Optimize etme işlemini normal kullanıcı yapamaz. Yine tecrübeli bir yazılımcıya ihtiyaç var? Ben hızlıca işimi görsün diye kullandığım ürünü, optimize etmek için neden vakit kaybedeyim ki? Wordpress bu yüzden benim için pahalıdır.
- WordPress yapımcıları, Spaghetti kod yazarlar. Temaların büyük çoğunluğu Spaghetti kodlardan oluşmaktadır. Themeforest gibi marketlerde satılan eklenti ve temalar kod ve özellik çöplüğünden ibaret. O kodları herkes kendi kafasına göre yazıyor. Standardı yok.
- WordPress’in mimarisinde bir takım sıkıntılar var. xmlrpc, admin-ajax.php sistemi oldukça yavaşlatan veya saldırıya açık bırakan, 3.parti uygulamaların araya girmesiyle ne hale geleceği belli olmayan şeyler var.
Bu konular kullanıcının gerçekten umrunda değil. Siz istediğiniz kadar güzel kod yazın. Kullanıcı onu hiçbir zaman anlamayacak ve anlamasına gerek yok zaten. Ama sizin bir sürü özelliklerle donatılmış, tema panelleri gerçekten WordPress’i yavaşlatıyor. Ve ben bunu optimize etmek zorunda değilim. WordPress ile hızlı, kolay ve güvenli bir şekilde kurulabiliyor. Ama sonrası tamamen bir işkence. Ne olduğu belli olmayan temalar, eklentiler vs. diye gidiyor.
Bunların elbette çözümü var ve bende o çözümleri çok iyi biliyorum. Fakat Wordpress’i kurup bir daha yüzüne bakmamak için kullanıyorum. 1 günlük mesaimi harcayıp, onlarca eklenti ve ayar ile uğraşmak istemiyorum. Yani en basitinden flood kontrolü, login url’lerini değiştirme, admin url değiştirme gibi özellikler direkt WordPress’in kendisine eklenebilir. Bunun için eklenti kurmak veya kod yazmakla uğraşmak istemiyorum.
Fanboylardan Gelecek Yorumlar:
- WordPress gayet güvenli bir sistemdir. Siz bilmediğiniz eklentileri ve temaları kurarsanız hacklenirsiniz.
- Cache eklentiler var.
- Ben bilmediğim kodu siteme koymuyorum. Benim kendi Wp Framework’üm var. 100 TL’ye satıyoruz. wordpressTrCcC-filmizle.com adresinden ulaşabilirsiniz.
Ben zaten vakit harcamamak için WordPress kullanıyorum. Eğer bu işe mesai harcayacak olsam zaten kendi sistemimi yazarım. Olması gereken bu değil.
Problemler Nasıl Çözülür
- Öncelikle temanızı Themeforest üzerinden satın aldıysanız ve çok ağır bir şekilde çalışıyorsa(bazen sitenize ulaşamamaktan bahsediyorum) temanızı değiştirin. Veya, 50$ verip satın aldığınız tema için, Türkiye’den bir developer bulup para verip, temanızı optimize ettirin. Temanın kullanmayacağınız %80’lik fonksiyonlarını ve gereksiz özelliklerini sildirin.
- Uzman seçerken dikkatli olun. Resimleri sıkıştırmak, CSS dosyalarını birleştiren eklentiler ile bu CPU sorunlarının üzerinden kalkamazsınız. Çünkü Cache Eklentileri genelde bunu yapıyor.
- Shared Hosting kullanıyorsanız, fiziksel işlemciye ve hafızaya sahip bir sunucuya geçin.
- Şöyle bir stack var: https://github.com/nicolargo/varnish-nginx-wordpress
- Ben bu yapının bir benzerini kullanarak bu sorunları atlattım. Fakat tam atlattığım da söylenemez. Kullanılan tema üzerinde henüz optimize işlemi yapmadım. Pek yapasım da yok. En iyisi WordPress gibi ne olduğu belli olmayan çözümlere hiç bulaşmamak.