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.
- Bir tane not defteri sayfası açın. (bildiğimiz notepad)
- Farklı kaydet diyelim.
- Tüm dosyalar seçeneğini seçelim.
- 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?
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.
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..
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
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.