webhack / ウェブ技術が好き

javascriptやcssやHTML5とかサーバーサイド等のウェブ技術全般を好きに書くブログ

SEO対策で大切な被リンクの調査方法と管理方法

f:id:tkosuga:20151112125613j:plain
写真はうちのミーコ。

被リンクの調査方法はあまり変化がなく固定化されています。この記事はその調査方法の要点をまとめたものです。

被リンク情報の取得について

1. Google Search Consoleを使う(旧名:Google Webmaster)

Google Search ConsoleからCSVで被リンクをダウンロードできます。一般的な「被リンク調査」と呼ばれる作業を行う対象がこのCSVファイルです。

CSVファイルの内容は以下2項目です。

  • 被リンクが見つかったページのURL
  • 被リンクをGoogleが検出した日付

今もリンクが残っているのか?アンカーテキストは何か?の情報は含まれませんので、場合によっては検出されたURLにアクセスして必要情報を抽出する必要があります。

この Google Search Console はAPIを公開していますが、APIに被リンクCSVの取得は含まれていません。そのため被リンクCSVの取得は Google Search Console にログインしてからダウンロードする手順が毎回必要です。

2. 被リンクデータベースのAPIを使う

2.1. 被リンクデータベースを使う理由

被リンクデータベースはGoogle検索エンジンと同じようにウェブサイトをクロール・ページを分析抽出してデータベースに蓄積しています。

これらツールを使うメリットは以下の点です。

  • 過去の被リンク情報が取得出来る ※ 過去に存在していた問題のある被リンクをGoogleが無視してくれているとは限りません。
  • Google Search Consoleで見つからない被リンクを見つける事ができる
  • API経由で利用ができツールやアプリケーションに組み込める
  • 被リンクの属性も合わせて取得できる(アンカーテキスト / テキストかどうか / リンク失効日等)

被リンクデータベースはGoogle Search Console の被リンク情報を補完する関係にあります。そのため両方活用すると一歩進んだ被リンク分析が可能です。

2.2. Moz(旧名:SEO Moz)

Mozが提供する被リンク管理ツールOpen Site ExplorerAPIが使えます。ツール単体利用もできますし、APIを使ってアプリケーションに組み込むことが出来ます。

moz.com

2.3. Ahrefs

あまり馴染みのないサービスだと思います。このAhrefsと次に記述するMajesticが被リンク分析で良く使われるサービスです。名前の通り、被リンク解析に特化したサービスを提供しています。

ja.ahrefs.com

