Makale Özeti

Bu yazımda bir süre önce yaşadığım bir problemi ve çözümünü sizler ile paylaşmak istemekteyim. Söz konusu problem, ASP.Net MVC ile hazırlanan Web uygulamasının SEO çalışması sırasında yaşanmıştır.

Makale

ASP.Net MVC  de Routes to Ignore

ASP.Net MVC Framework,  ASP.Net uygulamalarına büyük kolaylıklar sağlamaktadır. ASP.Net MVC ‘un uygulamalarımıza katığı en büyük özellik(Bence) Routing’ dir. Routing ile sayfalarımız url adresini sayfa içeriği ile ciddi anlamda ilişkili hale getirebiliyoruz. ASP.Net MVC de Routing, Controller içerisinde bulunan ActionResult tipinde değer döndüren fonksiyonlar üzerinde çalışmaktadır. Bu fonksiyonlar erişim belirteci olarak public  ve restfull olarak ise GET ya da POST gibi istemlere sahiptir. Routing konusun bu kadar önemli ve detaylı incelenmesi gereken bir konudur.

Bu yazımda ise birkaç hafta önce yaşadığım bir problemi ve çözümünü sizler ile paylaşmak istemekteyim. Söz konusu problem, ASP.Net MVC ile hazırlanan Web uygulamasının SEO ile ilgili işlemlerini gerçekleştirme aşamasında meydana gelmişti.

Yaşanan problem, ASP.Net MVC ile geliştirmiş olduğum Web uygulamasının, aramam motorlarının site içi indekslemesi için robot dosya ve site haritasının aramam motorlarına tanıtma aşamasında keşfettim. Yazının giriş bölümünde de bahsettiğim gibi ASP.Net MVC Routing sistemi Controller nesneleri içerisinde bulunan ActionResult döndüren fonksiyonların çağırması sonucunda içerikleri oluşturmaktadır. Örneğin Bing ya da google üzerine yaptığımız Robots dosya tanımı yaptığımızda, varsayılan Routing sisteminde hangi Controller nesnesi seçilmiş ise o nesne içerisinde buna bağlı olarak içerik üreten bir fonksiyon aramaktadır.

Örnek vermek gerekir ise arama çubuğuna http://www.ibrahimatay.org/robots.txt yazdığınızda Routing sisteminde varsayılan olarak tanımlanan Controller içerisinde robots fonksiyonun arayacaktır. Yapılan istem ile ilgili bir fonksiyon bulunmaması nedeni ile “Not Found 404” hatasını verecektir.

Description: D:\IBRAHIM\Documents\My Articles\ASP.Net MVC\ASP.Net MVC  de Routes to Ignore\not-

found-404-error.PNG

Yaşana bu durum, hazırlanan içerik yönetim sisteminin, arama motorları içerisinde istenildiği gibi yer bulmaması ve taşıdığı ürünü açısında, istenmeyen durumlar ortaya çıkmasına sebep olabilir. Her zaman olduğu gibi probleme çözümü üretmeliyiz.

Söz konusu durum sistem içerisinde bulunana robot dosya gibi static olarak istemlere cevap everecek dosyaları Routing sistemine tanıtmak olacaktır. Şimdi bu işlemi nasıl yapabileceğimizi inceleyelim. Bu için yeni bir ASP.Net MVC projesi oluşturalım.

Description: D:\IBRAHIM\Documents\My Articles\ASP.Net MVC\ASP.Net MVC  de Routes to Ignore

\robots-file-seo.PNG

Gerçekleştireceğimiz uygulamanın test etmek için örnek olarak sizde bir robot dosya hazırlayıp uygulamanın(Robot oluşturma ile ilgili olarak ise, Robot dosya nedir? Ne işe yarar? İsimi makalemi okumanız tavsiye ederim.) ana dizine ekleyelim.  Söz konusu durum ile ilgili hazırlıkları tamamladık. Şimdi test amacı ile eklediğimizi robots.txt dosyasını ASP.Net MVC Routing sistemi nasıl tanımladığımızı inceleyelim.

 public static void RegisterRoutes(RouteCollection routes)
 {
    routes.IgnoreRoute("{resource}.axd/ {*pathInfo}");
 
    routes.MapRoute(
           "Default",
           "{controller}/{action}/{id}",
           new { controller = "Home", action = "Index", id = UrlParameter.Optional });
 
     routes.IgnoreRoute("robots.txt");
  }

 

Yukarındaki kod parçasında, ASP.Net MVC standart oluşturulan bir ASP.Net MVC projesi de yer alan Global.asax içerisinde bulunan RegisterRoutes fonksiyonu yer almaktadır. RegisterRouting fonksiyonu içerisine routes değişkeni üzerinde gelen IgnoreRoute fonksiyonun kullanarak Web uygulamasının ana dizinde bulunan robots.txt dosyasının Controller nesnesinin içinde arasında çıkarıp dışarıdan erişebilinen bir dosya olduğunu tanımlamış olduk.  Tanımlama işlemini gerçekleştirdikten sonra uygulamayı test edelim.

Description: D:\IBRAHIM\Documents\My Articles\ASP.Net MVC\ASP.Net MVC  de Routes to Ignore

\robots-file.PNG 

Bu yazımda uygulama geliştirme ve host etme aşamasında gözden kaçabilecek olan bir problemi çözümü üretmeye çalışmış olduk. Bu ve bunun gibi yaşanacak olan hataları önüne geçmek için bir IIS extension olan SEO Toolkit ve Url Rewrite araçları ile testler yapmanızı önermekteyim. Konu ile ilgili sorularınızı info@ibrahimatay.org eposta adresine yönetebilirsiniz.

İyi çalışmalar

IBRAHIM ATAY

Not: Makalemizde gerçekleştirmiş olduğumuz örneği bağlantıdaki yazıdan edinebilirsiniz.