htaccess Nedir? .htaccess SEO Teknikleri

htaccess Nedir?

.htaccess, belirli bir dosya dizininin içeriğine internetten veya bir intranetten kimlerin erişebileceğini veya erişemediğini belirtmek için kullanılan bir dosyanın adıdır. Birçok kaynakta ayar dosyası olarak geçen htaccess, özellikle SEO uyumlu URL oluşturma, yönlendirme ve değiştirme konusunda çok değerli bir dosyadır.

htaccess dosyası, çok uzun zamandır anlatmak istediğim ama nedense bir türlü vakit bulup anlatamadığım bir konu. Bugün seosozluk üzerinden yazıştığım bir okurumuzun sorusu üzerine artık bu konuyu ertelememeye ve detaylıca anlatmaya karar verdim. Umarım bu yazıdan sonra htaccess dosyasının SEO açısından ne kadar önemli olduğunu herkes öğrenmiş olur.

htaccess dosyası, arama motoru optimizasyonu konusunun Süperman’idir. Yani doğru oluşturulmuş bir htaccess dosyası ile rakiplerinizi hiç çaktırmadan sollayabilirsiniz 🙂 Peki htaccess dosyası nedir, htaccess dosyası ne işe yarar? Anlatayım…

htaccess Dosyası

htaccess dosyasını, websitenize gelen kullanıcılara yönlendirmeler yapabileceğiniz bir dosya gibi düşünebilirsiniz. Birçok kaynakta ayar dosyası olarak geçen htaccess, özellikle SEO uyumlu URL oluşturma/yönlendirme/değiştirme konusunda çok değerli bir dosyadır. (Dosyanın tanımını yapmak çok da basit değil dolayısıyla birazdan vereceğim örneklerle konunun kafanızda netleşeceğinden hiç şüphem yok)

htaccess dosyası nasıl oluşturulur?

Aşağıdaki adımları izleyerek ilk htaccess dosyanızı oluşturabilirsiniz.

  1. Bir tane not defteri sayfası açın. (bildiğimiz notepad)
  2. Farklı kaydet diyelim.
  3. Tüm dosyalar seçeneğini seçelim.
  4. Dosyanın adını htaccess yazıp kaydedin.

İşte bu kadar!

Sizin için bir tane .htaccess oluşturdum. Dosyayı bilgisayarınıza indirmek için tıklayabilirsiniz. zip dosyasından çıkarmayı unutmayın.

Evet şu an elimizde boş bir htaccess dosyası var. Peki şimdi sırada ne var?

Önemli! Birazdan anlatacaklarımı yapmadan önce mutlaka sitenizin yedeklemesini alın. 

htaccess ve SEO

Hemen htaccess dosyasının kullanımını ve konunun SEO ile ilgili ne alakasının olduğunu anlatıyorum…

1 – 301 Yönlendirmeleri

301 yönlendirmeleri, kalıcı URL yönlendirmeleridir ve hem kullanıcıları hem de arama motoru botlarını değiştirdiğiniz sayfalara yönlendirmenize yarar. Dolayısıyla arama motorları hem eski hem de yeni sayfalarınızı aynı anda taramak zorunda kalmaz dolayısıyla yinelenmiş içerik problemini çözmüş olursunuz.

Yapmanız gerekenler:

  • Aşağıdaki kodu htaccess dosyasına ekliyoruz.

Options +FollowSymLinks
RewriteEngine on
Redirect 301  /dosya1.html   http://www.orneksite.com/dosya2.html

Bu örnekte ve birazdan vereceğim tüm örneklerde, orneksite.com’u kendi site adresinizle değiştirmenizi, dosya isimlerini de olması gerektiği isimlerle değiştirmenizi rica edeceğim.

2 – Dinamik URL – Statik URL Yönlendirmesi

SEO uyumlu URL konusunun birinci kuralı, URL in okunabilir olması. Yani bir web sayfasının adresini gördüğünüzde, eğer o sayfanın ne ile alakalı olduğunu anlayabiliyorsanız, SEO uyumlu URL sınavının ilk sorusunu çözdünüz demektir. 🙂

Örnek:

SEO uyumlu olmayan bir URL: http://www.orneksite.com/urun.php?keyval=48&keyval2=72

SEO uyumlu URL: http://www.orneksite.com/erkek-espadril.php

Şimdi yukarıdaki dinamik URL i, statik ve SEO uyumlu URL e yönlendirelim.

Options +FollowSymLinks
RewriteEngine on

RewriteCond   % {QUERY_STRING}   ^keyval\=48\&Keyval2\=72$ [nc]RewriteRule   ^urun.php$ http://www.ornek.com/erkek-espadril.php? [r=301, l]

3 – Aynı Anasayfayı Açan URL Problemleri

