| AJAX Kodlu Siteleri Arama Motoru Optimizasyonu (SEO) Dostu Yapmak

5
79

Günümüzde doğrudan Web 2.0 teknolojisiyle ağırlıkla bloglarda AJAX dili de yer alamaya başladı. AJAX Kodlu Siteleri Arama Motoru Optimizasyonu (SEO) Dostu YapmakFlash yapılarında olduğu gibi arama motoru optimizasyonu, AJAX’ın tam düşmanı olarak gösterilmekte. Ancak bu soruna çare bulacak bazı anahtar çözümler var.

Bir web 2.0 tasarımcısı/yazılımcısına sorduğunuz da AJAX, çabuk iş yapabilmek ve etkili tasarım interaktif çalışmalar için biçilmiş kaftan. Ancak iş arama motoru optimizasyonu kısmına gelince durumlar biraz değişiyor. Öncelikle AJAX yapısında çalışan site sahipleri arama motoru kısmında hangi tür sorunlarla karşılaşıyor bunlara bir bakalım.

AJAX Nedir?

Asenkron JavaScript ve XML terimi ilk kez 2005 yılında “Jesse James Garrett” tarafından kullanılmıştır.

Ajax web uygulamaları yaratmak amaçlı kullanılan web geliştirme tekniğidir. Düşük kapasitedeki verilerin etkili bir interaktif görünümü sağlamasında kullanılır.

Ana tema web sayfalarının daha etkili, kolay kullanılabilir ve kullanıcı tabanlı olabilmesini sağlamaktır. En önemlisi ise hamleler sırasında sayfanın tekrar yüklenmesi gerekmemektedir. Sadece bu özellik bile sayfanın hızı, özellikleri ve kullanılabilirliliğini doğrudan etkilemektedir.

Ancak tüm olumlu yanları olmasına rağmen arama motoru optimizasyonu kısmında bazı problemlerle karşılaşılmaktadır.

Problem 1: AJAX’lı Dinamik İçeriklerde SEO Sorunları

Arama motorları web site kayıtlarında örümcekler ya da botlar kullanırlar. Örümcekler gerek internet üzerinden gerekse internet dışından kullanılan programlar sayesinde tespit edilir. Site içinde ne kadar bağlantı bulunuyorsa hepsini bulur. URL bağlantıların hepsi kayıt altına alınır ve listelenir. Böyle bir yapıda arama motorları sadece yüklenmiş içerikleri arama motor listelerine ekler.

Ancak AJAX ile oluşturulan içerikler içinde yer alan URL’ler arama motorları tarafından listelenmez. O sayfalar robotlar tarafından yüklense bile URL’ler listelerde görünmez.

Bakın alan adı aramada hızlı sonuç almam nedeni ile sıkça kullandığım sitelerden biri http://instantdomainsearch.com/ adresidir. Bu site tam bir AJAX yapısı üstündedir. Bir alan adı aradığınızda kelimeyi yazarken sonuçlar otomatik geldiğinden bu sonuçlar arama motorlarına kayıt olmazlar.

Problem 2: AJAX’ın Arama Motorlarına Eklemede Örümcek Sorunu

Arama motorları örümceklerle site içinde yer alan tüm bağlantıları kontrol ederler ve kayıt gereksinimi olanları kaydederler. Bu sırada örümcekler bakılan bağlantılar arasında AJAX web sayfasına bağlantı görürlerse bu bağlantıları hiç kontrol etmeden geçerler. Bu sebepten daha en baştan kayıt edilme şansı ortadan kalkar.

Öncelikle AJAX yapısında her içerik için ayrı bir sayfa tanımı olmadığında farklı URL’lerde olmaz, bu yüzden de ayrı kayıtlar da söz konusu olamaz.

Normal bir sayfada yani AJAX yapısı olmayan bir sayfada bağlantı şu şekilde olur;

<a href=”dizin/sayfa.html”>tıklanacak içerik</a>

AJAX tabanlı güclendirilmiş sitelerde ise bağlantı şu şekillerde görülebilir;

<a href=”javascript: functioname(content-parameter);”> tıklanacak içerik</a>

<a href=”#content-parameter”> tıklanacak içerik </a>

<a href=”javascript: void();” onclick=” functioname(content-parameter);”> tıklanacak içerik </a>

<a href=” #” onclick=” functioname(content-parameter);”> tıklanacak içerik </a>

