takanoブログ

web で何か役に立つことを、思いついたら書くブログ

twitter:@takano_seo

SEO 初心者向け Google 検索の仕組み

こんにちは。takanoです。
いつも検索について詳しくない人と話すときに説明に苦労するのが、Google 検索がどのようにウェブサイトを認識し検索結果に表示しているかの流れです。
Google 公式のガイド もあるのですが、そもそも見ていない人も多いようです。
なので今日は Google 検索の仕組みについて、公式ガイドの紹介もしながら、なるべくシンプルにまとめてみたいと思います。

※ おおまかな流れが理解できたら、ぜひ文中の参考リンクも確認してみてください

はじめに

f:id:takano_seo:20190609080211j:plain
[参考] Google 検索の仕組み
[素材] いらすとや

上の図で簡単にまとめましたが、このような流れを経て各ウェブサイトのコンテンツは Google 検索の検索結果に表示されます。

個人的には、クロール → インデックス → ランキングの 3 ステップ推しだったのですが、最近はレンダリング(描画)の話題も多いので 4 ステップの図にしました。

ここから各ステップの詳細を簡単に解説していきたいと思います。

クロール

Google 検索にウェブサイトが掲載されるための最初のステップがクロールです。

Googlebot と呼ばれるクローラー(スパイダー)がウェブサイトを巡回し、情報を収集します。

巡回する際には、既知の URL に存在するリンクを辿ったりサイトマップで送信した URL のリストが利用されます。

※ この URL を発見するステップを「ディスカバー」と呼んで、クロールの前段階に据える解説もありますが、今回はクロールに含めました

このステップの詳細は、「検索が情報を整理する仕組み」という公式ガイドに記載されています。
特に上段に掲載されている動画は、クロール → インデックス → ランキングの流れを 3 分程度で分かりやすく解説してくれているのでオススメです。
(日本語字幕あり)

そもそもクロールされないとサイトの情報が Google 検索に伝わらないので、一番重要なステップと言えます。

よくあるトラブル

パース / レンダリング

すごくざっくり書くと、パースは HTML の解析で、レンダリングCSSJavascript も含めた描画(ユーザーがブラウザで見るのと同じコンテンツ)です。

このステップを経ることで Google 検索はコンテンツを理解し、インデックスに登録すべきかどうかを判断できます。

ここはすごく複雑なステップなので、簡単には説明できません。
代わりに、なるべく公式の資料をまとめて紹介したいと思います。

英語しかない動画・記事に関しては日本語訳が待たれるところです。

パースとレンダリングが別のプロセスということに関して、日本語で読める記事だと下記の 2 つがオススメです。

自分でコードを書かない方は、開発者のメンバーにこの辺りを共有すると意図せぬ事故を未然に防げるかもしれません。

インデックス

これは、Google 検索が検索結果に情報を表示するための情報源のようなものです。
公式には下記のように説明されています。

Google のインデックスには、本の巻末にある索引と同じように、各ウェブページに含まれているすべての語が 1 つずつ追加されています。つまり、インデックスにウェブページが登録されると、そのページに含まれるすべての語がインデックスに追加されるということです。

[引用] 検索が情報を整理する仕組み

現在、 Google がインデックスしているウェブページ数は数千億を超え、今やその情報量は世界中の図書館をすべて合わせたとしても収まり切れません。

[引用] これからの 20 年にむけて ~ より良い検索を目指して~

自サイトのインデックス登録状況を調べるには、サーチコンソールのインデックス カバレッジ レポートを利用します。
クロールされ、インデックスされて初めてサイトが検索結果に掲載されるようになるので、日常的に確認することをおすすめします。

補足

Google 検索においては、ただ保存した情報を参照するだけではなく、ナレッジグラフトピックレイヤーのような物事の繋がりと意味(エンティティセマンティック)の理解も含まれています。
その助けになる構造化データの提供もサイト運営者には重要な要素の 1 つです。
また、モバイル ファースト インデックス(MFI)もモバイル用のクローラーが収集した情報をインデックス対象にするという話なのですが、ここまでの前提が把握できていないと理解に苦しむかもしれません。

