Submit Search
Upload
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
•
4 likes
•
3,374 views
Yuki Minakawa
Follow
2016/01/16に開催されたWDF研修「半歩先のSEOで効率よく結果を出そう」で発表させて頂いたLTです。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 111
Download now
Download to read offline
Recommended
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -
Hayato Mizuno
The master plan ofscaling a web application
The master plan ofscaling a web application
Yusuke Wada
Async Enhancement
Async Enhancement
kamiyam .
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門
Kohei Kadowaki
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
Nishida Kansuke
はじめよう Backbone.js
はじめよう Backbone.js
Hiroki Toyokawa
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会
Yuki Okada
Web workers¶llel.js html5勉強会lt大会
Web workers¶llel.js html5勉強会lt大会
Yuta Shimakawa
Recommended
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -
Hayato Mizuno
The master plan ofscaling a web application
The master plan ofscaling a web application
Yusuke Wada
Async Enhancement
Async Enhancement
kamiyam .
いまさら聞けない!?Backbone.js 超入門
いまさら聞けない!?Backbone.js 超入門
Kohei Kadowaki
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
Nishida Kansuke
はじめよう Backbone.js
はじめよう Backbone.js
Hiroki Toyokawa
【Camphor ×サイボウズ】selenium勉強会
【Camphor ×サイボウズ】selenium勉強会
Yuki Okada
Web workers¶llel.js html5勉強会lt大会
Web workers¶llel.js html5勉強会lt大会
Yuta Shimakawa
Haikara
Haikara
jewel12
One Time Binding & Digest Loop
One Time Binding & Digest Loop
Kon Yuichi
React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門
spring_raining
仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016
Takayuki Shimizukawa
chat bot framework for Java8
chat bot framework for Java8
masahitojp
HTML5 開発環境の紹介
HTML5 開発環境の紹介
tomo_masakura
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
Yusuke Wada
AngularJSでの非同期処理の話
AngularJSでの非同期処理の話
Yosuke Onoue
React Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
エンジニア勉強会 エスキュービズム
asm.jsとWebAssemblyって実際なんなの?
asm.jsとWebAssemblyって実際なんなの?
Yosuke Onoue
HTML5 & The Web Platform
HTML5 & The Web Platform
Masataka Yakura
Backbonejs @BuildInsiderOffline #1
Backbonejs @BuildInsiderOffline #1
daisuke shimizu
Angular js or_backbonejs
Angular js or_backbonejs
Omasa Yusaku
閉じタグを超えた先に僕が見た景色とは
閉じタグを超えた先に僕が見た景色とは
Muyuu Fujita
Web Platform -- Moving Forward!
Web Platform -- Moving Forward!
Masataka Yakura
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
ria1201
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
tomo_masakura
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Y Watanabe
Web制作勉強会 #2
Web制作勉強会 #2
Moto Yan
オフラインファーストの思想と実践
オフラインファーストの思想と実践
Shumpei Shiraishi
ModelとViewに分ける設計 - #JSオジサン
ModelとViewに分ける設計 - #JSオジサン
Ginpei Takanashi
"今" 使えるJavaScriptのトレンド
"今" 使えるJavaScriptのトレンド
Hayato Mizuno
More Related Content
What's hot
Haikara
Haikara
jewel12
One Time Binding & Digest Loop
One Time Binding & Digest Loop
Kon Yuichi
React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門
spring_raining
仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016
Takayuki Shimizukawa
chat bot framework for Java8
chat bot framework for Java8
masahitojp
HTML5 開発環境の紹介
HTML5 開発環境の紹介
tomo_masakura
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
Yusuke Wada
AngularJSでの非同期処理の話
AngularJSでの非同期処理の話
Yosuke Onoue
React Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
エンジニア勉強会 エスキュービズム
asm.jsとWebAssemblyって実際なんなの?
asm.jsとWebAssemblyって実際なんなの?
Yosuke Onoue
HTML5 & The Web Platform
HTML5 & The Web Platform
Masataka Yakura
Backbonejs @BuildInsiderOffline #1
Backbonejs @BuildInsiderOffline #1
daisuke shimizu
Angular js or_backbonejs
Angular js or_backbonejs
Omasa Yusaku
閉じタグを超えた先に僕が見た景色とは
閉じタグを超えた先に僕が見た景色とは
Muyuu Fujita
Web Platform -- Moving Forward!
Web Platform -- Moving Forward!
Masataka Yakura
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
ria1201
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
tomo_masakura
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Y Watanabe
Web制作勉強会 #2
Web制作勉強会 #2
Moto Yan
オフラインファーストの思想と実践
オフラインファーストの思想と実践
Shumpei Shiraishi
What's hot
(20)
Haikara
Haikara
One Time Binding & Digest Loop
One Time Binding & Digest Loop
React.jsでクライアントサイドなWebアプリ入門
React.jsでクライアントサイドなWebアプリ入門
仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016
仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016
chat bot framework for Java8
chat bot framework for Java8
HTML5 開発環境の紹介
HTML5 開発環境の紹介
Mojoliciousでつくる! Webアプリ入門
Mojoliciousでつくる! Webアプリ入門
AngularJSでの非同期処理の話
AngularJSでの非同期処理の話
React Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリング
asm.jsとWebAssemblyって実際なんなの?
asm.jsとWebAssemblyって実際なんなの?
HTML5 & The Web Platform
HTML5 & The Web Platform
Backbonejs @BuildInsiderOffline #1
Backbonejs @BuildInsiderOffline #1
Angular js or_backbonejs
Angular js or_backbonejs
閉じタグを超えた先に僕が見た景色とは
閉じタグを超えた先に僕が見た景色とは
Web Platform -- Moving Forward!
Web Platform -- Moving Forward!
EC-CUBEプラグイン講義
EC-CUBEプラグイン講義
今流行りのウェブアプリ開発環境Yeoman
今流行りのウェブアプリ開発環境Yeoman
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
Web制作勉強会 #2
Web制作勉強会 #2
オフラインファーストの思想と実践
オフラインファーストの思想と実践
Viewers also liked
ModelとViewに分ける設計 - #JSオジサン
ModelとViewに分ける設計 - #JSオジサン
Ginpei Takanashi
"今" 使えるJavaScriptのトレンド
"今" 使えるJavaScriptのトレンド
Hayato Mizuno
Vue.jsコンポーネントのススメ
Vue.jsコンポーネントのススメ
takanori sugawara
5.6 以前の InnoDB Flushing
5.6 以前の InnoDB Flushing
Takanori Sejima
MySQL 5.7の罠があなたを狙っている
MySQL 5.7の罠があなたを狙っている
yoku0825
MVC 01
MVC 01
Satoshi Shoda
MVC 02
MVC 02
Satoshi Shoda
MVC 03
MVC 03
Satoshi Shoda
Xamarin.forms入門
Xamarin.forms入門
一希 大田
Viewers also liked
(9)
ModelとViewに分ける設計 - #JSオジサン
ModelとViewに分ける設計 - #JSオジサン
"今" 使えるJavaScriptのトレンド
"今" 使えるJavaScriptのトレンド
Vue.jsコンポーネントのススメ
Vue.jsコンポーネントのススメ
5.6 以前の InnoDB Flushing
5.6 以前の InnoDB Flushing
MySQL 5.7の罠があなたを狙っている
MySQL 5.7の罠があなたを狙っている
MVC 01
MVC 01
MVC 02
MVC 02
MVC 03
MVC 03
Xamarin.forms入門
Xamarin.forms入門
Similar to SEOとJava Script。 〜文書構造とチームと、時々、闇〜
jsライブラリで実装する効率的なWeb制作
jsライブラリで実装する効率的なWeb制作
西畑 一馬
WordBench Saitama vol.6
WordBench Saitama vol.6
masaaki komori
ブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSS
Takeharu Igari
BMXUG つきじ#4
BMXUG つきじ#4
K Kimura
2012年8月10日 勉強会
2012年8月10日 勉強会
Rin Yano
Webapp startup example_to_dolist
Webapp startup example_to_dolist
Shinichiro Kumeuchi
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
Yasuhito Yabe
YUI
YUI
Tatsuya Sasaki
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Shumpei Shiraishi
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
yoshikawa_t
20121112 jaws-ug sapporo8
20121112 jaws-ug sapporo8
Hirokazu Ouchi
第19回html5とか勉強会 pjax
第19回html5とか勉強会 pjax
Kensaku Komatsu
Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)
Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)
Masayuki Abe
Web frontend performance tuning
Web frontend performance tuning
ssuser3c214d
イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱
Fumio SAGAWA
Pjax1
Pjax1
Kindai University
ウェブから情報をあつめる
ウェブから情報をあつめる
Shuhei Iitsuka
CSS Design and Programming
CSS Design and Programming
Taku AMANO
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22
Yohei Sasaki
CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011
Shuyo Nakatani
Similar to SEOとJava Script。 〜文書構造とチームと、時々、闇〜
(20)
jsライブラリで実装する効率的なWeb制作
jsライブラリで実装する効率的なWeb制作
WordBench Saitama vol.6
WordBench Saitama vol.6
ブラウザにやさしいHTML/CSS
ブラウザにやさしいHTML/CSS
BMXUG つきじ#4
BMXUG つきじ#4
2012年8月10日 勉強会
2012年8月10日 勉強会
Webapp startup example_to_dolist
Webapp startup example_to_dolist
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
YUI
YUI
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
Webフロントエンド開発の最新トレンド - HTML5, モバイル, オフライン
jQuery Mobile 最新情報 & Tips
jQuery Mobile 最新情報 & Tips
20121112 jaws-ug sapporo8
20121112 jaws-ug sapporo8
第19回html5とか勉強会 pjax
第19回html5とか勉強会 pjax
Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)
Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)
Web frontend performance tuning
Web frontend performance tuning
イマドキのフロントエンドエンジニアの道具箱
イマドキのフロントエンドエンジニアの道具箱
Pjax1
Pjax1
ウェブから情報をあつめる
ウェブから情報をあつめる
CSS Design and Programming
CSS Design and Programming
Couch Db勉強会0623 by yssk22
Couch Db勉強会0623 by yssk22
CRF を使った Web 本文抽出 for WebDB Forum 2011
CRF を使った Web 本文抽出 for WebDB Forum 2011
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
1.
SEOとJavaScript。 ∼ 文書構造とチームと、時々、闇 ∼ 2016/01/16 WDF研修
「半歩先のSEOで効率よく結果を出そう」 DMM.com Labo Yuki Minakawa
2.
自己紹介 • 2015/09/01 ∼ DMM.com
Labo 加賀デザイン部に フロントエンドエンジニアとしてJoinしました • 業務では、HTML/CSS/JavaScript等の 実装や開発環境の準備・宴会部長まで 幅広くやらせて頂いてます :-) ミナカワ ユウキ HP : kglabo.com
3.
初LT
4.
よろしくお願いします!
5.
気になる
6.
先に結論
7.
極力、JS書かないようにしよう
8.
極力、JSを書かないようにしよう
9.
本日のアジェンダ • 検索エンジンに反映されるまで • 文書構造を意識する •
理想と現実
10.
検索エンジンに反映されるまで ※前置き
11.
検索エンジンに反映されるまで
12.
検索エンジンに反映されるまで 1. 検索エンジンがクローラーを使ってページの情報を集める
13.
検索エンジンに反映されるまで 1. 検索エンジンがクローラーを使ってページの情報を集める 検索エンジン Google /
Yahoo 等 クローラー GoogleBot 等
14.
検索エンジンに反映されるまで 1. 検索エンジンがクローラーを使ってページの情報を集める 情報あつめてきてー 検索エンジン Google /
Yahoo 等 クローラー GoogleBot 等
15.
検索エンジンに反映されるまで 情報あつめてきてー 検索エンジン Google / Yahoo
等 クローラー GoogleBot 等 わかりましたー 1. 検索エンジンがクローラーを使ってページの情報を集める
16.
検索エンジンに反映されるまで 情報あつめてきてー 検索エンジン Google / Yahoo
等 クローラー GoogleBot 等 1. 検索エンジンがクローラーを使ってページの情報を集める
17.
検索エンジンに反映されるまで 1. 検索エンジンがクローラーを使ってページの情報を集める 2. クローラーが集めた情報を検索エンジンがインデックスしていく いただきます! 検索エンジン Google
/ Yahoo 等 クローラー GoogleBot 等 もってきた!
18.
検索エンジンに反映されるまで 1. 検索エンジンがクローラーを使ってページの情報を集める 2. クローラーが集めた情報を検索エンジンがインデックスしていく きろくしよう 検索エンジン Google
/ Yahoo 等 データベース
19.
検索エンジンに反映されるまで 1. 検索エンジンがクローラーを使ってページの情報を集める 2. クローラーが集めた情報を検索エンジンがインデックスしていく きろく完了 検索エンジン Google
/ Yahoo 等 データベース
20.
検索エンジンに反映されるまで 1. 検索エンジンがクローラーを使ってページの情報を集める 2. クローラーが集めた情報を検索エンジンがインデックスしていく 検索エンジン Google
/ Yahoo 等 データベース 検索結果に表示 各種ブラウザ
21.
ここまで覚えればOK
22.
その中の、
23.
途中の出来事 クローラー GoogleBot 等 なになに・・・?
24.
途中の出来事 クローラー GoogleBot 等 ・・・・・・・。
25.
• クローラー 内容が理解できない問題 途中の出来事 クローラー GoogleBot 等 imgしか…無い…!
26.
• クローラー 内容が理解できない問題 途中の出来事 クローラー GoogleBot 等 imgしか…無い…!
27.
• クローラー 内容が理解できない問題 途中の出来事 クローラー GoogleBot 等 imgしか…無い…! 今回はコレの話
28.
文書構造を意識する
29.
文書構造を意識する • ユーザは表示されているページを見ている。 クローラー GoogleBot 等 見出しが無エ!
30.
文書構造を意識する • ユーザは表示されているページを見ている。 • クローラーはソースコードを見ている。 クローラー GoogleBot
等 テキスト無エ!
31.
文書構造を意識する • ユーザは表示されているページを見ている。 • クローラーはソースコードを見ている。 クローラー GoogleBot
等 altもそれほど入って無エ!
32.
文書構造を意識する • ユーザは表示されているページを見ている。 クローラー GoogleBot 等 imgしか…無い…!
33.
文書構造を意識している • クローラーはソースコードを見ている。 <h1 class="entryTitle">1/16開催
WDF研修「半歩先のSEOで効率よく結果を出そう」</h1> <p> WDFの2016年最初のセミナーは、SEOの第一人者でWDFに過去3回講演していただいている 住 太陽さんをお招きして、WDF研修「半歩先のSEOで効率よく結果を出そう」を開催します。 住さんからは、「直近のセミナーで話した内容すべてを詰め込んだ総集編」、 「内容の濃すぎるセミナー」というコメントをいただいています。 日々の運用のヒントが必ず見つかります。ぜひご参加ください。 </p> <h2>半歩先のSEOで効率よく結果を出そう</h2> <p> ウェブマスターの手間と時間は何よりも大切なもの。効果の薄い最適化施策や、 PVばかりで売上につながらないコンテンツ作りに、大切な手間と時間はかけられません。 確実に、しかも、効率よく結果を出すには、集中すべきところとそうでないところを 切り分ける必要があります。 </p>
34.
文書構造を意識している • クローラーはソースコードを見ている。 <h1 class="entryTitle">1/16開催
WDF研修「半歩先のSEOで効率よく結果を出そう」</h1> <p> WDFの2016年最初のセミナーは、SEOの第一人者でWDFに過去3回講演していただいている 住 太陽さんをお招きして、WDF研修「半歩先のSEOで効率よく結果を出そう」を開催します。 住さんからは、「直近のセミナーで話した内容すべてを詰め込んだ総集編」、 「内容の濃すぎるセミナー」というコメントをいただいています。 日々の運用のヒントが必ず見つかります。ぜひご参加ください。 </p> <h2>半歩先のSEOで効率よく結果を出そう</h2> <p> ウェブマスターの手間と時間は何よりも大切なもの。効果の薄い最適化施策や、 PVばかりで売上につながらないコンテンツ作りに、大切な手間と時間はかけられません。 確実に、しかも、効率よく結果を出すには、集中すべきところとそうでないところを 切り分ける必要があります。 </p> …ほう。大見出しは「1/16開催 WDF..
35.
文書構造を意識してない • クローラーはソースコードを見ている。 <b>1/16開催 WDF研修「半歩先のSEOで効率よく結果を出そう」</b><br> <br> WDFの2016年最初のセミナーは、SEOの第一人者でWDFに過去3回講演していただいている 住
太陽さんをお招きして、WDF研修「半歩先のSEOで効率よく結果を出そう」を開催します。 住さんからは、「直近のセミナーで話した内容すべてを詰め込んだ総集編」、 「内容の濃すぎるセミナー」というコメントをいただいています。 日々の運用のヒントが必ず見つかります。ぜひご参加ください。 <br> <br> <b>半歩先のSEOで効率よく結果を出そう</b><br> <br> ウェブマスターの手間と時間は何よりも大切なもの。効果の薄い最適化施策や、 PVばかりで売上につながらないコンテンツ作りに、大切な手間と時間はかけられません。 確実に、しかも、効率よく結果を出すには、集中すべきところとそうでないところを 切り分ける必要があります。
36.
文書構造を意識してない • クローラーはソースコードを見ている。 <b>1/16開催 WDF研修「半歩先のSEOで効率よく結果を出そう」</b><br> <br> WDFの2016年最初のセミナーは、SEOの第一人者でWDFに過去3回講演していただいている 住
太陽さんをお招きして、WDF研修「半歩先のSEOで効率よく結果を出そう」を開催します。 住さんからは、「直近のセミナーで話した内容すべてを詰め込んだ総集編」、 「内容の濃すぎるセミナー」というコメントをいただいています。 日々の運用のヒントが必ず見つかります。ぜひご参加ください。 <br> <br> <b>半歩先のSEOで効率よく結果を出そう</b><br> <br> ウェブマスターの手間と時間は何よりも大切なもの。効果の薄い最適化施策や、 PVばかりで売上につながらないコンテンツ作りに、大切な手間と時間はかけられません。 確実に、しかも、効率よく結果を出すには、集中すべきところとそうでないところを 切り分ける必要があります。 …どういう事だってばよ!?
37.
文書構造とは何だったのか • クローラーはソースコードを見ている。 <img src="/images/ttl_h1_01.png"
alt=""> <img src="/images/txt_01.png" alt=""> <img src="/images/ttl_h2_01.png" alt=""> <img src="/images/txt_02.png" alt=""> つらい
38.
お前は一体、 何を言っているんだ。 ※クローラーです
39.
この件については、 上に伝えさせてもらう。 ※クローラーです 機会損失
40.
美味しいソースをくれ! ※クローラーです 正しい文書構造、大事。
41.
クローラー GoogleBot 等 JS CSS クローラーは ソースコードを
みている これは一体。
42.
クローラーは どうしていいのか わからない! クローラー GoogleBot 等 JS
CSS ああ、噂のJSですよね
43.
クローラーの クローリング! MP が
たりない! クローラー GoogleBot 等 JS CSS まだ勉強中なんですよね
44.
?
45.
プログレッシブ・エンハンスメント
46.
47.
48.
49.
役割を分ける
50.
51.
JS(インタラクション)を削除しても、 内容が通じる
52.
53.
CSS(スタイル)を削除しても、 内容が通じる
54.
役割を分ける
55.
役割を分ける
56.
役割を分ける • HTMLは適切にマークアップ • 見栄えに関わるものはCSS •
インタラクションはJSで
57.
適切なマークアップ?
58.
適切なマークアップ • テキストがそのコンテンツを示すタグで囲まれている ・見出しは<h⃝>タグに、段落は<p>で囲まれている etc
59.
適切なマークアップ • テキストがそのコンテンツを示すタグで囲まれている ・見出しは<h⃝>タグに、段落は<p>で囲まれている etc •
HTML要素が正しく利用されている ・<h1>タグ等を文字サイズを大きくする為ではなく、 見出しとして適切に利用する etc
60.
適切なマークアップ • テキストがそのコンテンツを示すタグで囲まれている ・見出しは<h⃝>タグに、段落は<p>で囲まれている etc •
HTML要素が正しく利用されている ・<h1>タグ等を文字サイズを大きくする為ではなく、 見出しとして適切に利用する etc • テキストにスタイル属性を直接的に含まない ・<font>や<center>タグや<div style= > ・ちゃんとCSSに記載する
61.
極力、JS書かないようにしよう
62.
極力、JS書かないようにしよう
63.
非同期コンテンツについて • JavaScriptで動的に生成するコンテンツについては、 クローラーは完全に理解する事ができない。
64.
非同期コンテンツについて • JavaScriptで動的に生成するコンテンツについては、 クローラーは完全に理解する事ができない。
65.
非同期コンテンツについて • JavaScriptで動的に生成するコンテンツについては、 クローラーは完全に理解する事ができない。 • HTML
スナップショット?
66.
非同期コンテンツについて • JavaScriptで動的に生成するコンテンツについては、 クローラーは完全に理解する事ができない。 • HTML
スナップショット? ・工数が掛かる ・その前に構成的に問題ない?
67.
非同期コンテンツについて • JavaScriptで動的に生成するコンテンツについては、 クローラーは完全に理解する事ができない。 • JavaScriptを切っても情報を、 閲覧・ページ遷移できるように作る!
68.
何でもかんでもJSで処理しない
69.
何でもかんでもJSで処理しない JSONのデータをJSでHTMLに描画
70.
JSONのデータをJSでHTMLに描画 // HTML <body> <h1>艦隊一覧</h1> <ul> <li></li> <li></li> </ul> </body> 何でもかんでもJSで処理しない
71.
JSONのデータをJSでHTMLに描画 // JSON [ { "title": "叢雲", "genre":
"駆逐艦", "note": “我々の業界ではご褒美です", "url": “https://murakumo.com” }, { "title": "島風", "genre": "駆逐艦", "note": “めっちゃ早い", "url": “https://simakaze.com” }, ] // HTML <body> <h1>艦隊一覧</h1> <ul> <li></li> <li></li> </ul> </body> 何でもかんでもJSで処理しない
72.
JSONのデータをJSでHTMLに描画 // JS $.getJSON(“itemlist.json” ,function(data)
{ $(data).each(function){ $(“<h2><a href=“”+this.url+””>+this.title+”</a></h2>”) .appendTo(‘ul li’); } }); // HTML <body> <h1>艦隊一覧</h1> <ul> <li></li> <li></li> </ul> </body> // JSON [ { "title": "叢雲", "genre": "駆逐艦", "note": “我々の業界ではご褒美です", "url": “https://murakumo.com” }, { "title": "島風", "genre": "駆逐艦", "note": “めっちゃ早い", "url": “https://simakaze.com” }, ] 何でもかんでもJSで処理しない
73.
JSONのデータをJSでHTMLに描画 // JS $.getJSON(“itemlist.json” ,function(data)
{ $(data).each(function){ $(“<h2><a href=“”+this.url+””>+this.title+”</a></h2>”) .appendTo(‘ul li’); } }); // HTML <body> <h1>艦隊一覧</h1> <ul> <li><h2><a href=“https://murakumo.com”>叢雲</a></h2></li> <li><h2><a href=“https://simakaze.com”>島風</a></h2></li> </ul> </body> // JSON [ { "title": "叢雲", "genre": "駆逐艦", "note": “我々の業界ではご褒美です", "url": “https://murakumo.com” }, { "title": "島風", "genre": "駆逐艦", "note": “めっちゃ早い", "url": “https://simakaze.com” }, ] 何でもかんでもJSで処理しない
74.
JSONのデータをJSでHTMLに描画 // JSON [ { "title": "叢雲", "genre":
"駆逐艦", "note": “我々の業界ではご褒美です", "url": “https://murakumo.com” }, { "title": "島風", "genre": "駆逐艦", "note": “めっちゃ早い", "url": “https://simakaze.com” }, ] // JS $.getJSON(“itemlist.json” ,function(data) { $(data).each(function){ $(“<h2><a href=“”+this.url+””>+this.title+”</a></h2>”) .appendTo(‘ul li’); } }); // HTML <body> <h1>艦隊一覧</h1> <ul> <li><h2><a href=“https://murakumo.com”>叢雲</a></h2></li> <li><h2><a href=“https://simakaze.com”>島風</a></h2></li> </ul> </body> 何でもかんでもJSで処理しない • URLは動的に生成しない ※不完全なURLをクロールしてエラーを出す事がある為
75.
JSONのデータをJSでHTMLに描画 // JSON [ { "title": "叢雲", "genre":
"駆逐艦", "note": “我々の業界ではご褒美です", "url": “https://murakumo.com” }, { "title": "島風", "genre": "駆逐艦", "note": “めっちゃ早い", "url": “https://simakaze.com” }, ] // JS $.getJSON(“itemlist.json” ,function(data) { $(data).each(function){ $(“<h2><a href=“”+this.url+””>+this.title+”</a></h2>”) .appendTo(‘ul li’); } }); // HTML <body> <h1>艦隊一覧</h1> <ul> <li><h2><a href=“https://murakumo.com”>叢雲</a></h2></li> <li><h2><a href=“https://simakaze.com”>島風</a></h2></li> </ul> </body> 何でもかんでもJSで処理しない • URLは動的に生成しない ※不完全なURLをクロールしてエラーを出す事がある為 • HTML自体に <a href= hoge >で記載する
76.
JSONのデータをJSでHTMLに描画 // JSON [ { "title": "叢雲", "genre":
"駆逐艦", "note": “我々の業界ではご褒美です", "url": “https://murakumo.com” }, { "title": "島風", "genre": "駆逐艦", "note": “めっちゃ早い", "url": “https://simakaze.com” }, ] // JS $.getJSON(“itemlist.json” ,function(data) { $(data).each(function){ $(“<h2><a href=“”+this.url+””>+this.title+”</a></h2>”) .appendTo(‘ul li’); } }); // HTML <body> <h1>艦隊一覧</h1> <ul> <li><h2><a href=“https://murakumo.com”>叢雲</a></h2></li> <li><h2><a href=“https://simakaze.com”>島風</a></h2></li> </ul> </body> 何でもかんでもJSで処理しない • URLは動的に生成しない ※不完全なURLをクロールしてエラーを出す事がある為 • HTML自体に <a href= hoge >で記載する • オリジナルテキストは非同期にしない ※Googleはオリジナルテキストを高く評価する傾向がある為
77.
何でもかんでもJSで処理しない JSONのデータをJSでHTMLに描画 // JSON [ { "title": "叢雲", "genre":
"駆逐艦", "note": “我々の業界ではご褒美です", "url": “https://murakumo.com” }, { "title": "島風", "genre": "駆逐艦", "note": “めっちゃ早い", "url": “https://simakaze.com” }, ] // JS $.getJSON(“itemlist.json” ,function(data) { $(data).each(function){ $(“<h2><a href=“”+this.url+””>+this.title+”</a></h2>”) .appendTo(‘ul li’); } }); // HTML <body> <h1>艦隊一覧</h1> <ul> <li><h2><a href=“https://murakumo.com”>叢雲</a></h2></li> <li><h2><a href=“https://simakaze.com”>島風</a></h2></li> </ul> </body> • URLは動的に生成しない ※不完全なURLをクロールしてエラーを出す事がある為 • HTML自体に <a href= hoge >で記載する • オリジナルテキストは非同期にしない ※Googleはオリジナルテキストを高く評価する傾向がある為 • 更に複数ページに利用するとペナルティ ※コンテンツ内容が乏しいページがサイト内に多数あった場合、低品質サイトと判断
78.
何でもかんでもJSで処理しない JSONのデータをJSでHTMLに描画 // JS $.getJSON(“itemlist.json” ,function(data)
{ $(data).each(function){ $(“<h2><a href=“”+this.url+””>+this.title+”</a></h2>”) .appendTo(‘ul li’); } }); // HTML <body> <h1>艦隊一覧</h1> <ul> <li><h2><a href=“https://murakumo.com”>叢雲</a></h2></li> <li><h2><a href=“https://simakaze.com”>島風</a></h2></li> </ul> </body> // JSON [ { "title": "叢雲", "genre": "駆逐艦", "note": “我々の業界ではご褒美です", "url": “https://murakumo.com” }, { "title": "島風", "genre": "駆逐艦", "note": “めっちゃ早い", "url": “https://simakaze.com” }, ]
79.
何でもかんでもJSで処理しない スライダーはJSを切っても全部表示されるようにする
80.
スライダーはJSを切っても全部表示されるようにする 何でもかんでもJSで処理しない Slider images
81.
Slider images スライダーはJSを切っても全部表示されるようにする li {
display:none;} JS OFF $(function(){ $(“.slide li”).show(); }); 何でもかんでもJSで処理しない
82.
スライダーはJSを切っても全部表示されるようにする Slider images li {
display:none;} JS OFF $(function(){ $(“.slide li”).show(); }); 何でもかんでもJSで処理しない
83.
スライダーはJSを切っても全部表示されるようにする Slider images li {
display:none;} JS OFF $(function(){ $(“.slide li”).show(); }); 何でもかんでもJSで処理しない
84.
スライダーはJSを切っても全部表示されるようにする Slider images JS OFF 何でもかんでもJSで処理しない
85.
スライダーはJSを切っても全部表示されるようにする Slider images JS OFF 何でもかんでもJSで処理しない
86.
他にも色々 • ナビ等の主要なリンクを非同期コンテンツにしない • JavaScriptによるリダイレクト •
ブラウザにレンダリングさせる前に、 サーバサイドでレンダリング出来ないか考える。 • アプリインストールを促す「インタースティシャル広告」も コンテンツの大半を覆うようなものだと、ペナルティ対象
87.
とは言うものの
88.
難しい時もある
89.
理想と現実
90.
分業の闇
91.
分業の闇 デザイナー デザインカンプ出来たので、 マークアップお願いします。
92.
分業の闇 デザイナー デザインカンプ出来たので、 マークアップお願いします。 わ、わかりました! 新人くん
93.
分業の闇 デザイナー ・・・・・! 新人くん
94.
分業の闇 デザイナー 出来ました! 新人くん
95.
分業の闇 _人人人人人人人_ > <div>まみれ <  ̄Y^Y^Y^Y^Y^Y ̄ ※あくまで起こりうる闇の例であり、弊社の事例ではありません。
96.
分業の闇 デザイナー コーディングが完了したので、 JSの処理導入お願いします。 エンジニア
97.
分業の闇 デザイナー コーディングが完了したので、 JSの処理導入お願いします。 エンジニア 了解しました。 内容確認します。
98.
分業の闇 _人人人人人人人_ > imgしかない <  ̄Y^Y^Y^Y^Y^Y ̄ ※あくまで起こりうる闇の例であり、弊社の事例ではありません。 _人人人人人人人人人人人_ > text-indent:100% <  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
99.
_人人人人人_ > つらい <  ̄Y^Y^Y^Y^ ̄ ※あくまで起こりうる闇の例であり、当社の事例ではありません。
100.
※あくまで起こりうる闇の 例であり、弊社の事例では ありません。
101.
ちなみに
102.
弊社がやってる事 • 社内 /
社外向けのガイドライン作成
103.
弊社がやってる事 • 社内 /
社外向けのガイドライン作成 • 定期的な社内勉強会の開催 (東京⇔石川)
104.
弊社がやってる事 • 社内 /
社外向けのガイドライン作成 • 定期的な社内勉強会の開催 (東京⇔石川) • Slackを利用して活発に情報交換
105.
弊社がやってる事 • 社内 /
社外向けのガイドライン作成 • 定期的な社内勉強会の開催 • Slackを利用して活発に情報交換
106.
弊社がやってる事 • 社内 /
社外向けのガイドライン作成 • 定期的な社内勉強会の開催 • Slackを利用して活発に情報交換
107.
まとめ
108.
まとめ • クローラーの動きを理解して、 SEOを考慮したマークアップを行うこと。
109.
まとめ • クローラーの動きを理解して、 SEOを考慮したマークアップを行うこと。 • 部分的にしか担当できないモノもあるので、 その制限の中で、出来る事は何か考える。
110.
まとめ • クローラーの動きを理解して、 SEOを考慮したマークアップを行うこと。 • 部分的にしか担当できないモノもあるので、 その制限の中で、出来る事は何か考える。 •
チームみんなでSEOについて考え、 知識を共有する事、大事。
111.
Thank you :-D
Download now