こんにちは。おもデジ!ライブラリのたこなまです。
この前、「検索エンジンの変更点特集」シリーズ第1弾としてGoogleの検索エンジンがアップデートされるよ!という記事を書いたところ、とてもたくさんの反響を頂けました。
ありがとうございますっ(アップデートは2020年11月に英語圏から適用なので、日本はまだまだですね…)
今回はその第2弾。検索エンジンの「変更」ではありませんが、Googleがとある記事を「重複したコンテンツやURL」と判断している方法について紹介したいと思います。
よく、「記事のコピペは検索エンジンの評価を下げるよ」といわれますが、コピペはどのようにして判断されているのでしょうか。
あくまで重複したコンテンツを処理する方法ですが、SEO的にマイナスとなる「記事のコピペ」の判断にも似たような方法が使われているはずです。
なので今回の内容は、Google検索内部の仕組みやブログをやっている方にはとても興味深い内容ですね。
ちなみに今回の記事は、Google の Gary Illyes(ゲイリー・イリェーシュ)氏と John Mueller(ジョン・ミューラー)氏、Martin Splitt(マーティン・スプリット)氏の 3 人が『Search Off the Record』というタイトルで SEO をテーマにしたポッドキャストを配信した時の情報を元にしています。
この記事では、その内容の中から重複コンテンツの処理について語られた場面を簡潔にまとめたものになります。
ではいこう!!
Googleが記事の重複を検出する(コピペを判断する)方法
重複の検出なんて難しい言葉遣いですが、要するにURLはちがうけれど中身が同一のページかどうかを判断するプロセス=コピペを判断する方法です。
この方法では、「同じ」あるいは「ほぼ同じ」とみなしたページたちを、1つのまとまりとして束ねます。
この、URLは違うけれど中身がほぼ同じページを1つのまとまりにまとめる処理(コピペを判断する方法)のことを “Clustering(クラスタリング)” と言います。
Clustering(クラスタリング)のやり方
Clustering(クラスタリング)をやるには、ページ内のテキスト全てをそのまま比較するのではなく、チェックサムという方法を使うそうです。
「チェックサム」というのは、データが同じかどうか(整合性)をみる方法で、「ハッシュ」というデータ変換を行った文字列を比較する方法です。
ハッシュは、データを元の文字数に関わらず一定の文字数に変換する技術で、たとえば「おもデジ」と「おもでじ」と「おもデジ!」、「おもデジ!ライブラリのたこなまです。」を SHA-256 というハッシュの方式を用いてハッシュ変換した文字列は次のようになります。
おもデジ:
b0261009d6043d53333d8426813f32a4cf7d7bd981e29d071552d915aa54d0cc
おもでじ:
64920ab352229c8e5e00b4d903fcbec5b609a7ff226fb82214de3c3e43fa1dbe
おもデジ!:
d2596b823112fe6950d74a8d4f3b8e62b6829198d5679e94a355a9bbdaee338f
おもデジ!ライブラリのたこなまです。:
1946d66832e69fff7c94c6041629bca5cbc94e1e504846578bc66cb22a844ee3
このようにハッシュを使ってデータ変換した文字列は文字数が同じになり、同じ文字列をハッシュ変換すれば出てくるコードは同じになります。
そして反対に、ハッシュ変換の素になる文字が1つでも変わると、出てくる文字列はまったく別のものになります。
で、上のようにハッシュ変換をした文字列にチェックサムを使うことによって長文のページでも労力をかけることなく、ページの文字数に関わらず同じかどうかの比較が出来るわけです。
ちなみに、ページ内のメニューバーなどはちゃんと除外して比較しているそうです。
最終的に、チェックサムが同じかもしくは類似しているURLはClustering(1つのまとまりにまとめられる)されます。Clustering(クラスタリング)の主な流れはこんな感じ。
ただ、ハッシュ変換は素の文字列が1文字でも違うと全く違う文字列が出てきてしまうので、普通のハッシュ変換では「全く同じかどうか」は判断できても「似ているかどうか」は判断できません。
ということで、Googleでは2つのセットがどのくらい似ているかを調べる SimHash というハッシュ方式があり、重複コンテンツの検出にはこれが使われているようです。
分かりやすくまとめると?
専門用語も使って詳しく説明してきましたが、最後に本当に簡単にまとめておきます。
Googleがコピペを判断する方法はずばり、
記事を文字数が一定になる特殊な文字列に変換して、それが似ているかどうかを比較している。
です。
文字が変換される上に一定の文字数になるので、恐らくはコピペの判断基準は「記事の流れの類似性」と「HTMLタグについたclassやIDの名前」なのではないかなあと思います。
最後に参考程度に、Clustering(クラスタリング)された記事の中でのメインページがどう決まるのかについても動画で話していたので、ざっくり紹介しておきます。
Clustering(クラスタリング)されたページのまとまりは正規化される
Clustering(クラスタリング)で1つのまとまりにされたページは、その中から代表となるページを選ばなければいけませんよね。
なぜなら、内容が同じページをいくつも検索結果に出すわけにはいかないから。
正規化は、そのような時にクラスタリングした重複ページのなかから代表となるページを選出するプロセスです。
正規のURL(代表)を選ぶから、正規化と覚えておけば問題はないでしょう。
正規化をするときには、Googleはいくつかのヒントを使っています。例は以下のようなもの。
- 各ページのコンテンツの質
- rel=”canonical”
- リダイレクト
- HTTPS か HTTP か
- サイトマップ
要するにこれらのヒントを元に、どのページが代表にふさわしいかを決めるということですね。
これらのヒントはそれぞれが同じくらいの影響度、重要度ではなく、ヒントごとに異なる影響度が設定されています。
参考までに、リダイレクトはとても強いヒント、HTTPかHTTPSかはリダイレクトに比べれば低めの重要度です。
またrel=”canonical” はかなり重要なヒントとして使われます。
こういったヒントごとの重要度の割り振りは、現在機械学習で行われているそうです。
これについてはより具体的な記事を書いたので、詳しく知りたい方はこちら。
以前は人間が行っていたそうですが、ヒントは数が多いので重要度を付けるといっても簡単ではありませんし、ページの内容ごとに重要度も変わってくるので、機械で行うのは妥当な選択かもしれませんね。
【まとめ】細かい部分より大筋でのコピペを避けよ
いかがだったでしょうか。
今回はGoogleがコピペをなにで判断しているのかについて、Google社員のポッドキャストから役に立ちそうな情報を抜粋いたしました。
とはいえ、そもそもネット上には無数のページがあるので、「こういうものはコピペ」という風に明確な定義を決めることは出来ないのでしょう。
ただ、ポッドキャストでは、記事はいったん別の文字列に変換されているということだったので、コピペの判断には文章の部分ごとではなく、全体的な大筋、脈絡が強く関係している可能性があります。
今回は、そういった処理の一端を知ることが出来たというだけでも役に立ったといえるのではないでしょうか。
日常のサイト運営においてすぐさま役立つ情報ではないかもしれませんが、SEOの知識を深めたり、将来的にブログを続けていく上で参考にしていただければ幸いです。
では今日はここまで。ばいっ