seoとjava script。 〜文書構造とチームと、時々、闇〜

111
SEOJavaScript文書構造とチームと、時々、闇 2016/01/16 WDF研修 「半歩先のSEOで効率よく結果を出そう」 DMM.com Labo Yuki Minakawa

Upload: yuki-minakawa

Post on 12-Apr-2017

2.024 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

SEOとJavaScript。 ~ 文書構造とチームと、時々、闇 ~

2016/01/16 WDF研修 「半歩先のSEOで効率よく結果を出そう」

DMM.com Labo Yuki Minakawa

Page 2: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

自己紹介• 2015/09/01 ~DMM.com Labo 加賀デザイン部にフロントエンドエンジニアとしてJoinしました

• 業務では、HTML/CSS/JavaScript等の実装や開発環境の準備・宴会部長まで幅広くやらせて頂いてます :-)

ミナカワ ユウキ HP : kglabo.com

Page 3: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

初LT

Page 4: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

よろしくお願いします!

Page 5: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

気になる

Page 6: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

先に結論

Page 7: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

極力、JS書かないようにしよう

Page 8: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

極力、JSを書かないようにしよう

Page 9: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

本日のアジェンダ

• 検索エンジンに反映されるまで

• 文書構造を意識する

• 理想と現実

Page 10: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

検索エンジンに反映されるまで※前置き

Page 11: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

検索エンジンに反映されるまで

Page 12: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

検索エンジンに反映されるまで

1. 検索エンジンがクローラーを使ってページの情報を集める

Page 13: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

検索エンジンに反映されるまで

1. 検索エンジンがクローラーを使ってページの情報を集める

検索エンジンGoogle / Yahoo 等

クローラー GoogleBot 等

Page 14: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

検索エンジンに反映されるまで

1. 検索エンジンがクローラーを使ってページの情報を集める

情報あつめてきてー

検索エンジンGoogle / Yahoo 等

クローラー GoogleBot 等

Page 15: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

検索エンジンに反映されるまで

情報あつめてきてー

検索エンジンGoogle / Yahoo 等

クローラー GoogleBot 等

わかりましたー

1. 検索エンジンがクローラーを使ってページの情報を集める

Page 16: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

検索エンジンに反映されるまで

情報あつめてきてー

検索エンジンGoogle / Yahoo 等

クローラー GoogleBot 等

1. 検索エンジンがクローラーを使ってページの情報を集める

Page 17: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

検索エンジンに反映されるまで

1. 検索エンジンがクローラーを使ってページの情報を集める

2. クローラーが集めた情報を検索エンジンがインデックスしていく

いただきます!

検索エンジンGoogle / Yahoo 等

クローラー GoogleBot 等

もってきた!

Page 18: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

検索エンジンに反映されるまで

1. 検索エンジンがクローラーを使ってページの情報を集める

2. クローラーが集めた情報を検索エンジンがインデックスしていく

きろくしよう

検索エンジンGoogle / Yahoo 等 データベース

Page 19: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

検索エンジンに反映されるまで

1. 検索エンジンがクローラーを使ってページの情報を集める

2. クローラーが集めた情報を検索エンジンがインデックスしていく

きろく完了

検索エンジンGoogle / Yahoo 等 データベース

Page 20: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

検索エンジンに反映されるまで

1. 検索エンジンがクローラーを使ってページの情報を集める

2. クローラーが集めた情報を検索エンジンがインデックスしていく

検索エンジンGoogle / Yahoo 等 データベース

検索結果に表示

各種ブラウザ

Page 21: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

ここまで覚えればOK

Page 22: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

その中の、

Page 23: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

途中の出来事

クローラー GoogleBot 等

なになに・・・?

Page 24: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

途中の出来事

クローラー GoogleBot 等

・・・・・・・。

Page 25: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

• クローラー 内容が理解できない問題

途中の出来事

クローラー GoogleBot 等

imgしか…無い…!

Page 26: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

• クローラー 内容が理解できない問題

途中の出来事

クローラー GoogleBot 等

imgしか…無い…!

Page 27: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

• クローラー 内容が理解できない問題

途中の出来事

クローラー GoogleBot 等

imgしか…無い…!今回はコレの話

Page 28: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

文書構造を意識する

Page 29: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

文書構造を意識する

• ユーザは表示されているページを見ている。

