画像検索はそれ自体が独立した検索チャネルです。買い物客は商品ページを読む前に商品写真を閲覧し、デザイナーは参考画像を探し、うまく配置された画像はテキスト結果では得られない訪問者をもたらすことがあります。同時に、画像検索はブランドが許可していないサイトで自社の商品写真を発見する場でもあります。
どちらの用途も同じものを必要とします。重要な市場から、信頼性高く、大規模に収集された画像検索結果です。Google Images と逆画像検索をカバーするSERP APIは、こうした結果を構造化データに変換します。本ガイドでは、チームがそれを何に使っているか、どう収集すればよいか、そして最もよく行われる2つの分析のためにテスト済みの小さなヘルパー集を紹介します。
画像検索データの2種類
| 検索 | 送信するもの | 得られるもの | 典型的な用途 |
|---|---|---|---|
| 画像検索 | ”oak standing desk” のようなクエリ | そのクエリに対してGoogleが表示する画像と、その出所のページ | 可視性のトラッキング、コンテンツリサーチ |
| 逆画像検索 | 画像のURL | 同じ画像を掲載しているウェブ上のページ | 複製の発見、ライセンスおよびブランドチェック |
画像検索は「この語で誰が表示されるか」に答えます。逆画像検索は「この画像はどこに掲載されているか」に答えます。ほとんどのプログラムは両方を使用します。
チームがそれを何に使っているか
画像SEOと可視性。 自社の商品用語で上位の画像結果を占めているのはどのサイトか、そのスペースのうちどれだけが自社のものか、画像ファイル名、alt テキスト、ページの文脈、構造化データを改善した後にそれがどう変化するか。これは通常のランクトラッキングの画像版であり、SEOモニタリングと同じ規律が当てはまります。
コンテンツおよび市場リサーチ。 あるカテゴリーにどのような画像が表示されるかは、その市場がどのスタイル、アングル、商品に反応するか、そしてどの競合がビジュアルコンテンツに投資しているかを教えてくれます。
ブランド保護とライセンス。 逆画像検索は、ライセンスを受けていないサイトに掲載された商品写真やマーケティング画像、すなわち偽造品の出品、スクレイピングされたカタログ、無許可の再販業者を見つけます。これはブランド保護業務の中核的なインプットであり、証拠収集の出発点です。それらを見つけた後に何をすべきかは、偽造品出品からの法廷対応可能な証拠に関するガイドで扱っています。
ビジュアルデータパイプラインへの供給。 小売、不動産、デザインの各チームは、参考セットを構築し、市場ごとに商品がどう提示されているかを比較するために画像結果を収集します。
うまく収集する方法
ロケーションを固定する。 画像結果はウェブ結果と同様に、国や都市によって異なります。すべてのリクエストでロケーションを明示的に設定し、実行ごとに同じ値を保ってください。ローカルSEOのための地理ターゲティングSERP APIに関するガイドで、ロケーションパラメータがなぜそれほど重要なのかを説明しています。
クエリセットを安定させる。 毎回同じ語をトラッキングし、変化が結果を反映したものであり、入力の変化ではないようにします。
生のレスポンスを保存する。 各実行の全結果を、時刻と設定とともに保管し、後で発見を再確認したり分析を再実行したりできるようにします。
適切な頻度で収集する。 画像結果は価格よりもゆっくり変化します。可視性のトラッキングには週次で十分です。ブランド保護のための逆画像チェックは、新しい画像をローンチ時に行い、その後は月次で行うことが多いです。
不要なものはダウンロードしない。 可視性とブランドチェックの目的では、通常ページのURLと順位で十分です。すべての画像ファイルを取得することは、インサイトを増やすことなくトラフィックとストレージを増やすだけであり、画像はその所有者に帰属するものです。
ヘルパー
以下のモジュールは、両方の検索のためのリクエストパラメータを構築し、ほとんどのチームがまず始める2つの分析、すなわちクエリごとの可視性シェアと、逆画像検索における無許可ホストの特定を実装します。APIレスポンスから各結果の順位とページURLを、下記のシンプルなレコード形式にマッピングしてください。分析はプロバイダーが返すフィールドが何であっても同じように機能します。
from collections import Counter
from urllib.parse import urlparse
def image_search_params(query, location, api_key="YOUR_API_KEY"):
"""One Google Images search, as seen from `location`."""
return {"engine": "google_images", "api_key": api_key, "q": query, "location": location}
def reverse_image_params(image_url, api_key="YOUR_API_KEY"):
"""Pages that host a given image."""
return {"engine": "google_reverse_image", "api_key": api_key, "image_url": image_url}
def domain(url):
host = urlparse(url).netloc.lower()
return host[4:] if host.startswith("www.") else host
def visibility(results, top=20):
"""Share of the top image results each website holds, per query.
results: [{"query": ..., "position": 1, "page_url": ...}] mapped from the API response.
"""
shares = {}
for query in sorted({r["query"] for r in results}):
rows = sorted((r for r in results if r["query"] == query), key=lambda r: r["position"])[:top]
counts = Counter(domain(r["page_url"]) for r in rows)
shares[query] = {d: round(c / len(rows), 2) for d, c in counts.most_common()}
return shares
def unauthorised_hosts(hosting_pages, allowed_domains):
"""Pages hosting your image on a domain you have not licensed it to."""
allowed = {d.lower() for d in allowed_domains}
return sorted({domain(u) for u in hosting_pages} - allowed)
説明用の結果で実行した例(実在のサイトではありません):
from images import unauthorised_hosts, visibility
results = [ # illustrative results for one query, mapped into the shape above
{"query": "oak standing desk", "position": 1, "page_url": "https://www.ourshop.com/desks/oak"},
{"query": "oak standing desk", "position": 2, "page_url": "https://bigmarket.com/item/123"},
{"query": "oak standing desk", "position": 3, "page_url": "https://ourshop.com/blog/setup"},
{"query": "oak standing desk", "position": 4, "page_url": "https://designmag.com/home-office"},
]
print(visibility(results))
hosting = ["https://ourshop.com/desks/oak", "https://authorised-dealer.com/oak",
"https://cheapdesks.biz/listing/77"]
print(unauthorised_hosts(hosting, allowed_domains=["ourshop.com", "authorised-dealer.com"]))
{'oak standing desk': {'ourshop.com': 0.5, 'bigmarket.com': 0.25, 'designmag.com': 0.25}}
['cheapdesks.biz']
このクエリでは、ストアは2つの自社ページにまたがって上位画像結果の半分を占めており、これは強い位置づけです。逆画像チェックでは、ブランドが一度も許可していないドメイン1件で商品写真が見つかっています。
可視性レポートは市場ごとに週次で実行し、ストアのシェアの推移を観察してください。逆画像チェックは新しい商品写真ごとに実行し、その後は定期的に行い、報告される新しいドメインごとに確認してください。
結果を注意深く読む
- 画像結果はテキスト結果よりも変動が大きいです。 レイアウトやパーソナライゼーションの小さな変化が順位を入れ替えることがあります。単発の変化ではなく、複数回の実行にわたる傾向に基づいて行動してください。
- 複製が常に侵害であるとは限りません。 正規の再販業者、報道記事、自社が出品しているマーケットプレイスはいずれも自社の画像を掲載します。許可リストを最新に保ち、行動する前に新しいドメインを確認してください。
- 可視性はトラフィックではありません。 上位の画像結果は、その背後にあるページが関連性を持つ場合にのみクリックを得ます。画像の可視性は自社のアナリティクスと組み合わせてください。
画像検索は、ほとんどのチームがすでにトラッキングしている他のGoogleサーフェスと並ぶものです。SEOプラットフォームがどのようにSERP APIを使っているかの概要ではウェブ結果を、Google Shopping APIに関するガイドでは商品リスティングを扱っています。
FAQ
Google Image Search APIとは何ですか?
あなたに代わってGoogle Imagesの検索を実行し、その結果を構造化データとして返すサービスです。あるクエリに対して表示される画像とその出所のページを、選択したロケーションから見た通りに返します。
ビジネスにおいて逆画像検索は何に使われますか?
主に画像がオンライン上のどこに掲載されているかを見つけるために使われます。商品写真の無許可の複製、偽造品の出品、スクレイピングされたカタログ、ライセンス条件の範囲外でのライセンス画像の使用などです。
画像検索結果はどのくらいの頻度でトラッキングすべきですか?
ほとんどの市場では、可視性トラッキングには週次で十分です。ブランド保護では、新しい画像が公開された時点でチェックし、その後は月次で、頻繁に複製される商品についてはより高い頻度で行います。
画像をダウンロードする必要がありますか?
通常は必要ありません。可視性とブランド保護の目的では、ページのURLと順位で十分です。画像のダウンロードはトラフィックとストレージを増やし、ファイルはその所有者に帰属するものです。
結論
画像検索データは2つの問いに答えます。重要な語で誰が可視化されているか、そして自社の画像がどこに掲載されているか、です。ロケーションとクエリセットを固定して収集し、生の結果を保管し、各実行を可視性シェアと新しい掲載ドメインのリストに変換してください。時間をかけてトラッキングすれば、この2つのレポートによって、自社の画像SEOがうまく機能しているかどうか、そして自社の写真が無許可で使用されている場所がどこかが分かります。