Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
Submit search
EN
Uploaded by
Yuki Minakawa
PDF, PPTX
3,382 views
SEOとJava Script。 〜文書構造とチームと、時々、闇〜
2016/01/16に開催されたWDF研修「半歩先のSEOで効率よく結果を出そう」で発表させて頂いたLTです。
Technology
◦
Read more
4
Save
Share
Embed
Embed presentation
Download
Download as PDF, PPTX
1
/ 111
2
/ 111
3
/ 111
4
/ 111
5
/ 111
6
/ 111
7
/ 111
8
/ 111
9
/ 111
10
/ 111
11
/ 111
12
/ 111
13
/ 111
14
/ 111
15
/ 111
16
/ 111
17
/ 111
18
/ 111
19
/ 111
20
/ 111
21
/ 111
22
/ 111
23
/ 111
24
/ 111
25
/ 111
26
/ 111
27
/ 111
28
/ 111
29
/ 111
30
/ 111
31
/ 111
32
/ 111
33
/ 111
34
/ 111
35
/ 111
36
/ 111
37
/ 111
38
/ 111
39
/ 111
40
/ 111
41
/ 111
42
/ 111
43
/ 111
44
/ 111
45
/ 111
46
/ 111
47
/ 111
48
/ 111
49
/ 111
50
/ 111
51
/ 111
52
/ 111
53
/ 111
54
/ 111
55
/ 111
56
/ 111
57
/ 111
58
/ 111
59
/ 111
60
/ 111
61
/ 111
62
/ 111
63
/ 111
64
/ 111
65
/ 111
66
/ 111
67
/ 111
68
/ 111
69
/ 111
70
/ 111
71
/ 111
72
/ 111
73
/ 111
74
/ 111
75
/ 111
76
/ 111
77
/ 111
78
/ 111
79
/ 111
80
/ 111
81
/ 111
82
/ 111
83
/ 111
84
/ 111
85
/ 111
86
/ 111
87
/ 111
88
/ 111
89
/ 111
90
/ 111
91
/ 111
92
/ 111
93
/ 111
94
/ 111
95
/ 111
96
/ 111
97
/ 111
98
/ 111
99
/ 111
100
/ 111
101
/ 111
102
/ 111
103
/ 111
104
/ 111
105
/ 111
106
/ 111
107
/ 111
108
/ 111
109
/ 111
110
/ 111
111
/ 111
More Related Content
PDF
jQuery Performance Tips – jQueryにおける高速化 -
by
Hayato Mizuno
PDF
The master plan ofscaling a web application
by
Yusuke Wada
PDF
Async Enhancement
by
kamiyam .
PDF
いまさら聞けない!?Backbone.js 超入門
by
Kohei Kadowaki
PDF
⑯jQueryをおぼえよう!その2
by
Nishida Kansuke
PDF
はじめよう Backbone.js
by
Hiroki Toyokawa
PDF
【Camphor ×サイボウズ】selenium勉強会
by
Yuki Okada
PDF
Web workers¶llel.js html5勉強会lt大会
by
Yuta Shimakawa
jQuery Performance Tips – jQueryにおける高速化 -
by
Hayato Mizuno
The master plan ofscaling a web application
by
Yusuke Wada
Async Enhancement
by
kamiyam .
いまさら聞けない!?Backbone.js 超入門
by
Kohei Kadowaki
⑯jQueryをおぼえよう!その2
by
Nishida Kansuke
はじめよう Backbone.js
by
Hiroki Toyokawa
【Camphor ×サイボウズ】selenium勉強会
by
Yuki Okada
Web workers¶llel.js html5勉強会lt大会
by
Yuta Shimakawa
What's hot
PDF
Haikara
by
jewel12
PDF
One Time Binding & Digest Loop
by
Kon Yuichi
PDF
React.jsでクライアントサイドなWebアプリ入門
by
spring_raining
PPTX
仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016
by
Takayuki Shimizukawa
PDF
chat bot framework for Java8
by
masahitojp
ODP
HTML5 開発環境の紹介
by
tomo_masakura
PDF
Mojoliciousでつくる! Webアプリ入門
by
Yusuke Wada
PDF
AngularJSでの非同期処理の話
by
Yosuke Onoue
PDF
React Redux Redux-Saga + サーバサイドレンダリング
by
エンジニア勉強会 エスキュービズム
PDF
asm.jsとWebAssemblyって実際なんなの?
by
Yosuke Onoue
PDF
HTML5 & The Web Platform
by
Masataka Yakura
PDF
Backbonejs @BuildInsiderOffline #1
by
daisuke shimizu
PDF
Angular js or_backbonejs
by
Omasa Yusaku
PDF
閉じタグを超えた先に僕が見た景色とは
by
Muyuu Fujita
PDF
Web Platform -- Moving Forward!
by
Masataka Yakura
KEY
EC-CUBEプラグイン講義
by
ria1201
ODP
今流行りのウェブアプリ開発環境Yeoman
by
tomo_masakura
PDF
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
by
Y Watanabe
PDF
Web制作勉強会 #2
by
Moto Yan
PPTX
オフラインファーストの思想と実践
by
Shumpei Shiraishi
Haikara
by
jewel12
One Time Binding & Digest Loop
by
Kon Yuichi
React.jsでクライアントサイドなWebアプリ入門
by
spring_raining
仕事で使うちょっとしたコードをOSSとして開発メンテしていく- Django Redshift Backend の開発 - PyCon JP 2016
by
Takayuki Shimizukawa
chat bot framework for Java8
by
masahitojp
HTML5 開発環境の紹介
by
tomo_masakura
Mojoliciousでつくる! Webアプリ入門
by
Yusuke Wada
AngularJSでの非同期処理の話
by
Yosuke Onoue
React Redux Redux-Saga + サーバサイドレンダリング
by
エンジニア勉強会 エスキュービズム
asm.jsとWebAssemblyって実際なんなの?
by
Yosuke Onoue
HTML5 & The Web Platform
by
Masataka Yakura
Backbonejs @BuildInsiderOffline #1
by
daisuke shimizu
Angular js or_backbonejs
by
Omasa Yusaku
閉じタグを超えた先に僕が見た景色とは
by
Muyuu Fujita
Web Platform -- Moving Forward!
by
Masataka Yakura
EC-CUBEプラグイン講義
by
ria1201
今流行りのウェブアプリ開発環境Yeoman
by
tomo_masakura
20140405 mavenセントラルリポジトリへの登録のコツ 第5回渋谷java
by
Y Watanabe
Web制作勉強会 #2
by
Moto Yan
オフラインファーストの思想と実践
by
Shumpei Shiraishi
Viewers also liked
PPTX
ModelとViewに分ける設計 - #JSオジサン
by
Ginpei Takanashi
PDF
"今" 使えるJavaScriptのトレンド
by
Hayato Mizuno
PDF
Vue.jsコンポーネントのススメ
by
takanori sugawara
PDF
5.6 以前の InnoDB Flushing
by
Takanori Sejima
PDF
MySQL 5.7の罠があなたを狙っている
by
yoku0825
PDF
MVC 01
by
Satoshi Shoda
PDF
MVC 02
by
Satoshi Shoda
PDF
MVC 03
by
Satoshi Shoda
PDF
Xamarin.forms入門
by
一希 大田
ModelとViewに分ける設計 - #JSオジサン
by
Ginpei Takanashi
"今" 使えるJavaScriptのトレンド
by
Hayato Mizuno
Vue.jsコンポーネントのススメ
by
takanori sugawara
5.6 以前の InnoDB Flushing
by
Takanori Sejima
MySQL 5.7の罠があなたを狙っている
by
yoku0825
MVC 01
by
Satoshi Shoda
MVC 02
by
Satoshi Shoda
MVC 03
by
Satoshi Shoda
Xamarin.forms入門
by
一希 大田
Similar to SEOとJava Script。 〜文書構造とチームと、時々、闇〜
PPTX
“観察”から始めるJSコーディング
by
Miwako Ichijo
PDF
2018年に於ける HTML の役割(実践編)
by
UX Ojisan
PDF
jQuery超入門編
by
Yasuhito Yabe
PDF
Data API と flexibleSearch、MTAppjQuery で広がるMT6の使い方
by
bitpart
PDF
jQuery Mobile 1.2 最新情報 & Tips
by
yoshikawa_t
PDF
How to develop a huge Single Page Application
by
Naoki Yamada
PPT
Tokyowebmining5 yokkuns
by
Yohei Sato
PDF
WordBench Kobe jQueryどうでしょう
by
Hishikawa Takuro
ODP
お父さんのための実用JavaScriptプログラミング~入門篇~
by
Che Renkov
PDF
2012年8月10日 勉強会
by
Rin Yano
PDF
今度こそ始めるjQuery超入門
by
西畑 一馬
“観察”から始めるJSコーディング
by
Miwako Ichijo
2018年に於ける HTML の役割(実践編)
by
UX Ojisan
jQuery超入門編
by
Yasuhito Yabe
Data API と flexibleSearch、MTAppjQuery で広がるMT6の使い方
by
bitpart
jQuery Mobile 1.2 最新情報 & Tips
by
yoshikawa_t
How to develop a huge Single Page Application
by
Naoki Yamada
Tokyowebmining5 yokkuns
by
Yohei Sato
WordBench Kobe jQueryどうでしょう
by
Hishikawa Takuro
お父さんのための実用JavaScriptプログラミング~入門篇~
by
Che Renkov
2012年8月10日 勉強会
by
Rin Yano
今度こそ始めるjQuery超入門
by
西畑 一馬
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.
プログレッシブ・エンハンスメント
49.
役割を分ける
51.
JS(インタラクション)を削除しても、 内容が通じる
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