クローラー GoogleBot 等

見出しが無エ!

Page 30: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

文書構造を意識する

• ユーザは表示されているページを見ている。

• クローラーはソースコードを見ている。

クローラー GoogleBot 等

テキスト無エ!

Page 31: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

文書構造を意識する

• ユーザは表示されているページを見ている。

• クローラーはソースコードを見ている。

クローラー GoogleBot 等

altもそれほど入って無エ!

Page 32: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

文書構造を意識する

• ユーザは表示されているページを見ている。

クローラー GoogleBot 等

imgしか…無い…!

Page 33: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

文書構造を意識している

• クローラーはソースコードを見ている。<h1 class="entryTitle">1/16開催 WDF研修「半歩先のSEOで効率よく結果を出そう」</h1><p> WDFの2016年最初のセミナーは、SEOの第一人者でWDFに過去3回講演していただいている 住 太陽さんをお招きして、WDF研修「半歩先のSEOで効率よく結果を出そう」を開催します。 住さんからは、「直近のセミナーで話した内容すべてを詰め込んだ総集編」、 「内容の濃すぎるセミナー」というコメントをいただいています。 日々の運用のヒントが必ず見つかります。ぜひご参加ください。</p><h2>半歩先のSEOで効率よく結果を出そう</h2><p> ウェブマスターの手間と時間は何よりも大切なもの。効果の薄い最適化施策や、 PVばかりで売上につながらないコンテンツ作りに、大切な手間と時間はかけられません。 確実に、しかも、効率よく結果を出すには、集中すべきところとそうでないところを 切り分ける必要があります。 </p>

Page 34: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

文書構造を意識している

• クローラーはソースコードを見ている。<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..

Page 35: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

文書構造を意識してない

• クローラーはソースコードを見ている。<b>1/16開催 WDF研修「半歩先のSEOで効率よく結果を出そう」</b><br> <br> WDFの2016年最初のセミナーは、SEOの第一人者でWDFに過去3回講演していただいている住 太陽さんをお招きして、WDF研修「半歩先のSEOで効率よく結果を出そう」を開催します。住さんからは、「直近のセミナーで話した内容すべてを詰め込んだ総集編」、「内容の濃すぎるセミナー」というコメントをいただいています。日々の運用のヒントが必ず見つかります。ぜひご参加ください。<br> <br> <b>半歩先のSEOで効率よく結果を出そう</b><br><br> ウェブマスターの手間と時間は何よりも大切なもの。効果の薄い最適化施策や、PVばかりで売上につながらないコンテンツ作りに、大切な手間と時間はかけられません。確実に、しかも、効率よく結果を出すには、集中すべきところとそうでないところを切り分ける必要があります。

Page 36: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

文書構造を意識してない

• クローラーはソースコードを見ている。<b>1/16開催 WDF研修「半歩先のSEOで効率よく結果を出そう」</b><br> <br> WDFの2016年最初のセミナーは、SEOの第一人者でWDFに過去3回講演していただいている住 太陽さんをお招きして、WDF研修「半歩先のSEOで効率よく結果を出そう」を開催します。住さんからは、「直近のセミナーで話した内容すべてを詰め込んだ総集編」、「内容の濃すぎるセミナー」というコメントをいただいています。日々の運用のヒントが必ず見つかります。ぜひご参加ください。<br> <br> <b>半歩先のSEOで効率よく結果を出そう</b><br><br> ウェブマスターの手間と時間は何よりも大切なもの。効果の薄い最適化施策や、PVばかりで売上につながらないコンテンツ作りに、大切な手間と時間はかけられません。確実に、しかも、効率よく結果を出すには、集中すべきところとそうでないところを切り分ける必要があります。

…どういう事だってばよ!?

Page 37: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

文書構造とは何だったのか

• クローラーはソースコードを見ている。

<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="">

つらい

Page 38: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

お前は一体、何を言っているんだ。

※クローラーです

Page 39: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

この件については、上に伝えさせてもらう。

※クローラーです

機会損失

Page 40: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

美味しいソースをくれ!

※クローラーです

正しい文書構造、大事。

Page 41: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

クローラー GoogleBot 等

JS CSS

クローラーはソースコードを みている

これは一体。

Page 42: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

クローラーはどうしていいのか わからない!

クローラー GoogleBot 等

JS CSS