ランキング

サイト運営者にとって、ここが一番気になるポイントと思います。
前段の説明を読んでほしかったのは、そもそもインデックスに登録されないとGoogle 検索の検索結果に出る資格すら与えられないためです。
詳細は こちらの動画(英語)でご確認ください。

ランキングは、検索ユーザーが Google 検索に入力したキーワード(検索クエリ)に応じて行われます。
また、そこには 200 種類以上の様々なシグナル(目印)が利用され検索の意図や文脈に応じた検索結果が返答されます。

このステップもすごく複雑なので、できれば下記の記事は一通り確認していただけると良いと思います。

[参考]

  1. 検索アルゴリズムの仕組み
  2. 今改めてGoogleのPageRankについて理解すべきこと
  3. Google ウェブマスター向け公式ブログ: HTTPS をランキング シグナルに使用します
  4. Google ウェブマスター向け公式ブログ: モバイル フレンドリー アップデートを開始します
  5. Google ウェブマスター向け公式ブログ: 日本語検索の品質向上にむけて
  6. Googleは感情分析をランキング要因にしていない。しかしウェブでどのように言及されているかは重要 #StateofSearch 2017
  7. Google ウェブマスター向け公式ブログ: 医療や健康に関連する検索結果の改善について
  8. ページの読み込み速度をモバイル検索のランキング要素に使用します
  9. 「Googleはパーソナライズ検索があるからね」は昔の話!? 実はもう……
  10. パーソナライズ検索の真相をGoogleが自ら暴いた――検索結果がパーソナライズされるのは稀、大きくは変わらない
  11. Googleはクリックデータを検索結果のランキング決定に利用しているのか?⇒どーでもいい😉
  12. 専門性を示すことはGoogle検索のランキング要因である

まとめ

SEO 初心者向け Google 検索の仕組み」と題して、クロール → パース / レンダリング → インデックス → ランキングの 4 ステップをまとめてみました。

ざっくり、この 4 ステップが理解できるだけで Google 検索に対して自身が何をすべきか?の方針が立てやすくなると思うので、特に初心者の方には確認いただければと思います。

不足・誤りについてはご指摘いただければ随時修正させていただきますので、お気軽にご連絡ください。

それでは、またいつか!

公式 SEO 入門ガイドと最新 SEO 情報の仕入れ方(初心者~中級者向け)

こんにちは。takanoです。

今日は公式 SEO 入門ガイドと最新 SEO 情報の仕入れ方というテーマで、私が普段からウォッチしている情報源をまとめてみたいと思います。
初心者~中級者向けということで一部省いている部分もありますが、これだけカバーしておけば、SEO 界隈の基本的な会話にはついていけます。
(私も中級者です)

※ 紹介させていただくサイト・Twitter アカウントの所有者様、問題がある場合には削除しますので、お手数ですがご一報ください

はじめに

こんなお悩みありませんか?

  • SEO って何から覚えれば良いの?
  • 用語が多くて難しい!
  • みんな言うことバラバラで何が正解かわからない…

Google 公式の情報以外にも SEO コンサルやツールベンダー、アフィリエイターなど、様々な人たちが各自の解釈した情報を発信するので、何を信じれば良いのか分からない状況が発生しています。
もちろん良質な記事・情報を発信している SEO 関係者も多く存在しますが、ある程度の予備知識が無いと信じられる情報かどうかの目利きができないので、これから SEO を担当する方や個人で独学されている方には厳しい界隈です。

私は個人的に SEO というか検索にまつわる話が好きです。検索エンジンを通してユーザーが求める Web サイトを探ることで、結果的に良い Web サイトを作ることができますし、逆もまた然りです。また、検索には最新の技術が惜しみなく投入されてくるので、技術者としての好奇心も満たしてくれます。検索結果では良いものも良くないものも見ることができますが、それを通して Google 検索の今の限界を確認できたり、フィードバックによって改善の小さなお手伝いもできます。
中小企業の商業的な文脈では SEO の施策は広告と比べて CPA がどうとかの観点で比較されがちですが、検索は既に人々の生活の一部なので、インフラという意味で広告とは違う立ち位置にあると感じています。(広告はインフラの中に存在するオプションで、ソーシャルでも同様)