2.4. Majestic(旧名:Majestic SEO

Majesticが提供しているSite ExplorerAPIを提供しています。利用方法はサンプルを見てみて下さい。分かりやすいと思います。

http://developer-support.majestic.com/apideveloper-support.majestic.com

2.5 被リンクデータベースのAPIを使った感想

上記3つのAPIを全て使った感想としては、Majecticが最も使いやすくて、次に使いやすいのがAhrefs、Mozは使いづらかったです。

被リンク情報の充実さではMajecticがベスト。次にAhrefs。Mozは少し物足りない感じでした。

被リンクデータベースの自作は大変そうですし何よりも「運用を開始してデータを貯め初めてから3年4年と経過しないと使い物にならない」ため、被リンク分析をする際にはGoogle Search Consoleと今回紹介した3つの中のどれか1つを選択する事になるでしょう。

3. Googleで検索する

URLやドメインをダブルクオーテーション(")で囲って検索すると結構被リンクが見つかります。サテライトサイトやリンク集からのテキストリンクで困っている方はアンカーテキストも合わせて検索して見てください。

被リンクの管理について

1. 被リンクのデータ構造

当然ですが被リンクはURLに向けられています。そのURL先にはページがあり、ページはドメイン以下にあります。

そのため被リンクデータ構造は以下の関係があります。

  • ドメインとページが 1対N の関係。
  • ページと被リンクが 1対N の関係。

2. 被リンク量の計算(例)

上記のデータ構造を元に、管理が必要になる被リンクの量を計算してみます。

1つのドメインに対して1,000ページあり、1つのページに平均100件の被リンクが付いている場合、10万件の被リンクを管理する事になります。

1 × 1,000 × 100 = 100,000

もし上記条件のサイトが10個あれば100万件の被リンクを管理する計算になります。

10 × 1,000 × 100 = 1,000,000

3. 被リンクのドメインとパスの分離と正規化

Google Search Console からダウンロードした被リンクCSVドメインとパスが分かれていないため、URLからドメインを抜き出します。

被リンクデータベースから取得すればドメインとパスを分けて取得できます。

ただしGoogle Search Consoleと被リンクデータベースの両方共に、被リンク情報にサブドメインの有り無しが混ざっている状況があります。

そのため被リンクが向けられているドメインを決めて(大概においてはサブドメイン込み)で被リンク情報を整えます。分かり易く言えば「URLの名寄せ」ですね。

ここで行うのは以下に列挙するような処理です。

  • URLからパスとドメインの分離
  • 日本語ドメインなど国際化ドメインであればピュニコードへの変換
  • パラメーターによっては除外する(GoogleAnalyticsのutm_など)
  • フラグメント(#)は取り除く
  • 相対パスで書かれているURLを絶対パスで揃える(.と..や/と//など)
  • 長すぎるパスは一定の流れで揃える(255文字など)

またページに対するURLエイリアス(同じ物だけど別名)には以下のパターンがあります。

  • フラグメント。URLの#から後ろの部分。
  • Canonical属性。正規化先のURLです。
  • 無視しても良いパラメーター。サイトによりますがGoogleAnalyticsや広告のパラメーターがこれになります。

ちょっと分かり辛いですね。同一なものとして扱うURL例を列挙して見ます。

上記はそれぞれ異なるURLですが、1つの「http://webhack.hatenablog.com/」として扱います。

このURLを適切に正規化するのが意外と骨が折れます。

4. 被リンク情報を統合する

Google Search Consoleと被リンクデータベースから集めたデータを一元化して扱わないと不便なためデータを統一する必要があります。上記で被リンク情報を整えたのはこのためです。

大規模サイトなると100万件以上の被リンクを管理する必要が出てくるかも知れません。そのため差分を追記する設計にします(ぼくはそうしましたが他の方法もあると思います)。

この差分を抽出する仕組みを工夫せずにURLを文字列で一致させるような検索にしてしまうとクエリーが重くなります。またデータベースのインデックスを文字列型で検索されてしまうとパラメーター込みのURL文字列がそのまま使われる事になるためインデックスが作られていても重いでしょう。この部分の高速化が必須になります。

被リンク情報の更新について

1. 被リンク元をクロールした結果で被リンク情報を更新する

問題がありそうなサイトからリンクなのかどうかを判断する、被リンクが残っているか消えているのか情報を更新するには被リンク元をクロールする必要がでてきます。

そのためクローラーを走らせて情報を定期的に更新して行きます。この被リンク情報を更新するクローラーを作るのがこれまた結構大変です。

クローラーの作り方は別の話題なので記事中では割愛します。

問題のある被リンクの探し方

被リンク情報が統合されていて、検索が高速で行えるようになっていれば後はCSVに出力したり問題となるアンカーテキストだけを抜き出すと言った対応が可能になります。

1. SEOキーワードを含んだアンカーテキストを探す

これが多数見つかるとペナルティを覚悟しないといけません。否認ファイルをアップロードしてリンクを無効化するか、被リンク先ページを削除して被リンクを無効化する等の対処方法があります。

2. CSVファイルに出力してExcelで精査する

情報が統合されていれば、それをCSVで出力してExcel上で操作する方が問題点が素早く見つかる事があります。

3. リンクが急増した時期とそのリンク内容を確認する

何も更新していない下層ページに大量のテキストリンクが付き始めたら明らかに変ですよね?自分たちではなく外部から被リンクを付けられている事も稀にですがあります。また今まで多数存在していたテキストリンクが急に消えたらそれも変ですよね?被リンクの増減は重要な確認項目です。

4. 被リンク先の品質を見る

APIによっては被リンクを点数付けして数字で取得できるものがあります(あまり参考にならない数字ですが)。被リンク先をクロールする中でアダルトなキーワードや全く関係ない文章が多いページが多数あった場合、その被リンクはスパムかも知れません。

フッターに他サイト含めテキストリンクが並んでいる場合、それはSEO目的のペイドリンクの可能性が高いので注意が必要です。今はペイドリンクを使っていなくても過去に依頼した個人運営サイトなどではリンクを剥がす手間をかけるメリットもないのでそのまま放置してあるケースがあります。

後は良く話にでる隠しリンクですが、レスポンシブデザイン隆盛になった3年ぐらい前から既に隠しリンクは特に気にしなくても大丈夫です。

5. ネガティブSEO

問題のある被リンクを使って競合サイトの順位を下げる事をネガティブSEOと言います。この行為は業務妨害およびスパムに当たるため普通は行われませんが、気を付けて定期的に怪しいリンクは否認するのが安全ではあります。

ただネガティブSEOが原因で順位が下がったと騒ぎになったり問題になるケースでは、殆どの場合でネガティブSEOは行われていないと思って下さい。ネガティブSEOは隠れて行われる性質上、順位が下がった・上がらない理由に使い易く「可能性としてもしかして」を口にしているだけの事が多かったです。

まとめ。被リンク分析はけっこう大変

被リンク分析する方法の要点を手短にまとめてみました。ぼくは仕事で技術寄りのSEOをしている事もあり1人で全部自作しましたが、普通に考えるとこれをサイト運営者単位で独自に準備するのは無理ですよね。

そのため同様のツールを持っていそうなSEOベンダーやウェブマーケティングベンダーに委託して被リンク分析してもらうのが良いと思います。

Google Search Console から取得できる被リンクの上限数は10万件です。このぐらいであれば何とかExcel等使った手作業で分析が可能かも知れませんが、これが5サイト10サイトあり、しかも毎月継続して分析するとなると、きっと明日から会社に行きたくなくなるでしょう。

スタッフの精神衛生面ともし転職されてしまった場合の採用コストを考えると被リンク分析はツールの力に頼った方がお得です。

さいごに

質問などあればコメント欄にお願いします。直接質問したい方はTwitter宛てに連絡もらえればと思います。terukazu kosuga (@tkosuga) | Twitter

あと、このようなオリジナルのSEO記事を書くとウェブマーケティング系メディアがビックリするぐらいそのまま書き換え・転載して行くので、引用のルールを守って常識的な範疇での利用をお願いします。