Href bağlantı değeri sabit bir web sayfasına yönlenmediğinde, arama motoru o anda dinamik içeriğinde görünen içeriklerde gezinir ancak adresi kaydetse bile ertesi gün başka içerik görüldüğünden içerik – adres uyuşmazlığı nedenli ile eklenti gerçekleşmez.

Örneğin http://www.agilegallery.com/ajax-demo.html bu yazdıklarımı etkili şekildegösterebileceğim bir site. Bu site AJAX tabanlı resim sitesi. Resimler, devamlı farklı isimde kayıt edilse bile, hep aynı sayfa üzerinden çağrıldığından ve sadece bir URL üzerinden gösterildiğinden, bağlantı yapısı Href değeri olarak sadece belirli JavaScript kodunu barındırmakta.

Problem 3: Tüm İçeriğin Tek Bir Sayfada Yer Alamsı Anahtar Kelime Odaklanmasını Azaltıyor

Dinamik içeriğin sunucu tarafından kodlama dili ile yada XML dosyası üzerinden yüklemektense bazı kullanıcılar içerikleri göstericem diye kullandıkları JavaScriptler yayınlanacak içeriklerinde yok olmasına sebep oluyor. Bunu yaparak aslında problem olarak gösterilen “Problem 1 – Problem 2”’ye çözüm bulunuyor. Ancak burada sadece bir içerik yönlendirmesinin güncellenmesi sağlanabiliyor. Yani yönlendirme de farklı bağlantılar işin içine girecekse bu yöntemle tüm site içine odaklanmak mümkün olmuyor. Genelde bu yöntemi kullananlarda çözüm bulmuş gibi sevinse de aslında sitesini optimizasyona daha çok kapatmış oluyor.

Problem 4: Arama Motorları Örümcekleri JavaScript Kodlarını Okuyamıyor

AJAX yazılımınızı nasıl yazdığınıza ya da yazdırdığınıza bağlı olarak içerik JavaScript ile yazılmış ya da yazılmamış olabilir. Ancak ideal ve doğru olanı JavaScript’in dinamik içerik yapısına göre oluşturulmasıdır. Eğer mümkünse web sayfa içeriği ve bağlantıları düz HTML içinde text olarak da geçilebilir. Bu şekilde arama motorunun okumadığı JavaScriptli sayfalar okunabilir hale gelebilir.

AJAX’lı Problemlere Arama Motoru Optimizasyon Çözümleri

Çözüm 1: Alternatif İçerik Sunumu

Her sayfa yüklendiğinde yön kodları AJAX ile yazılmışsa ve kodların altında JavaScript ile işleyiş sürüyorsa iyi bir çözüm olarak sayfanın alternatif bir yönlendirmesi yapılabilir.

Örneğin, Sayfa Altlığı (footer) kullanılarak bu alternatif bağlantıların verilmesi bir çözümdür.

Unutmayın! Bu alternatif bağlantılar mutlaka kendi – asıl URL’lesine götürürken sayfa içinde AJAX’ta açıldığında görünen tüm içerikler ve bağlantıları bulunmalıdır.

Bu yolla AJAX yapısında içerikleriniz dinamik olarak çalışırken yönlendirme kısmında yer alan HTML sayfalarınızda arama motorları örümcekleriniz için doğru indeksleme sayfaları haline gelecektir. Kişiler sayfaları gezerken yine AXAJ üzerinden gezecek arama motorları html sayfaları indexliyecektir. Bu zahmetli ancak doğru bir çözümdür.

Çözüm 2: Hijax Yönteminin Kullanımı ve AJAX

HIJAX yöntemi ilk olarak Jeremy Keith olarak vurgulandı ve önemi belirtilmeye başlandı.

Peki HIJAX nedir?

Sayfaların geleneksel yapıda yaratılması, verinin sunucuya bağlantı yolu ve onayla iletilmesi ve sunucudan güncellenmiş halde dönmesi, JavaScript’lerin geri dönen bağlantı bilgilerine ulaşması ve bilgileri sunucu yerine XMLHttpTalep yapısına göndermesi, Bu sayede sunucunun sayfa geri dönüşü yerine sadece sayfa hakkında bilginin iletmesidir.

Bu sayede AJAX yapısı tam anlamıyla çalışır Arama motorları da aynı ve benzer yöntemlerle çalışır. İşte bu yöntemleri gösteren JavaScript örnekleri;

JavaScript Sahte-protokolü – SEO için gerçekten berbat olduğunu söyleyebilirim!
<a href=”javascript:window.open(‘help.html’)”> tıklanacak içerik </a>