上記の理由により、SEO は一部のマニアックな人のものでなく、Web サイトを運営する人間には必須の教養と感じているので、今回まとまった形で情報源として活用できる記事を目指してみました。

Google 公式の SEO 情報

Twitter で自称コンサルの人の意見は鵜呑みにするのに、 Google 公式のヘルプ記事は見ない人が多いようにも感じます。
Google 検索ではヘルプやガイド、ブログなど色々なチャンネルで情報を発信しているので、まずは基本的なルールを知るという意味で公式情報から確認しましょう!

Google 検索の仕組み

意外なことに、Google 検索は、その内部的な仕組みの概要を公開しています。SEO検索エンジン最適化)の話をする前に、まずは検索エンジンの仕組みについて学ぶのは必須です。

Google 検索ガイドライン

このガイドラインを起点に、その他の細かいヘルプへ誘導してくれます。個別のヘルプを読む前に、このガイドラインの構成を頭に入れておくと、Google 検索が各個別の事象をどう捉えているか知ることができます。

Search Console ヘルプ

これも意外かもしれませんが、ヘルプ記事がとても充実しています。キーワードによっては Google 検索上で少し弱いので、ヘルプ内の検索も併用するのがオススメです。

開発者向けサイト

実際にサイト内に Google 検索向けの仕様を実装する際には、このサイトが役に立ちます。自身が技術に詳しくない場合はエンジニアの人と一緒に見るとスムーズに説明できるはずです。(特に構造化データ実装の際はサンプルコード付きなのでオススメ)

Google ウェブマスター向け公式ブログ

公式なお知らせは、主にここで発信されます。最初に英語版が出てから日本語版に翻訳されることが多いので、先に英語版で読むときは、段落ごとに Google 翻訳 が便利です。
過去記事に重要なことが書いてある場合も多いので、右カラムにある「検索」と「ラベル」をうまく活用しましょう。

ウェブマスター ヘルプ コミュニティ

Google 検索に詳しい人(エキスパート)に質問できたり、過去の質問や回答を検索できます。

主な活用方法
  1. 過去の投稿を検索、似た事例の回答を探す(トレンドも分かる)
  2. それでも解決しない場合は質問してみる
  3. 自分が知ってる問題で困ってる人がいたら回答してみる

※2019年3月にプラットフォームが変更になり、それ以前の質問は検索しづらい状況です。お困りの場合はこちらの検索方法で試すと探しやすいかもしれません

ウェブマスター オフィスアワー

Google 社員に質問できて、YouTube で回答してくれます。また、Twitter のハッシュタグでは閲覧者による実況が行われており、たまに Google 社員の金谷さんが補足してくれたりします。

日本語版の質問と回答の流れ
  1. Google 社員:金谷さんが twitter で質問用と視聴用の URLを告知
  2. 質問がある方は開催日前に余裕をもって質問フォームに投稿
  3. 主に金谷さんと、質問や参加者により他の回答者が YouTube で 1 時間ぐらい回答(時間が足りなければ次回)
質問するときの裏技

基本的にサイト名などは伏せて質問することができます。質問の投稿欄に本文を記載する欄がありますが、その中でも公開したくない情報は、質問文の下のほうに「ここから下は紹介しないでください」と書いて細かい内容を記載したり、Google ドライブの共有 URL を利用して画像を貼ったりすることも可能です。

詳細は下記の動画にて↓

Japanese Webmaster Office Hours
(ウェブマスター オフィスアワー 2019 年 1 月 25 日)
https://youtu.be/nEyxmIENX2A?t=2593

英語が苦手でも英語版を確認する方法

@DeepCrawl@Marie_Haynes という Twitter アカウントが、定期的に文字起こしの記事を書いてくれています。Google 翻訳 を活用すれば、大筋は把握できます。

