2011-10-07 20 views
15

Javascript şablonlama ve Arama Motoru Optimizasyonu ile ilgili çok sayıda tartışmayı okudum. Yine de, soruya tatmin edici bir cevap bulamamışım (yetersiz belgelenmiş veya güncel olmayan).Handlebars.js ve SEO

Şu anda bir istemci tarafı şablon çözümü olarak handlebars.js arıyorum, çünkü yardımcı işlevler oluşturma olasılığını seviyorum. Peki arama motorları için endeksleme ne olacak? Bot, oluşturulan içeriği (amaçlandığı gibi) veya yalnızca çirkin javascript sözde değişkenleri olan kaynağı endeksliyor mu? Bu konuda çok fazla iş parçacığı olduğunu biliyorum ama hiç kimsenin cevabı tam olarak bilmediğini hissediyorum.

Google gibi motorlar bu şablonları düzgün bir şekilde dizine eklemezse, bunu neden herkese açık web siteleri için rahatsız eder?

Bu bağlamda başka bir soru: Sunucu tarafında Handlebar.js şablonlarını oluşturmak ve sonra bunları istemci tarafına sunmak mümkün mü? Tüm bu SEO tartışmalarından kaçınmak için açıkçası.

cevap

22

Dom çektirme istemcisi tarafında, çoğu web botu (ör. Google ve diğerleri), j'yi anında yorumlamaz ve yeni oluşturulmuş içeriği dizin oluşturma için ayrıştırmaz.

: - Yerine Google'a (ve artık Bing) 'Google AJAX tarama şemasını' desteklemek ( https://developers.google.com/webmasters/ajax-crawling/docs/getting-started) hangi temelde istediğiniz IF dom içeriği render js, sen gerekir (yani ajax çağrısı sonuçlarını render) dizine eklenmesi belirtiyor
  1. Tetik zaman uyumsuz hashbangs #! kullanarak url yoluyla render js (yani http://www.mysite.com/#!my-state) ve
  2. istek üzerine js modifikasyon SONRA sitenizin bir prerendered dom anlık hizmet edebilmek. Eğer web uygulaması endeksli istiyorsanız bu hizmeti sağlamak gerekecektir -

backbone.js veya Omurgası gibi bir istemci tarafı MVC framework kullanıyorsanız.

Genellikle bu web bot tarafından yapılan bir istek müdahale anlamına gelir (yukarıdaki linke açıklanmıştır) ve ardından oluşturulan teslim başsız tarayıcı (yani QT + capybara-webkit, HtmlUnit, vs.) kullanarak yan sunucu tarafı kazımak istek botuna geri dön.

Ben https://github.com/benkitzelman/google-ajax-crawler

de yakut (şimdi çekme isteklerini alarak) bunu yapmanın bir mücevher başladım Bunu, Kapibara-webkit (ve yakında phantomjs) bir için

+0

GÜNCELLEME: Mücevher RubyGems'de yayınlanmıştır ve middleware' gem google_ajax_crawler' komutları olarak herhangi bir Rack uygulaması tarafından kullanılabilir ve kullanım örnekleri, – Ben

+0

'un yukarısındaki Github bağlantısındadır. Eğer Backbone.js'yi kullanacaksanız, yönlendirici kullandığınızdan emin olun – unclejam

+0

JS uygulamanızı nasıl yapılandıracağınız büyük ölçüde önemsizdir. Omurga yönlendiricileri kullanabilirsiniz veya alternatif olarak, herhangi bir çerçeve kullanmadan domu manipüle edebilir - zor bir bit, sayfanın sayfanın başındaki tarayıcıya ulaştığını belirler, böylece doğru zamanda bir anlık görüntü alırsınız. Çoğu snapshotting çerçevesi, sayfanıza bir çeşit sinyalleme eklemektedir, sayfa yükleme/oluşturma işlemini tamamladığınızda, onu aramanız fikridir. – Ben

1

Handlebar.js hakkında bilmiyorum, ancak benim anlayış için SEO JAVASCRIPT içinde CONTENT ile ilgili bir sorun var. İçeriğinizin Arama Motoru'nu görebildiğinden emin olun (bazı testler için bir spyder simülatörü kullanın). Spyder tuzaklarından kaçının genellikle gidilecek yol olacaktır. Umarım size yardımcı olabilir.

-2

Bot, oluşturulan içeriği (amaçlandığı gibi) veya yalnızca çirkin javascript sözde değişkenleriyle birlikte kaynağı indeksliyor mu?

Ne endeksleyici robotlar JavaScript'i çalıştırmaz ve HTML belgeleri olarak şablonlar sunmazsınız.

JavaScript olmadan çalışan bir site oluşturun, ardından build on top of it.

+0

Ben jquery gibi tarayıcıda DOM'da değişiklik JS ile daha iyi çalışmasını kabul ediyorum. Yani, her ikisinin de en iyisine sahip olabilirsiniz ... JS ve semantik html içeriğinden büyük etki. – GibboK

+2

"Googlebot'un javascript'i çalıştırabileceği ve Ajax çağrıları tarafından oluşturulan içeriği ayrıştırabileceği yönünde kanıtlar artmaktadır" http://en.wikipedia.org/wiki/Googlebot –

+0

HTML5, dokümanlardan uygulamalara geçiş yapana kadar bu geçerliydi. – Lodewijk

1

Arama motorları JavaScript'i çalıştırmaz, dolayısıyla içeriğinizin dizine eklenmesini istiyorsanız, şablonlarınızı sunucuda da oluşturmanız gerekir. Sayfa isteği bir örümcekden geldiğinde şablonunuzu oluşturmak için Düğüm (sunucu tarafı JS) içindeki gidonları kullanabilirsiniz. Daha fazla iş ama mümkün. Github, google plus ve twitter hepsi benzer bir şey yapıyor.

-1

Distal templates'u kullanarak şablonları HTML için HTML'nin bir parçası olarak kullanabilirsiniz.

İlgili konular