Websitenize ait anasayfayı sadece tek bir URL açmalıdır aksi taktirde websiteniz yinelenen içerik problemi ile tekrar karşı karşıya gelecektir.

Bu problemlerin en çok yaşandığı iki örneği açıklayalım.

index.php dosyasının yönlendirilmesi

websitenizin hem ornek.com hem de ornek.com/index.php dosyalarının aktif olmaması gerekir. Yapmanız gerekenler:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{THE_REQUEST} ^.*\/index\.phpl?
RewriteRule ^(.*)index\.php?$ http://www.ornek.com/$1 [R=301,L]

www subdomain yönlendirmesi

yukarıdaki örneğe benzer olarak, websiteniz hem www.ornek.com hem de ornek.com u açmamalıdır. Aşağıdaki örnek ornek.com’u www.ornek.com’a nasıl yönlendirebileceğinizi anlatmaktadır.

Options +FollowSymLinks
RewriteEngine on
rewritecond  %{http_host}  ^ornek.com [nc]rewriterule  ^(.*)$  http://www.ornek.com/$1 [r=301,nc]

4 – 404 sayfaları

404 not found, kullanıcıların sildiğiniz bir sayfaya ulaşmaya çalıştıklarında karşılaştıkları sayfadır. 404 sayfasının doğru oluşturulması ve htaccess dosyasına doğru tanıtılması gerekir. Aksi taktirde bu sayfalar yönlendirme sayfalarına dönüşür, SEO açısından websiteniz zarar görmüş olur.

Yapmanız gerekenler

  • 404 sayfası oluşturmanız (ornek404.php),
  • Oluşturduğunuz 404 sayfasını dizine atmanız,
  • Aşağıdaki kodu htaccess dosyasına eklemenizdir.

Options +FollowSymLinks
RewriteEngine on
ErrorDocument  404  http://www.ornek.com/ornek404.php

5 – IP veya Spam Engellemek

Websitenize gün içerisinde birçok spam trafik gelmektedir. Bu trafik direkt veya referral kanallardan geliyor olabilir. Google Analytics ile spam filtreleme yapabilirsiniz ancak unutmayın ki bu işlem sadece sitenize gelen trafiği görmemenizi yani filtrelemenizi sağlar. Bu zararlı trafiğin sitenize gelmesini engellemez.

Spam trafik, websiteniz üzerinde gereksiz bir yük oluşturmakta hatta websitemizin açılış hızını bile düşürmektedir. Dolayısıyla bu trafiği sitemize sokmamamız gerekir.

IP engellemek için:

Options +FollowSymLinks
RewriteEngine on
Order  Deny, Allow
Deny from  61.16.153.67

Referral engellemek için ise,

RewriteCond %{HTTP_REFERER} semalt.com [NC,OR]
RewriteCond %{HTTP_REFERER} kolpabirsite.com [NC,OR]
RewriteRule .* – [F]

satırlarını ilgili htaccess dosyasına eklemeniz yeterli olacaktır. Siz engellemek istediğiniz IP adreslerini ve spam siteleri yukarıdaki örneklere göre tekrar düzenlersiniz.

6 – Hotlink Problemi

Websitenize eklediğiniz bir görsel, websitenizin band genişliğini yani veri aktarım limitinizi azaltmaktır. Aslında ortalama bir hosting paketi satın aldığınızda bu durum sizin için pek de bir problem yaratmaz. Ancak eğer Google galerisine veya internette farklı platformlara eklenen görselleriniz başkaları tarafından da kullanılırsa, bu durumda veri aktarım limitinizi azaltacaktır. Belki bir süre sonra site açılış hızınız yavaşlayacak, bu durumda SEO skorunuzu düşürecektir. (Görseliniz link ile beraber kullanıldığı taktirde bu durum yaşanacaktır…)

Yapmanız gereken;

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?orneksite\.com/ [NC]RewriteCond %{HTTP_REFERER} !^$
RewriteRule .*\.(jpg|jpeg|gif|bmp|png|swf)$ – [F]

.htaccess dosyası ile anlatacaklarım şimdilik bu kadar. Umarım yazının başında dediğim gibi bu konu ile ilgili aklınızda en ufak bir soru işareti kalmamıştır. Son olarak bu işlemleri yapmadan önce sitenizin yedeklemesini almanızı tekrar hatırlatmak istiyorum. Benden demesi 🙂

Bir Makale Daha?

Http’den Https’e Geçiş: Http’den Https’ye Nasıl Geçilir

Hakkında Emre Tonguç

SeoSozluk.com'un kurucularından Emre, işletmelere SEO, AdWords, PPC ve E-Ticaret konularında danışmanlık hizmeti vermektedir. İçinde arama motoru geçen her konu onun için tam bir tutkudur.