Anlamsız Bağlantı – SEO için kötü olduğunu söyleyebilirim!
<a href=”#” onclick=”window.open(‘help.html’); return false;”> tıklanacak içerik </a>

Dokümantal Nesne Modelleme Kullanılması – SEO için biraz daha iyi olduğunu söyleyebilirim!
<a href=”help.html” onclick=”window.open(this.getAttribute(‘href’)); return false;”> tıklanacak içerik </a>

JavaScript Hiç bulunmaması – SEO için en iyisidir!
<a href=”help.html” class=”help”> tıklanacak içerik </a>

Konu hakkında ayrıca bakmanız gereken bir site…

http://www.ajaxoptimize.com/

5 Yorumlar

  1. Ben hala bu olayı çözemedim. Şimdi benim istediğim bir anasayfam var ve hakkımızda iletişim vs. gibi sayfaların hepsi bu sayfa içine ajax ile çağırılıyor. Ama doğal olarak içerlerinde sadece hakkımızda ve iletişim içerikleri var. Diyelim ki ben link olayını bir şekilde çözdüm ve google sitemi http://www.x.com/hakkimizda.asp gibi indeksledi. Ama hakkimizda.asp içinde sadece içerik var oysaki anasayfada header var footer var. Bu durumda ne olacak. Bunu nasıl çözebilirim. Sonra tabi ileri geri butonları sorunu var. Bence ajax full site için hiç bir zaman kullanılmamalı ama şu anda benden böyle bir talep var ne yapmalıyım ? 🙁

  2. Selam,

    Ajax Yazılımı full site adresi kullanırken linklerde sabit adres vererek yönlendirme yaparsan arama motorları devamlı değişim olduğundan http://www.x.com/hakkimizda.asp gibi bir adresi tanımaz. Bu iş için en iyi çözümlerden biri hiç şüphesiz Dokümantal Nesne Modellemedir. Eğer C yada C++ yada benzeri yazılım dillerini bilirsen burada nesne tabanlı yazılım kullanılır. Sabit bir adres yerine o adresin yönlendiği nesneler ana referastır. Adres hangi nesne (kod) ile birleştirilirse örümcek o nesne üzerinden sayfayı tanır.

    Örnek;

    a href=”help.html” onclick=”window.open(this.getAttribute(’href’)); return false;”> tıklanacak içerik

    gibi.

    Aytaç M

  3. “Eğer C yada C++ yada benzeri yazılım dillerini bilirsen…”
    C++ çok eskiden beri biliyorum ama alakayı tam çözemedim. Sonuç olarak yıllardır javascript de dahil, herhangi bir dilde yazılım üretirken oop kullanıyorum. Ama mesela sizin window.open ne alaka bu yeni bir sayfa açar. Tama href i google indeksler direk ama AJAX bu şekilde nasıl çalışacak onu pek anlayamadım.

  4. merhaba,

    http://www.tvreklam.org gibi bir video paylasim sitesi tasarliyorum. videolarin yorumlar bölümünde php + mysql ile yorumlari sayfaladim. ancak yorumlarin cok uzayacagi durumlar icin ajax ile sayfala yöntemini secmek istiyorum. Cünkü ajax ile sayfalama yapmadigimda video sayfasindaki yorumlar listesinin diger sayfalarina gecmek isteyen kisi sayfayi komple yeniden yüklemek zorunda kalacak.

    Bunu asmak icin ajax tabanli yorum sayfalama sistemi kodluyorum. bu sefer karsima yorumlarimin Google bot tarafindan okunamayacagi gercegi cikti. Takdir edersiniz ki yorumlarin Google tarafindan okunabilir olmasi ve arama sonuclarinda listelenmesi cok önemli.

    Sizce bu sorunu nasil asabilirim? Izlesene.com sitesindeki yorumlar bölümünü inceledim. yorum sayfalama ajax tabanli ve sayfa komple yenilenmeden diger sayfalar gösteriliyor. Cok dikkatimi cekti. Sayfa kaynagina bakinca da yorumlar gözüküyor. Nasil yaptiklarini inceliyorum ama tam fikir sahibi olamadim.

    Cok uzun bir yazi oldu. Fikir ve önerilerinizi bekliyorum.

  5. bilmediğiniz çok fazla şey var 🙂
    google ajax içeriklerini okuyabiliyor. tek yapılması gereken #! hashını kullanmaktan geçiyor. google yardım sayfalarındada bu konu için bilgi bulmak mümkün. grooveshark.com ve facebook.com bu yapıyı hali hazırda kullanmaktalar. iyi çalışmalar

CEVAP VER