ああ、噂のJSですよね

Page 43: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

クローラーの クローリング!MP が たりない!

クローラー GoogleBot 等

JS CSS

まだ勉強中なんですよね

Page 44: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

Page 45: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

プログレッシブ・エンハンスメント

Page 46: SEOとJava Script。 〜文書構造とチームと、時々、闇〜
Page 47: SEOとJava Script。 〜文書構造とチームと、時々、闇〜
Page 48: SEOとJava Script。 〜文書構造とチームと、時々、闇〜
Page 49: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

役割を分ける

Page 50: SEOとJava Script。 〜文書構造とチームと、時々、闇〜
Page 51: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

JS(インタラクション)を削除しても、 内容が通じる

Page 52: SEOとJava Script。 〜文書構造とチームと、時々、闇〜
Page 53: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

CSS(スタイル)を削除しても、内容が通じる

Page 54: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

役割を分ける

Page 55: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

役割を分ける

Page 56: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

役割を分ける

• HTMLは適切にマークアップ

• 見栄えに関わるものはCSS

• インタラクションはJSで

Page 57: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

適切なマークアップ?

Page 58: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

適切なマークアップ

• テキストがそのコンテンツを示すタグで囲まれている・見出しは<h◯>タグに、段落は<p>で囲まれている etc

Page 59: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

適切なマークアップ

• テキストがそのコンテンツを示すタグで囲まれている・見出しは<h◯>タグに、段落は<p>で囲まれている etc

• HTML要素が正しく利用されている・<h1>タグ等を文字サイズを大きくする為ではなく、 見出しとして適切に利用する etc

Page 60: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

適切なマークアップ

• テキストがそのコンテンツを示すタグで囲まれている・見出しは<h◯>タグに、段落は<p>で囲まれている etc

• HTML要素が正しく利用されている・<h1>タグ等を文字サイズを大きくする為ではなく、 見出しとして適切に利用する etc

• テキストにスタイル属性を直接的に含まない・<font>や<center>タグや<div style=“”> ・ちゃんとCSSに記載する

Page 61: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

極力、JS書かないようにしよう

Page 62: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

極力、JS書かないようにしよう

Page 63: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

非同期コンテンツについて

• JavaScriptで動的に生成するコンテンツについては、クローラーは完全に理解する事ができない。

Page 64: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

非同期コンテンツについて

• JavaScriptで動的に生成するコンテンツについては、クローラーは完全に理解する事ができない。

Page 65: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

非同期コンテンツについて

• JavaScriptで動的に生成するコンテンツについては、クローラーは完全に理解する事ができない。

• HTML スナップショット?

Page 66: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

非同期コンテンツについて

• JavaScriptで動的に生成するコンテンツについては、クローラーは完全に理解する事ができない。

• HTML スナップショット?・工数が掛かる・その前に構成的に問題ない?

Page 67: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

非同期コンテンツについて

• JavaScriptで動的に生成するコンテンツについては、クローラーは完全に理解する事ができない。

• JavaScriptを切っても情報を、閲覧・ページ遷移できるように作る!

Page 68: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

何でもかんでもJSで処理しない

Page 69: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

何でもかんでもJSで処理しない

JSONのデータをJSでHTMLに描画

Page 70: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

JSONのデータをJSでHTMLに描画

// HTML<body> <h1>艦隊一覧</h1> <ul> <li></li> <li></li> </ul></body>

何でもかんでもJSで処理しない

Page 71: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

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で処理しない

Page 72: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

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で処理しない

Page 73: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

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で処理しない

Page 74: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

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をクロールしてエラーを出す事がある為

Page 75: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

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”>で記載する

Page 76: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

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はオリジナルテキストを高く評価する傾向がある為

Page 77: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

何でもかんでも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はオリジナルテキストを高く評価する傾向がある為

• 更に複数ページに利用するとペナルティ※コンテンツ内容が乏しいページがサイト内に多数あった場合、低品質サイトと判断

Page 78: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

何でもかんでも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” },]

Page 79: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

何でもかんでもJSで処理しない

スライダーはJSを切っても全部表示されるようにする

Page 80: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

スライダーはJSを切っても全部表示されるようにする

何でもかんでもJSで処理しない

Slider images

Page 81: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

Slider images

スライダーはJSを切っても全部表示されるようにする

