リンクビルディングの大半はリサーチです。アウトリーチのメールを1通送る前に、誰かが見込み先を検索し、本物のパブリッシャーとリンクファームを見分け、誰が競合にリンクしているかを調べ、後日、設置されたリンクがすべて残っているかを確認しなければなりません。数十サイトなら手作業で済みます。数千サイトになると、CAPTCHA、レート制限、国によって異なる結果に突き当たります。そこで役立つのがレジデンシャルプロキシです。
このガイドでは、リンクビルダーが自動化する4つのリサーチ業務、それぞれで収集すべきデータ、そしてデータを完全かつ正確にするためのプロキシの設定方法を解説します。
リンク調査が壁に突き当たる理由
オフィスの1回線からリンク調査を拡大すると、2つの問題が起こります。
量。 1回の見込み先調査で数百件の検索クエリを実行し、それぞれに複数ページの検索結果があり、さらに各結果を取得して評価することもあります。Googleは同じIPから繰り返される自動クエリに対して「通常と異なるトラフィック」ページを返し、多くのパブリッシャーサイトは高速で繰り返される訪問にチャレンジを表示するボット対策の背後にあります。調査は止まるか、さらに悪いことに、そのまま続行してチャレンジページを本物の結果として記録してしまいます。
所在地。 検索結果はローカルです。「guest post」とトピックを組み合わせたクエリでも、米国、ドイツ、インドでは異なるサイトが表示されます。また、地域のビジネスには地域のサイトからのリンクが必要です。自国から検索すると、自国の市場しか見えません。所在地によって結果がどれほど変わるかは、ローカライズされたGoogle検索結果に関するガイドで解説しています。
国ターゲティング付きのローテーションするレジデンシャルIPなら、両方を解決できます。各リクエストは選んだ市場の異なる家庭用回線から送信されるため、その地域の一般的な検索ユーザーに見えます。
業務1:検索フットプリントによる見込み先調査
ほとんどの見込み先リストは、フットプリントと呼ばれる検索演算子から始まります。これを使うと、寄稿やリンクを受け入れる可能性が高いページを見つけられます。
- ゲスト投稿の対象には
"write for us" + topicとintitle:"guest post" + topic。 - リソースページには
inurl:resources + topicとintitle:"useful links"。 - 製品が掲載されそうなまとめ記事やリスト記事には
"best tools for" + topic。 - 競合のブランド名から競合自身のドメインを除外したもの。競合に言及していて、あなたにも言及してくれそうなページが見つかります。
収集すべき情報: 結果のURL、タイトル、掲載順位、その結果を見つけたクエリ。各結果とともにクエリを保存しておくと、どのフットプリントが良い見込み先を生むかを後で確認でき、効果のないものを外せます。
プロキシの設定: リクエストごとにIPをローテーションし、リンクを獲得したい市場の国をターゲットにします。各ワーカーは低速に保ち、高速なワーカー1つではなく複数を並行して実行します。検索結果ページを保存する前に、それが同意画面やCAPTCHAではなく、本当に検索結果ページであることを確認してください。
業務2:見込み先の評価
2,000件のURLからなる未加工のリストのうち、メールを送る価値のあるサイトは200件程度かもしれません。各サイトを取得してスコアを付ければ、手作業によるレビューの大部分を省けます。
サイトごとに収集すべき情報:
- サイトが稼働していて、通常のページを返すかどうか。
- 対象としている言語と国(
lang属性、hreflangタグ、通貨、住所)。 - ブログのインデックスやサイトマップの日付から見て、最近コンテンツを公開しているかどうか。
- リンクファームの兆候:無関係な数百のトピック、「スポンサー記事」の料金表、すべての発リンクにsponsoredが付いている。
- 公開されていれば、問い合わせページまたは編集部のメールアドレス。
プロキシの設定: リクエストごとにローテーションします。ほとんどのパブリッシャーサイトは小規模でブロックしませんが、リストにある大手メディアサイトはブロックすることが多く、チャレンジページが「稼働中のサイト」として評価されるとリストが台無しになります。ブロックされたコンテンツや偽のコンテンツの見分け方に関するガイドでは、そうしたレスポンスをデータに入る前に検出する方法を紹介しています。
業務3:競合の被リンク調査
被リンクツールは、誰が競合にリンクしているかを教えてくれます。しかし、そのページが今日もリンクしているか、アンカーテキストや周囲の段落が現在どうなっているか、そのリンクがfollowかどうかまでは教えてくれません。
被リンクツールから競合の参照元ページをエクスポートし、各ページを自分で取得して次の項目を記録します。
- リンクがまだページ上にあるかどうか。
- アンカーテキストと
relの値(nofollow、sponsored、ugc、またはなし)。 - ページ自体がインデックス可能かどうか:robots metaタグにも
X-Robots-Tagヘッダーにもnoindexがなく、canonicalが自身を指していること。
まだリンクしていて、followで、インデックス可能なページこそが最良の見込み先です。そのパブリッシャーは、あなたのようなサイトにリンクすることをすでに示しているからです。
プロキシの設定: リクエストごとにローテーションし、地域のニュースサイトのように所在地によってコンテンツが変わる場合は、リンク元サイトの国をターゲットにします。
業務4:獲得したリンクの確認
設置されたリンクは消えていきます。ページはリニューアルされ、記事は非公開になり、支払い後にこっそりnofollowを追加したり、リンクをリダイレクトに切り替えたりするパブリッシャーもいます。クライアントのためにリンクを獲得しているなら、毎月の確認は業務の一部であり、クライアントが最も注意深く読むレポートでもあります。
小さなスクリプトでほとんどをカバーできます。次のスクリプトは、ローテーションするレジデンシャルIPを経由してページを取得し、自分のドメインへのリンクがあるかどうか、そのrelの値、ページがインデックス可能かどうかを報告します。
import requests
from html.parser import HTMLParser
PROXY = "http://customer-USERNAME-country-us:PASSWORD@p.shifter.io:443"
PROXIES = {"http": PROXY, "https": PROXY}
class LinkFinder(HTMLParser):
def __init__(self, domain):
super().__init__()
self.domain = domain
self.links = []
self.noindex = False
def handle_starttag(self, tag, attrs):
a = dict(attrs)
if tag == "a" and self.domain in (a.get("href") or ""):
self.links.append({"href": a["href"], "rel": a.get("rel", "")})
if tag == "meta" and (a.get("name") or "").lower() == "robots":
self.noindex = "noindex" in (a.get("content") or "").lower()
def check(page_url, domain):
r = requests.get(page_url, proxies=PROXIES, timeout=30,
headers={"User-Agent": "Mozilla/5.0"})
finder = LinkFinder(domain)
finder.feed(r.text)
header = r.headers.get("X-Robots-Tag", "").lower()
return {
"status": r.status_code,
"links": finder.links,
"indexable": not finder.noindex and "noindex" not in header,
}
print(check("https://example.com/some-guest-post", "yourdomain.com"))
設置済みリンクのリストに対して実行し、前月の結果と比較して、3つの変化にフラグを立てます。リンクが消えた、relの値が変わった、ページがインデックス不可になった、の3つです。リンクが失われたと報告する前に、レスポンスがチャレンジではなく本物のページであることを確認する処理を加えてください。
プロキシの設定: リクエストごとにローテーションし、所在地によって異なるコンテンツを表示するサイトでは、パブリッシャーの国をターゲットにします。
ローテーションとターゲティングの選び方
| 業務 | ローテーション | ターゲティング |
|---|---|---|
| 検索による見込み先調査 | リクエストごと | 市場の国、ローカルSEOなら都市 |
| 見込み先の評価 | リクエストごと | 通常は不要 |
| 競合のリンク確認 | リクエストごと | 所在地によってコンテンツが変わる場合は国 |
| 設置済みリンクの確認 | リクエストごと | 所在地によってコンテンツが変わる場合は国 |
地元の都市のサイトからリンクが必要な歯科医院や法律事務所のようなローカルのリンクビルディングでは、見込み先調査の段階で都市ターゲティングが最も重要になります。ローカルの検索結果は検索ユーザーの所在地に基づいて順位付けされるためです。SEOモニタリングのページでは、チームが同じネットワーク上で順位トラッキングと並行してこうした確認を行う方法を紹介しています。
クリーンに運用する
ここでのプロキシはリサーチツールであり、それが本来の使い方です。Googleのスパムに関するポリシーは、ランキングの評価を渡すリンクの購入、大規模なリンク交換、自動化されたリンク設置をリンクスパムとして扱います。プロキシは機会を見つけて結果を確認するために使い、リンクは引用に値するコンテンツと誠実なアウトリーチで獲得してください。コメントの投稿、アカウントの大量作成、リンクネットワークの運営には決して使わないでください。
小規模なパブリッシャーサイトではリクエスト頻度を控えめにし、公開ページのみを読み取り、各サイトの利用規約を守ってください。
まとめ
大規模なリンクビルディングはデータの問題です。見込み先を見つけるための数千回の検索、それを評価するための数千回の取得、そして獲得したリンクがまだ機能しているかを確かめるための継続的な確認が必要です。ローテーションと国または都市のターゲティングを備えたレジデンシャルプロキシなら、こうした調査を止めることなく続けられ、各市場を地元の検索ユーザーと同じ視点で確認できます。多数のクライアントのためにこの作業を行う代理店は、クライアントごとに追跡を分けたうえで1つのネットワークにまとめて運用することが多く、その方法は代理店向けのページで紹介しています。