SEO(Search Engine Optimization) yani arama motoru iyileştirmesi son yıllarda internet dünyasında tanınmak ve para kazanmak isteyen çoğu kişinin ağzından düşürmediği bir kavram. Arama motorlarında üst sıralara çıkmak, adsense reklamlarından iyi gelirler elde etmek başlı başına bir sektör haline bile geldi! Hatta sırf bu işten ayda 1.000$’ın üzerinde gelir elde eden tanıdıklarım bile var(İmreniyorum sizlere arkadaşlar). Geçtiğimiz haftalarda Ineta Next Hit’teki ASP.NET 4.0 sunumuma hazırlanırken sayfa yönlendirme ile ilgili ASP.NET uygulamalarına has güzel bir ipucu keşfettim. Aslında Response.Redirect() metodunun tarayıcılara(web browser) HTTP 302 durum kodunu gönderdiğini ASP.NET’le ilk tanıştığım zamanlarda bile biliyordum, ama bu metotla beraber tarayıcıya nasıl HTTP 301 durum kodu göndeririz ve arama motorları tarafından nasıl daha fazla seviliriz, işte bu idi yeni keşfettiğim nokta:)
Response.Redirect programatik olarak sayfa yönlendirme işlemleri yapmamızı sağlıyor bildiğiniz gibi, ancak ilginç bir ayrıntısı da var, o an talepte bulunan istemciye HTTP 302(yani Temporary Redirect) bilgisini gönderiyor. Tabi ki bu mesajı gören arama motoru boot’ları da; “demek ki bu sayfaya geçici olarak geldim, yakında bu sayfayı belki de bulamayacağım, önemsiz bir sayfa, gerilere at!” der. Halbuki işin aslı bu kalıcı bir sayfa ve arama motorlarının da bunu böyle bilmesi gerekir. Eğer gönderilen cevabın içeriğine HTTP 301(Moved Permanently) bilgisini ekletebilirsek süper olacak. Aşağıda bu işi nasıl yapabileceğimizi görebilirsiniz. Tabi ki Response.Redirect() kullanmadan;
Response.StatusCode = 301;
Response.StatusDescription = "Moved Permanently";
Response.AddHeader("Location", "Default2.aspx");
Yukarıdaki üç satırı beğenmeyen varsa güzel bir haber vereyim; ASP.NET 4.0 ile gelecek olan Response.RedirectPermanent() metodu bu üç satırın işini görecek. Yani bu metot yönlendirmeyi yaparak istemciye HTTP 301 durum kodu gönderecek. Küçük ama hoş bir yenilik olacağa benziyor.
merhaba,
sadece Response.Status = "301 Moved Permanently" şeklinde kullansak, dediğiniz kodlarla aynı işi yapar mı ?
Bu da işe yarar bence, sonuçta Response’un Status bilgisine bilgiyi eklemiş oluyorsunuz. Ama test etmeden de %100 işe yarar demem doğru olmaz
Teşekkürler.
Ben tam olarak yararını anlamadım? Tam olarak ne işe yarayacak bu?
Arama motorları geçici olarak yönlendirilen bir sayfayı sıralamada arka sıralara atarlar. Amaç yönlendirilen sayfaya geçici olarak gidildiği değil, kalıcı olarak gidildiğini söylemektir. Kod parçasından önceki paragrafı tekrar okursanız anlaşılır olur bence. "Response.Redirect programatik olarak sayfa yönlendirme işlemleri yapmamızı sağlıyor bildiğiniz gibi, ancak ilginç bir ayrıntısı da var…" ile başlayan paragraf.
güzel bir ipucu olmuş.. peki bunun ardından bir metod kullanmaya gerek kalmıyor mu? yani bu 3 satır tek başına başka bir sayfaya yönlenmeyi sağlayacak mı?
Evet yeterli olacak, test edip görebilirsiniz.
Valla o kadar yerde kulandım ama googlea bu kadar etki ettiğini bilmiyordum teşekkürler.
@mucahid1986
Arama motorlarına çok etkisi var demek doğru olmayabilir. Ama ufakta olsa işe yarar bir ipucu.
Yararlı bir bilgi teşekkür ederim
public void git(string adres)
{
Response.StatusCode = 301;
Response.StatusDescription = "Moved Permanently";
Response.AddHeader("Location", adres);
}
şeklinde metot olarak kullanabiliriz ASP.NET 4.0 bekleyemeyecek olanlar:)
Asp için ararken çıktı karşıma. neyse ben yine benim gibi arayanlar olur diye ASP versiyonunu ekleyeyim.
Response.Status="301 Moved Permanently"
Response.AddHeader "Location", "GondereceginizSiteAdresi"
ben php tabanlı bir siteyi asp.net e çevirmeye çalışıyorum da sitenin indexlenen eski sayfasının adresini yeni url ye nasıl yönlendirebilirim??
http://www.umutluoglu.com/post/2008/02/12/webconfig-Dosyasindan-URL-Rewriting.aspx adresindeki yazı işinizi görebilir. Ancak *.php uzantıları için IIS’de handler tanımlamak gerekebilir. Handler’ı aspnet_isapi.dll’in ele alması gerekir.
hocam peki bu sistemi her sayfa için nasıl ayarlayacağız.Eski sitemiz php idi ben asp.net ile yeni site yaptım şimdi domaini kendi yaptığım asp.net sitenin hostuna yönlendireceğim fakat link yapısı değişecek bu durumda.Ben gogılda değeri yüksek olan eski link url mi yeni urlye kalıcı olarak 301 yönlendirmesi ile taşımak istiyorum sitemde de tek bir default sayfası var bütün içerik buraya çağrılıyor.Şimdi böyle bir sistemde 10-15 linki nasıl yeni url ye yönlendirebilirim?
Bir tabloda eskiurl-yeniurl bilgileri tutulabilir. Sonra yazılacak handler’ın içerisinde gelen request’in url’si okunarak php uzantısından önceki kısım alınır. Tabloda bu url’ye karşılık gelen yeni url bilgisine yönlendirme yapılır. Bu işe yarar sanırsam
hocam yukarıda yazdığınız gibi Response.StatusCode = 301;
Response.StatusDescription = "Moved Permanently";
Response.AddHeader("Location", "Default2.aspx");
sistemiyle daha basit bir yoldan halledemezmiyiz bir de eski url yapısında .php uzantısı yok zaten direk …com/urun-adi şeklinde
Eğer ASP.NET 4.0 kullanıyorsan yazının son paragrafında zaten daha kolay yolunu söylemişim Ama 4.0 öncesi ise, daha kolay yolu var mı bilmiyorum.