li { display:none;}

JS OFF

$(function(){ $(“.slide li”).show();});

何でもかんでもJSで処理しない

Page 82: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

スライダーはJSを切っても全部表示されるようにする

Slider imagesli { display:none;}

JS OFF

$(function(){ $(“.slide li”).show();});

何でもかんでもJSで処理しない

Page 83: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

スライダーはJSを切っても全部表示されるようにする

Slider imagesli { display:none;}

JS OFF

$(function(){ $(“.slide li”).show();});

何でもかんでもJSで処理しない

Page 84: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

スライダーはJSを切っても全部表示されるようにする

Slider images

JS OFF

何でもかんでもJSで処理しない

Page 85: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

スライダーはJSを切っても全部表示されるようにする

Slider images

JS OFF

何でもかんでもJSで処理しない

Page 86: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

他にも色々

• ナビ等の主要なリンクを非同期コンテンツにしない

• JavaScriptによるリダイレクト

• ブラウザにレンダリングさせる前に、サーバサイドでレンダリング出来ないか考える。

• アプリインストールを促す「インタースティシャル広告」もコンテンツの大半を覆うようなものだと、ペナルティ対象

Page 87: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

とは言うものの

Page 88: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

難しい時もある

Page 89: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

理想と現実

Page 90: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

分業の闇

Page 91: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

分業の闇

デザイナー

デザインカンプ出来たので、マークアップお願いします。

Page 92: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

分業の闇

デザイナー

デザインカンプ出来たので、マークアップお願いします。

わ、わかりました!

新人くん

Page 93: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

分業の闇

デザイナー

・・・・・!

新人くん

Page 94: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

分業の闇

デザイナー

出来ました!

新人くん

Page 95: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

分業の闇

_人人人人人人人_ > <div>まみれ < ‾Y^Y^Y^Y^Y^Y‾

※あくまで起こりうる闇の例であり、弊社の事例ではありません。

Page 96: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

分業の闇

デザイナー

コーディングが完了したので、 JSの処理導入お願いします。

エンジニア

Page 97: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

分業の闇

デザイナー

コーディングが完了したので、 JSの処理導入お願いします。

エンジニア

了解しました。 内容確認します。

Page 98: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

分業の闇_人人人人人人人_ > imgしかない < ‾Y^Y^Y^Y^Y^Y‾

※あくまで起こりうる闇の例であり、弊社の事例ではありません。

_人人人人人人人人人人人_ > text-indent:100% < ‾Y^Y^Y^Y^Y^Y^Y^Y^Y‾

Page 99: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

_人人人人人_ > つらい < ‾Y^Y^Y^Y^‾

※あくまで起こりうる闇の例であり、当社の事例ではありません。

Page 100: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

※あくまで起こりうる闇の例であり、弊社の事例ではありません。

Page 101: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

ちなみに

Page 102: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

弊社がやってる事• 社内 / 社外向けのガイドライン作成

Page 103: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

弊社がやってる事• 社内 / 社外向けのガイドライン作成

• 定期的な社内勉強会の開催 (東京⇔石川)

Page 104: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

弊社がやってる事• 社内 / 社外向けのガイドライン作成

• 定期的な社内勉強会の開催 (東京⇔石川)

• Slackを利用して活発に情報交換

Page 105: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

弊社がやってる事• 社内 / 社外向けのガイドライン作成

• 定期的な社内勉強会の開催

• Slackを利用して活発に情報交換

Page 106: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

弊社がやってる事• 社内 / 社外向けのガイドライン作成

• 定期的な社内勉強会の開催

• Slackを利用して活発に情報交換

Page 107: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

まとめ

Page 108: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

まとめ

• クローラーの動きを理解して、SEOを考慮したマークアップを行うこと。

Page 109: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

まとめ

• クローラーの動きを理解して、SEOを考慮したマークアップを行うこと。

• 部分的にしか担当できないモノもあるので、その制限の中で、出来る事は何か考える。

Page 110: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

まとめ

• クローラーの動きを理解して、SEOを考慮したマークアップを行うこと。

• 部分的にしか担当できないモノもあるので、その制限の中で、出来る事は何か考える。

• チームみんなでSEOについて考え、知識を共有する事、大事。

Page 111: SEOとJava Script。 〜文書構造とチームと、時々、闇〜

Thank you :-D