8 comments

  1. Mert

    Merhaba,

    Bu kodların ne iş yaptığını tam olarak anlamadığım için eklemeye korktum. sitem wordpress üzerinde ve W3 Total Cache eklentisini kullanıyorum. örneğin htaccess içinde w3 total cache’in 404 sayfalarıyla ilgili bir kodu var ama ne iş yaptığını bilmiyorum. bu işleri wordpresste eklenti ile halledebiliyor muyuz? kodları eklersek bir çakışma olur mu?

    • merhaba WordPress kullanıyorsunuz zaten birçok özellik sizin için otomatik yapılıyor. Yani birkaç düzenleme tabi ki yapabiliyorsunuz ama eğer bu konularda pek de tecrübeli değilseniz, pek de kurcalamaya gerek yok diyelim.

      İsterseniz spam filtrelemeyi yapabilirsiniz ancak yapmadan önce mutlaka sitenizin yedeklemesini alın.

  2. cihan

    Merhaba,
    ben de wordpress kullanıyorum, ve anasayfamı açan birden fazla url olduğunu gördüm;

    ornek[.]com
    www[.]ornek[.]com
    http[:]//ornek[.]com
    ornek[.]com/index[.]php

    2 sorum var

    1- Benim sorunum için 1 numaralı maddede belirttiğiniz kodu yazmamız gerekiyor mu yoksa direk 3 nolu maddede belirttiğiniz kodları yazmam yeterli mi?

    2- Google bu konuda şöyle birşey yazmış;
    ”Tercih edilen alan adınızı bize bildirdikten sonra, bu bilgiyi sitenizin bundan sonraki tüm taramalarında kullanırız ve dizine ekleme işlemi yenilenir. Örneğin, tercih edilen alan adınızı www[.]example.com olarak belirtirseniz ve sitenize ilişkin example[.]com olarak biçimlendirilmiş bir bağlantı bulursak, bu bağlantıyı www[.]example[.]com olarak izleriz.

    Yani ben google’a tercih ettiğim Url’yi bildirdikten sonra sayfanın ne şekilde açıldığı önemli olmuyor mu, google diğer tüm Url’leri tercih ettiğim Url’ye mi yönlendiriyor, eğer öyleyse bu kodları girmeye gerek yok mu dur yoksa ben birşey mi atlıyorum?

    Çünkü google aynı yazıda şunu da belirtmiş;
    ”Sitenizin dizine eklenmediğini söyleyen bir ileti görürseniz, siteniz başka bir alan adı altında dizine eklenmiş olabilir. Örneğin, example.com adresinin dizine eklenmediğini söyleyen bir ileti alırsanız, www[.]example[.]com adresini de hesabınıza eklediğinizden (veya tam tersi) emin olun ve söz konusu sitenin verilerini kontrol edin.”

    Yani biz bu kodları girerek google’ın tercihimizi atlayıp farklı bir Url ile sayfamızı kaydetmesinin önünemi geçiyoruz. Sorunun cevabı içinde ama emin olmam gerek 🙂

    • merhabalar, ilk sorunuz için 3. maddeyi takip etmeniz yeterli olacaktır. (.htaccess dosyasının yedeğini mutlaka alın)

      İkinci sorunuzun cevabını da gerçekten siz vermişsiniz. Google’ın bazen problem olmaz dediği dediği birçok konu aslında karşımıza problem olarak çıkabiliyor. Karar sizin tabi ki..

      • cihan

        Emre bey yanıt için teşekkürler, peki htaccess dosyasına bu kodu girmeden önce
        # BEGIN WordPress kodtan sonrada # END WordPress yazmam gerekiyormu? Bu tür konularda pek bilgim yok kusura bakmayın

        • merhaba, tercihinize kalmış…dosyayı açtığınızda dosyanın daha rahat anlaşılabilmesi için kullanılıyor. Komut özelliği bulunmuyor

  3. bahadır

    Merhaba

    htaccess olarak bilgim yok ama htaccess ile şunu yapmak istiyorum.

    siteadi.com olarak url ye yazında karşına farklı site cıksın
    ama arama moturundan siteye giriş yaptıgında gercek site acılsın
    ve içinde dolaşabilsin
    googlebot da siteyi gezebilsin

    böyle birşeye ihtiyacım var yardımcı olurmusunuz

    • merhaba…böyle bir çalışmayı kolaylıkla htaccess üzerinden yapabilirsiniz ancak arama motorlarının bu anlaması an meselesi olacaktır ve büyük ihtmalle Google indeksten hemen atılırsınız. Eğer hala bu çalışmayı yapmak istiyorsanız Google’da “cloaking” diye kısa bir araştırma yapın, zaten nasıl yapılacağı karşınıza çıkacaktır. Seosozluk olarak black hat seo çalışmalarını desteklememekteyiz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir