SEO ve Apache Üzerine

Türkçe’ye de SEO -Search Engine Optimization- olarak geçen Arama Motoru Optimizasyonu üstüne yazılmış bir çok doküman bulabilirsiniz. Ben nedir, nasıl yapılır … şeklinde sayfalarca yazı yazmaktan ziyade bir kaç servis sağlayıcının nelere dikkat ettiğini uygulamalı olarak göstermeye çalışacağım.

Benim SEO’yla ilgilenmemim sebebi sitemin üst sıralarda görüntülenmesinden ziyade standartlara uygun, hızlı bir kullanıcı deneyimi sunma istediğimden dolayıdır.

Öncelikle gördüğüm bütün SEO siteleri temelde iki tane araç takımını referans alıyor:

  • Google’ın PageSpeed aracı,
  • Yahoo!’nun performans takımı tarafından oluşturulan kuralları referans alan YSlow aracı

GTmetrix

https://gtmetrix.com/ adresinden erişebilirsiniz.

Temelde yukarıdaki söylediğim iki araç takımını kullanarak sitenize bir skor veriyor. Elbette bununla kalmayıp, sitenin ne kadar sürede yüklendiği, toplam boyutunun ne kadar olduğu gibi veriler üstünden bir dizi çıkarımda bulunup bunu oluşan skora ekliyor.

Skorları neye göre veriyor?

Örnek üzerinden gitmek daha açıklayacı olabilir.

Siz kendi sitenizi analiz ettirebilirsiniz. Örnek olması açısında ben fatihkilic.net üzerinden anlatmaya çalışayım.

Google’ın Apache için -Nginx’de destekleniyor- geliştirmiş olduğu Pagespeed adında bir modülü var. Bu modülü aktif etmeden önceki skorlarım şu şekildeydi:

PageSpeed Score YSlow Score
(99%) (91%)


Bütün rapora buradan erişebilirsiniz.

Pagespeed modülünü aktifleştirdikten sonraki skorlar ise şu durumda gerçekleşti:

PageSpeed Score YSlow Score
(99%) (96%)


Yine raporun tamamına erişmek isterseniz buradan bakabilirsiniz.

Ne oldu da YSlow skoru %5 artış gösterdi?

Yukarıdaki iki raporu açıp incelediğinizde, Minify CSS , Minify JavaScript ve Avoid a character set in the meta tag sekmesi altındaki farklılığı fark edeceksiniz.

Minification nedir? Diyenleri şöyle alalım.

Pagespeed modülü sadece bu işe mi yarıyor? Başka ne iş yapar?

İmajları ölçeklendirme, html’in içindeki yorum satırlarını kaldırma, cachelemeyi daha performanslı hale getirmek … gibi pek çok şey yaptığı yazıyor.

Nasıl Kurulur?
  • Debian tabanlı dağıtımlar için kurulumu

Apache’nin daha önceden kurulduğunu ve 32 bitlik mimari kullandığınızı varsayarsak:

$ cd /tmp; wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_i386.deb
$ sudo dpkg -i mod-pagespeed-stable_current_i386.deb

Komutlarıyla kurulumu gerçekleştirebilirsiniz.

Kurulumu kaldırmak için: $ sudo apt-get remove mod-pagespeed-stable komutunu kullanabilirsiniz.

  • RPM tabanlı dağıtımlar için

Apache’nin daha önceden kurulduğunu ve 64 bitlik mimari kullandığınızı varsayarsak:

$ cd /tmp; wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-stable_current_x86_64.rpm
$ sudo yum install mod-pagespeed-stable_current_x86_64.rpm

Kaldırmak için: $ sudo yum remove mod-pagespeed-stable komutu yeterli olacaktır.

Diğer mimariler ve işlemler hakkında bilgi almak için: https://modpagespeed.com/doc/download

Konfigürasyonu nasıl yapılır?

Debian tabanlı dağıtımlarda genelde gördüğüm apache’nin path’i /etc/apache2 altında, RPM tabanlı dağıtımlarda ise /etc/httpd şeklinde.

Paketi kurduğunuzda ön tanımlı olarak apache sizin için pagespeed modülünü aktif hale getirdi.

Normalde apache modüllerini aktif hale getirmek için kullandığımız komut a2enmod komutudur.

$ a2enmod pagespeed
Module pagespeed already enabled

Ön tanımlı konumlandırıldığı yer yine farklılık gösterebilir. Debian tabanlı apache2 paketlerinde bu genellikle ...../mods-available/ klasörü altında konumlandırılır.

Zaten a2enmod komutu da ...../mods-available/ klasörü altında yüklü bulunan *.conf dosyalarını ...../mods-enabled/ klasörü altına sembolik link ile bağlar.

Pagespeed modülünün konfigürasyonuna:
/etc/apache2/mods-enabled/pagespeed.conf dosyasından ulaşabilirsiniz.

Çok daha fazla detaya giremeyeceğim, apache’nin modül konfigürasyonu hakkında daha fazla detaya buradan ulaşabilirsin.

Pagespeed modülü için de daha fazla detaya buradan erişebilirsin.

Google

Eskiden insights adında bir aracı vardı: https://developers.google.com/speed/pagespeed/insights/

Ancak şu an onu desteklemiyorlar:

“PageSpeed Insights has moved the User Experience test for mobile pages into the Mobile Friendly Test”


Düzeltme: Insights’ın sitesine tekrar girdiğimde yukarıdaki açıklamayı göremedim. Ancak en yakın zaman aralığındaki arşiv kaydından bu açıklamıyı görebilirsiniz: https://web.archive.org/web/20170317095251/http://developers.google.com/speed/pagespeed/insights/

Ek olarak destek kelimesini yanlış kullanmışım, kendi geliştirdikleri diğer araçlara yönlendiriyorlar demek istemiştim.


Onun yerine şöyle bir hizmet açmışlar: https://search.google.com/search-console/mobile-friendly ağırlıklı olarak mobil görünüme önem veriyorlar gibi duruyor.

İkinci bir araç olarak: https://testmysite.withgoogle.com/intl/tr-tr/ altında mobil görünüm ve hızı referans alan rapor sunuyorlar.

Tavsiyeler

  • Cachelemeyi aktif edin.

Sitenizin hızında fark edilir bir süre kazanımı olacaktır, aynı zamanda hem YSlow hem de PageSpeed puanınız da en az %5 artış olabilir.

Bunun için yine apache’nin expires modülünü kullanabilirsiniz.

Aktifleştirmek için: $ sudo a2enmod expires

Ardından .htaccess dosyasının erişilebilinirliğini test etmek iyi olabilir.

Bunun için bir sürü yöntem bulunabilir. Basitçe burada bulunan PHP dosyasını -tabii apache’nin php çalıştırabildiğini varsayıyorum- sunucunuza kopyalayıp kontrol edebilirsiniz.

Son bir adım olarak AllowOverride tagında değişiklik yapmalıyız. Bunun için nasıl bir apache yapısı oluşturulduğunuzu bilemediğimden varsayımsal olarak anlatacağım.

Ancak bu yapacağımız değişiklik güvenlik riski oluşturabilir. Bunun için dikkatli ve daha sağlıklı bir apache klasör yapısı oluşturmak için buraya bakmak faydalı olabilir: http://askubuntu.com/a/429931

/etc/apache2/apache2.conf dosyasında aşağıdaki gibi bir değişiklik yapabilirsiniz:

<Directory {path}>
        ...
        AllowOverride All
        ...
</Directory>

...lar başka konfigürasyonlar olduğunu düşünerek yazdım. Onları yazarsanız apache’yi ayağa kaldıramazsınız. {path} dediğim yere hangi klasör altından hizmet verecek şekilde bir yapı oluşturduysanız onu yazmalısınız. /var/www/html genelde ön tanımlı gelen şeklidir.

.htaccess dosyanıza aşağıdaki konfigürasyonu yazdığınızda hızda bir miktar daha artış olduğunu gözlemleyeceksiniz.

ExpiresActive On
ExpiresDefault "access plus 1 week"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"

Son olarak apache’yi yeniden başlatmalıyız.

$ sudo service apache2 restart

Hoşça kalın.

comments powered by Disqus