javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

46
JavaScript Web Uygulamaları ile Arama Motorlarının Arasındaki Husumeti Gidermek Osman Yüksel Chief Technology Janissary @ sonsuzdöngü

Upload: osman-yuksel

Post on 05-Jul-2015

1.068 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

JavaScript Web Uygulamaları ile Arama Motorlarının Arasındaki Husumeti Gidermek

Osman YükselChief Technology Janissary @ sonsuzdöngü

Page 2: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Günümüz Web Uygulamaları

● AJAX

Page 3: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Günümüz Web Uygulamaları

● AJAX

● HTML5 (API'lar)

Page 4: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Günümüz Web Uygulamaları

● AJAX

● HTML5 (API'lar)

● Single Page Web Applications

Page 5: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Günümüz Web Uygulamaları

● AJAX

● HTML5 (API'lar)

● Single Page Web Applications

● Push State / History

Page 6: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Günümüz Web Uygulamaları

● AJAX

● HTML5 (API'lar)

● Single Page Web Applications

● Push State / History

● Stateful web

Page 7: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Günümüz Web Uygulamaları

ccc JavaScript ccc

Page 8: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Günümüz Arama Motorları ve Optimizasyon Teknikleri

● Hala yeterince akıllı degil

Page 9: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Günümüz Arama Motorları ve Optimizasyon Teknikleri

● Hala yeterince akıllı degil

● Hala “onun anlayabilecegi” içerik sunmak zorundayız

Page 10: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Günümüz Arama Motorları ve Optimizasyon Teknikleri

● Hala yeterince akıllı degil

● Hala “onun anlayabilecegi” içerik sunmak zorundayız

● SEO: Metinler girip sytle=”color:white” yapmaktan çok da ilerde degil

Page 11: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Günümüz Arama Motorları ve Optimizasyon Teknikleri

● Hala yeterince akıllı degil

● Hala “onun anlayabilecegi” içerik sunmak zorundayız

● SEO: Metinler girip sytle=”color:white” yapmaktan çok da ilerde degil

● Hala DOM okuyamıyor (Facebook ve Disqus yorumları hariç)

Page 12: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Günümüz Arama Motorları ve Optimizasyon Teknikleri

● Hala yeterince akıllı degil

● Hala “onun anlayabilecegi” içerik sunmak zorundayız

● SEO: Metinler girip sytle=”color:white” yapmaktan çok da ilerde degil

● Hala DOM okuyamıyor (Facebook ve Disqus yorumları hariç)

● Markup üretmek zorundayız

Page 13: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

DOM vs Markup

● Sayfada gördügünüz her şey bir DOM nesnesi

Page 14: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

DOM vs Markup

● Sayfada gördügünüz her şey bir DOM nesnesi

● Markup DOM→

Page 15: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

DOM vs Markup

● Sayfada gördügünüz her şey bir DOM nesnesi

● Markup DOM→

● Sayfada bir seyler görmek için markup yazmak zorunda miyiz?

Page 16: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

DOM vs Markup

Page 17: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Sorun ne?

● Çok fazla tekrar eden “nesne”

Page 18: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Sorun ne?

● Çok fazla tekrar eden “nesne”

● Çok fazla tekrar eden “markup”

Page 19: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Sorun ne?

● Çok fazla tekrar eden “nesne”

● Çok fazla tekrar eden “markup”

● Çok fazla byte transferi

Page 20: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Sorun ne?

● Çok fazla tekrar eden “nesne”

● Çok fazla tekrar eden “markup”

● Çok fazla byte transferi

● Yavas yüklenen sayfalar

Page 21: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Çözüm ne?

ccc JavaScript ccc

Page 22: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Gerçekten çözüm mü?

Bazi insanlar, bir problemle karsilastiginda “Regular Expressions biliyorum, ben bunu çözebilirim” diye düsünür. Artık iki problemleri var.

Jamie Zawinski

Page 23: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Gerçekten çözüm mü?

Bazi insanlar, bir problemle karsilastiginda “Regular Expressions biliyorum, ben bunu çözebilirim” diye düsünür. Artık iki problemleri var.

Jamie Zawinski

Bazi insanlar, bir problemle karsilastiginda “JavaScript biliyorum, benbunu çözebilirim” diye düsünür. Artık iki problemleri var.

Arama Motorlari

Page 24: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Sayfaya bakalım

http://test.kavuq.com/tr/#!/foo/bar

Page 25: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Sorun ne?

● Arama motoru hala 'bizim gördüğümüz içerigi göremiyor'

Page 26: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Çözüm

● Google, 2009'da bir “proposal” ortaya atti A proposal for making AJAX crawlable http://bit.ly/google-ajax-crawling-proposal

Page 27: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Çözüm

● Google, 2009'da bir “proposal” ortaya atti A proposal for making AJAX crawlable http://bit.ly/google-ajax-crawling-proposal

● “Sen her şeyini DOM'da hazırlayabilirsin, ama bana bir şekilde bunun markup'ını sun”

Page 28: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Çözüm

● Google, 2009'da bir “proposal” ortaya atti A proposal for making AJAX crawlable http://bit.ly/google-ajax-crawling-proposal

● “Sen her şeyini DOM'da hazırlayabilirsin, ama bana bir şekilde bunun markup'ını sun”

● “Markup'ını sunarken de hashbang kullan, ben hashbang gordüğüm her sayfaya _escaped_fragment_=HASHBANGDEN_SONRASI şeklinde gider senin markup'ını okurum”

Page 29: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Çözüm

● Google, 2009'da bir “proposal” ortaya atti A proposal for making AJAX crawlable http://bit.ly/google-ajax-crawling-proposal

● “Sen her şeyini DOM'da hazırlayabilirsin, ama bana bir şekilde bunun markup'ını sun”

● “Markup'ını sunarken de hashbang kullan, ben hashbang gordüğüm her sayfaya _escaped_fragment_=HASHBANGDEN_SONRASI şeklinde gider senin markup'ını okurum”

● “Ya da bunu <meta> ile belirt“

Page 30: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Çözüm

● Google, 2009'da bir “proposal” ortaya atti A proposal for making AJAX crawlable http://bit.ly/google-ajax-crawling-proposal

● “Sen her şeyini DOM'da hazırlayabilirsin, ama bana bir şekilde bunun markup'ını sun”

● “Markup'ını sunarken de hashbang kullan, ben hashbang gordüğüm her sayfaya _escaped_fragment_=HASHBANGDEN_SONRASI şeklinde gider senin markup'ını okurum”

● “Ya da bunu <meta> ile belirt“

● “O zaman ben seni indekslerim”

Page 31: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Kimler destekliyor?

Page 32: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Kimler destekliyor?

Page 33: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Kimler destekliyor?

Page 34: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Kimler destekliyor?

Page 35: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

çerigi sunmakİ

● Bir şekilde markup'ı arama motoruna sunmak gerekiyor

Page 36: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

çerigi sunmakİ

● Bir şekilde markup'ı arama motoruna sunmak gerekiyor

● İçerigin bir de “markup”lı halini oluşturmak

Page 37: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

çerigi sunmakİ

● Bir şekilde markup'ı arama motoruna sunmak gerekiyor

●vİçerigin bir de “markup”lı halini oluşturmak

● :if GET['_escaped_fragment_'] markup icerik sun :else JavaScript'le sun

Page 38: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

çerigi sunmak – HTML Snapshotİ

● Tarayıcıda oluşan DOM'u markup'a çevir, öyle sun

Page 39: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Selenium - Webdriver

Page 40: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

PhantomJS

Page 41: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Kavuq

Page 42: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Diger Araçlar

● HTMLUnit

● Crawljax

Page 43: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Ba arı öyküleriş

● http://turkcellmuzik.turkcell.com.tr

● http://www.playstore.com/

● http://www.thebullittagency.com

Page 44: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Kaynaklar

● http://bit.ly/yunus-yurtturk-ajax-crawling

● https://developers.google.com/webmasters/ajax-crawling/

Page 45: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Sorular?

Page 46: Javascript web uygulamalari ile arama motorlarinin arasindaki husumeti gidermek

Teşekkürler

● github.com/yuxel● twitter.com/yuxel● yuxel.net