图片搜索本身就是一条独立的搜索渠道。购物者在阅读产品页面之前会先浏览产品图片,设计师会寻找参考图像,而一张位置得当的图片带来的访客,是文字结果永远无法带来的。与此同时,图片搜索也是品牌发现自己的产品照片出现在未经授权网站上的途径。
这两种用途需要的是同一样东西:从相关市场中可靠、规模化地采集图片搜索结果。一个覆盖 Google Images 和反向图片搜索的 SERP API 可以把这些结果转化为结构化数据。本指南介绍了团队使用它的方式、如何做好采集工作,以及针对两种最常见分析场景的一组经过测试的辅助工具。
两种图片搜索数据
| 搜索 | 你发送的内容 | 你得到的内容 | 典型用途 |
|---|---|---|---|
| 图片搜索 | 一个查询词,例如 “oak standing desk” | Google 为该查询展示的图片,以及这些图片的来源页面 | 可见度追踪、内容研究 |
| 反向图片搜索 | 一个图片 URL | 网络上托管相同图片的各个页面 | 查找复制内容、授权和品牌核查 |
图片搜索回答的是”谁在这个词上出现?“。反向图片搜索回答的是”这张图片出现在哪里?“。大多数项目两者都会用到。
团队的使用场景
图片 SEO 与可见度。 哪些网站占据了你产品词的图片搜索结果头部位置,你自己占据了多少份额,以及在改进图片文件名、alt 文本、页面上下文或结构化数据之后,这些情况如何变化。这是普通排名追踪在图片领域的对应版本,与 SEO 监控 遵循相同的原则。
内容与市场研究。 某个品类出现的图片可以告诉你市场对哪些风格、角度和产品有反应,以及哪些竞争对手在视觉内容上投入较多。
品牌保护与授权。 反向图片搜索可以找到从未获得授权却使用了你的产品照片和营销图片的网站:假冒商品列表、被抓取的产品目录以及未经授权的转销商。这是 品牌保护 工作的核心输入,也是证据链的起点;我们关于 针对假冒商品列表的可呈堂证据 的指南介绍了发现这些情况后该怎么做。
为视觉数据管道提供数据。 零售、房地产和设计团队会采集图片搜索结果,用于建立参考集,并比较产品在不同市场中的展示方式。
做好采集工作
固定地理位置。 和网页搜索结果一样,图片结果也会因国家和城市而异。在每个请求中明确设置位置,并在多次运行之间保持一致。我们关于 面向本地 SEO 的地理定位 SERP API 的指南解释了地理位置参数为何如此重要。
保持查询集稳定。 每次追踪相同的词,这样变化反映的是结果本身,而不是你输入的差异。
保存原始响应。 保留每次运行的完整结果,连同时间和设置一起保存,这样你之后可以重新核查某个发现或重新运行分析。
以合理的节奏采集。 图片结果的变化比价格慢得多。对于可见度追踪,每周一次就足够了;出于品牌保护目的的反向图片检查通常在新产品上线时进行一次,之后每月进行一次。
不要下载不需要的内容。 对于可见度和品牌核查而言,页面 URL 和排名位置通常就已足够。抓取每一张图片文件只会增加流量和存储开销,却不会带来更多洞察,而且图片归其所有者所有。
辅助工具
下面的模块构建了两种搜索的请求参数,并实现了大多数团队入门时常用的两种分析:每个查询的可见度份额,以及反向图片搜索中未经授权的托管网站。将 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']
对于这个查询,该商店在两个不同页面上占据了头部图片结果的一半,这是一个很强的位置。反向图片检查发现该产品照片出现在一个品牌从未授权过的域名上。
每周针对每个市场运行一次可见度报告,并随时间观察该商店的份额变化;对每张新的产品照片运行反向图片检查,之后定期检查,并对它报告出的每个新域名进行审查。
谨慎解读结果
- 图片结果比文字结果更不稳定。 布局和个性化设置的微小变化都可能改变排序。应根据多次运行中的趋势采取行动,而不是根据单次变化。
- 出现复制并不总是意味着侵权。 授权的转销商、媒体报道以及你出售商品的市场平台都会托管你的图片。请保持允许列表的更新,并在采取行动前先审查新出现的域名。
- 可见度不等于流量。 只有当图片背后的页面本身相关时,排在前列的图片结果才能带来点击。请将图片可见度数据与你自己的分析数据结合使用。
图片搜索与大多数团队已经在追踪的其他 Google 版块并列存在。我们关于 SEO 平台如何使用 SERP API 的概述介绍了网页结果,而我们关于 Google Shopping API 的指南则介绍了商品列表。
常见问题
什么是 Google 图片搜索 API?
这是一种代你运行 Google Images 搜索并将结果以结构化数据形式返回的服务:包括某个查询展示的图片及其来源页面,所有这些都基于你选择的地理位置。
反向图片搜索在商业中有什么用途?
主要用于查找图片在网络上出现的位置:产品照片的未经授权复制、假冒商品列表、被抓取的产品目录,以及超出授权条款使用已授权图片的情况。
我应该多久追踪一次图片搜索结果?
对于大多数市场的可见度追踪来说,每周一次就足够了。对于品牌保护,新图片发布时进行检查,之后每月检查一次;如果产品经常被盗用,可以更频繁地检查。
我需要下载图片吗?
通常不需要。对于可见度和品牌保护而言,页面 URL 和排名位置就已足够。下载图片会增加流量和存储开销,而且这些文件归其所有者所有。
结论
图片搜索数据回答两个问题:谁在相关词上具有可见度,以及你的图片出现在哪里。用固定的地理位置和查询集进行采集,保留原始结果,并将每次运行转化为一份可见度份额报告和一份新托管域名列表。长期追踪下来,这两份报告就能显示出你的图片 SEO 是否奏效,以及你的照片在哪些地方被未经许可地使用。