Google 社公式と社員の Twitter アカウント

リアルタイムに最新情報を知るなら Twitter がおすすめです。Google 社では公式アカウントだけでなく、各社員も個人アカウントにて情報発信をしてくれるので、検索に関わるツイートをしてくれるアカウントを主にまとめて紹介します。
(説明文は個人の感想です)

Google 公式以外の SEO 情報

検索にまつわる最新情報は、日々大量に出てきます。情報の量という観点では、皆さんが目にする SEO 情報では、Google 公式以外のもののほうが多いと思います。
その中でも「準公式」的に扱われるものは、オフィスアワー内での言及や Twitter での発言などがニュースソースになっている場合が多いです。

また、Google 本社はアメリカにあるので、最初の情報発信は英語の場合がほとんどですが、「発言が誰のもので、意図は何なのか?」は、SEO の界隈に限らず、すごく大事な要素です。
なので Google 翻訳 などを活用し発言の文脈や背景を確認すると、より理解が深まります。
この前提を踏まえたうえで、Google 公式以外の SEO 情報を発信しているサイトと Twitter アカウントを紹介していきます。

海外の SEO 情報ブログ

ちゃんと紹介しようと思うとものすごく数が多いので、 SEO 情報においてニュースソースが Google 社員の発言や公式アナウンスか、または大きめな規模の調査データから書かれた解説記事かという観点で 3 つ選定しました。

海外の SEO 情報アカウント

これも普段見ている Twitter アカウントが多すぎるので、だいぶ割愛して紹介しますが、既に紹介済みのアカウントと併せて確認していただくとより精度が高まると思います。
(※SEO 情報の速報性という観点から選出したので、他のすごいアカウントが欠落しているのは申し訳ありません)

国内の SEO 情報ブログ

もちろん国内にも、有益な最新情報を紹介するサイトはあります。基本的な選定基準は、ニュースソースを公開していることや、運営者が明らかであるか等です。また、元記事が英語の翻訳記事の場合は、なるべく正確に翻訳されているかも選定基準としました。

Google 品質評価ガイドライン解説 は速報性の観点からは少し外れますが、中級者以上の方には必須の情報が日本語で読めるので紹介しています

国内の SEO 情報アカウント

国内の Twitter アカウントも著名人が多すぎるので、個人的に SEO 情報の速報性の観点からピックアップしました。「僕が、私が」という場合には、ぜひ立候補ください。

まとめ

公式 SEO 入門ガイドと最新 SEO 情報の仕入れ方、いかがでしたか?
こうして見ると膨大な量の情報源に見えますが、例えば Twitter のリスト機能を活用してまとめると 1 日あたりの情報量は、そこまで多くならないと思います。

もちろん取捨択一も大事ですが、まずは公式情報から、そして信頼できる第三者情報の選定から、なるべく正しい SEO 情報を入手されることを願います。

それでは、またいつか!

はじめての正規表現入門(超初心者向け)

こんにちは。takanoです。

今日はすごく便利なのに、意外とみんな使っていない正規表現について、簡単にまとめてみたいと思います。
(※とっつきやすくするために厳密ではない部分もあるので、あらかじめご了承ください)

正規表現さえ覚えればテキストエディタでの文字の加工や、Google アナリティクスやデータポータルなどのツールでの複雑な URL 指定などがものすごく捗るので、ぜひこの機会に学んでみてください。

正規表現とは

ものすごくざっくり書くと、メタ文字と呼ばれる記号を使って下記2つのことをして、それによってある文字の集まりから特定のパターンを表現することです。

  1. 文字列の定義
  2. 繰り返しの指定

また、文字の集まりの中に正規表現で表したパターンが該当することを「マッチする」と言います。

この時点で少し難しそうですよね。私も最初は「正規表現」という名前からして良く分からなかったです。英語だと regular expression と言うので、しっかり定義が知りたい人は Wikipedia を参照してみてください。

メタ文字って何?

正規表現の中でだけ、特別な意味を持つ記号です。

メタ(meta-)とは、「高次な-」「超-」「-間の」「-を含んだ」「ーを入れた」「-の後ろの」等の意味の接頭語。 ギリシア語から。

[引用] メタ - Wikipedia

私はメタ文字のことを特殊能力を持った、文字を超えた文字と思っています。その程度の認識で大丈夫です。使えます。
ここからは、メタ文字の中でも特によく使うものを紹介します。

文字列の定義で使うメタ文字

. 文字なら何でも該当
\s 空白全て(スペース・タブ・改行)
^ 文(行)の最初
$ 文(行)の最後
[abc] この中に書いた文字のどれか
[^abc] この中に書いた文字のどれでもない

例えば、abc という文字列にマッチする正規表現を上のメタ文字でいくつか書いてみます。

  1. ... (文字なら何でも3文字)
  2. ^abc$ (最初がaで次がbで最後がc)
  3. [abc][abc][abc](aかbかcが3文字)
  4. [^xyz][^123][^あいう](xでもyでもzでもない文字と1でも2でも3でもない文字と...略)

※ わかりやすくするために大げさに書きました

グルーピング

また用語が出てきました。これはメタ文字の括弧で囲むと文字列を一つのまとまりとして扱えるという機能(?)です。
よく、|(パイプ)のメタ文字と組み合わせて使われます。

(abc) この中に囲んだ内容を一つのまとまりとして扱える
| 「または」や「OR」の意味で、文字列と文字列の間に入れる

エスケープ

正規表現の中でメタ文字にあたる文字を書きたい場合には、「これはメタ文字じゃなくて普通の文字ですよ」と宣言して、メタ文字の特殊能力を発動させないようにします。
このことをエスケープと呼びます。
エスケープには\(バックスラッシュ)というメタ文字を使います。(Windows だと¥のキー)

\ メタ文字の記号を、普通の文字として使いたいときの宣言(目印)

文字列の定義でよく使う書き方

さて、ここまで文字列の定義に使うメタ文字を一通り紹介したので、いろいろ組み合わせて具体的な書き方を紹介します。

[a-z] 英字
[0-9] 数字
[a-z0-9] 英数字
a.c aとcの間に何か1文字ある
^aaa aaaで始まる(最初が一致)
bbb$ bbbで終わる(最後が一致)
[abc] aかbかc
aaa|bbb aaaまたはbbb

しれっと新しいメタ文字を入れてしまいましたが、-(ハイフン)は、上記のように範囲を指定するときのメタ文字です。
(ここじゃないと説明しづらかったので…)

繰り返しの指定で使うメタ文字

さて、残りのメタ文字は繰り返しの指定だけです。
正規表現では、文字列の定義と「それがどれくらいあるか?」を組み合わせて使うことが多いので、まとめて紹介します。

0回以上の繰り返し
? 0回か1回の繰り返し(1つあるかも)
+ 1回以上の繰り返し(1つは必ずある)
{数字} 繰り返し回数を数字で指定

{}(波括弧)は少し使い方が難しいので、いくつか例を挙げます。

  • {1,} 1回以上
  • {1,3} 1回から3回
  • {,3} 3回以下

と、このように,(カンマ)区切りで数字を入れることで繰り返し回数を指定します。

繰り返しの指定でよく使う書き方

ここまでで、正規表現で良く使うメタ文字を一通り紹介したので、組み合わせてみると下記のような指定が可能になります。

[a-z0-9]+ 英数字の1文字以上の繰り返し
a.*b ab または a何とかb(axb,axxb,axxxb...)
(aaa|bbb|ccc){1,3} aaa か bbb か ccc の繰り返しが1~3回
[abc]{2} a か b か c の繰り返しが2回
[a-z]{,30} 英字の繰り返しが0~30回

それ以外の書き方と注意点

例えば特定の URL を指定する場合には、ここまでの内容で一通り足ります。
ただ、使う頻度が少ないのと難易度が高いので今回紹介していない書き方もあります。

もし正規表現に興味を持っていただけたら、ぜひ検索してみてください。

  1. 最長一致欲張りなマッチ)、最短一致控え目なマッチ
  2. 否定先読み否定後読み肯定先読み肯定後読み

最短一致はテキストエディタでの文字加工で、例えば「行頭から改行まで」を指定したい場合に使うかもしれません。
先読み・後読みは「前に〇〇が来ない」などの指定ができるので非常に便利ですが、対応しているツール等が少なく、プログラム言語などで使う場合が多いと思います。
(たしか Google Optimize では使えた記憶が…)

また、今回紹介した範囲は基本的に大丈夫ですが、ツールや言語により微妙に使える正規表現が異なる場合があります。
例えばGoogle データポータルの CASE 文という構文でも正規表現が使えるのですが、エスケープがバックスラッシュ2つだったりします。
(そして日本語ではなく英語のヘルプにしか書いてない)

同様の理由により \D などのメタ文字に関しても、今回は紹介していません。
もし他のメタ文字も知りたい場合は "正規表現 チートシート" などで検索してみてください。

正規表現サンプル集

さて、ここからはより具体的なサンプルを紹介していきたいと思います。
身近なケースとして、Google アナリティクスで使う場合の例です。

URL 構造のグルーピング

まずは URL 構造のグルーピングに使える正規表現を紹介します。
Google アナリティクスの URL 指定では、ドメインが省略された形で入力するのが注意点です。

ページ
スラッシュで終わる場合 ^/[\?$]
ファイル名が付く場合 ^/index\.html
ファイル名が混在する場合 ^/index\.(html?|php)

スラッシュで終わる場合の書き方は、URL パラメータが付くかどうかを考慮しているので、他のケースでも使える書き方です。

ディレクト
aaa または bbb または ccc /(aaa|bbb|ccc)/
aaa配下のbbb と ccc配下のddd /(aaa/bbb|ccc/ddd)/
aaaが含まれる /[^/]*aaa[^/]*/
3階層目以下全て ^/([^/]+/){2}[^\?$]+
URLパラメータ
パラメータ名で指定 [\?&]○○○=
値で指定 [\?&][^=]+=○○○(&|$)
練習問題

さて、唐突ですが練習問題です。

【問題】
パラメータ名:p の、値:1か20か300を指定せよ(値は数字のみとする)

指定したい文字列 ?p=1, ?p=20, ?p=300, &p=1, &p=20, &p=300
解答例

たぶん私だったら、こんな書き方をすると思います。

?か&の後にp=が来て、1か20か300で終わるか数字以外の文字が続く [\?&]p=(1|20|300)($|[^0-9])

キーワードの表記ゆれ

今まで 英数字と記号ばかり取り扱ってきたので、今度は日本語についてもサンプルを用意してみました。
こちらは Google サーチコンソールを Google アナリティクスに連携しているのが前提です。

単語の表記揺れ (口|クチ|くち)(コミ|こみ)
スペース有り無し 九州\s?ラーメン
練習問題

【問題】
渋谷でラーメンを食べようとしている人が検索するクエリを指定せよ

指定したい文字列 渋谷 ラーメン, ラーメン 渋谷, その他種別
解答例

深読みすると、つけ麺も入れるかもしれません。
このあたりは、サーチコンソールで実際に使われている検索クエリ・キーワードをまとめてから正規表現に落とし込むと良いと思います。

「渋谷」と「ラーメン 〇〇」または「〇〇ラーメン」のいずれかの2回の繰り返し ((渋谷|(ラーメン\s)?(醤油|味噌|塩)(\s?ラーメン)?|つけ(麺|そば))\s*){2}

※ 厳密には、”渋谷 渋谷” や "ラーメン ラーメン" もマッチする正規表現ですが、可能性の低さから無視しています

まとめ

以上、はじめての正規表現入門(超初心者向け)でした。
もし間違っている箇所などあれば、ご指摘お願いします。

それから、Google アナリティクスに特化した正規表現の解説記事は下記で読めますので、興味のある方はご一読ください。
(まわし者ではないです)

www.ray-analytics.com

それでは、またいつか!