跳至正文
页面 SEO 与结构化数据 · Google SEO

产品图站内正常、单独打开却403:防盗链别误伤图片抓取

// / / 光算科技

产品图在站内能显示,单独打开却返回403,应先比较图片请求的Referer、Cookie、签名和访问主机。公开网页能访问,不代表独立图片URL也允许抓取。防盗链可以保护带宽,但规则若把无来源请求、过期签名或合法爬虫一并拦下,补写Alt和图片站点地图也无法让被拒绝的文件变得可读。

先拿到浏览器真正请求的图片地址

在开发者工具Network里按图片类型筛选,找到产品主图,记录实际请求URL,而不是只复制页面源码中的某个缩略图地址。响应式图片可能从srcset选取不同尺寸,图片优化服务也可能重写格式和域名。检查对象应是失败的那个版本,包括路径、查询参数与重定向目标。

同时查看状态、Content-Type和响应体。有的防护系统把拒绝页面返回为200,图片仍无法解码;有的地址先跳转到短期签名URL,刚打开正常,过期后失败。看到200或一个以.jpg结尾的路径,都不足以证明取得了正确图像。

Google图片最佳实践说明,标准img元素的src有助于发现图片,也支持将CDN上的图片纳入图片站点地图。发现地址与取到文件是不同环节。主图只作为CSS背景,或发现后请求被拒绝,都不能仅靠增加Alt文字解决。

本地产品图演示中,带站内Referer可见零件插画,无Referer请求则实际返回403

本地防盗链教学截图:样例服务器故意拒绝无Referer图片请求;零件为原创示意,不是客户产品照片。

比较三种请求,不猜搜索引擎一定带什么头

先测试无Referer请求,再测试正常站内来源,最后按故障线索测试外部来源。下面命令仅用于有权访问的公开图片,两个输出文件分别保存响应头;不应带入后台Cookie或私有签名。

curl -sS -D no-ref.txt -o image-a.bin \
  'https://images.example.com/part.webp'
curl -sS -e 'https://example.com/products/part/' \
  -D site-ref.txt -o image-b.bin \
  'https://images.example.com/part.webp'

如果第一种403、第二种成功,只能说明这组请求因来源条件出现差异;接下来还要关联实际爬虫日志,不能直接宣布Google所有图片请求都会失败。Referer由客户端和浏览器策略影响,也可伪造,不适合作为私有资料的唯一权限凭据。

还要区分原图抓取、搜索结果中的图片显示,以及访客点击后的加载。不同场景可能有不同来源头。把其中一次成功当作其他全部场景成功,会遗漏真正的问题;反过来,也不能看到外部嵌入失败就断言图片没有被抓取。

不要把所有防盗链产品说成同一种行为

Cloudflare的Hotlink Protection文档说明,其内置功能在Referer不包含站点域名且不为空时拒绝访问,并表示该功能不影响抓取,但会影响某些外站上的图片显示。这个说明不能推广到你另写的WAF规则、Nginx规则或签名网关。

因此,若使用Cloudflare内置功能却发现空Referer也被拒绝,应继续检查是否还有自定义规则、上游图片服务或应用鉴权。不要一上来就认定是内置开关,也不要按另一家供应商的教程修改不相干的选项。具体支持的文件格式和适用主机,需按当前产品文档及实际规则确认。

如果确实是自定义规则误伤公开素材,可限定公开产品图路径调整。付费下载、客户图纸和私有附件应继续使用可靠权限控制;为SEO开放公共主图,不等于解除全部文件保护。

签名URL与长期公开产品图怎样分工

短期签名适合受控访问,但把很快过期的地址长期写进公开产品页,会增加重复抓取失败的机会。开发可以评估为确实公开的产品展示图提供稳定URL,内部资料仍保留授权下载。不要为了稳定地址而公开原本没有发布权的高分辨率图纸。

若必须采用签名或转换参数,应检查页面缓存寿命与签名有效期的关系:旧HTML缓存仍引用已过期图片时,用户同样会看到破图。修复要覆盖HTML引用、图片服务和边缘缓存,而不是只重新生成一次签名。图片域的robots.txt和X-Robots-Tag也应单独核对。

保留一组可定位到文件的对照样本

样本可以包括主图原始地址、浏览器实际选中的小尺寸地址,以及同目录内一个正常图片。对每个对象保存来源条件、响应状态、类型与是否能解码。原图成功而转换版本失败,通常应继续查图片处理服务或参数规则;同目录只有一个文件失败,则检查文件存在性与单文件权限。

图片文件正常、网页仍显示破图时,再看页面是否引用了旧地址、浏览器是否拦截混合内容,以及懒加载脚本是否真正设置src。不要把所有破图都归到防盗链。若是访问控制问题,也不该用把图改成Base64嵌入来回避根因,这会改变页面体积与缓存方式。

保留样本时避免把签名凭据公开贴进工单。需要展示地址差异,可以遮掉敏感值并在内部受控记录完整请求;对外资料只说明字段类型和有效期条件。

怎样确认修复没有扩大权限

复查公开主图及代表性的响应式尺寸,确认实际图像能够解码,站内加载正常,无来源测试符合既定公开策略;同时检查私有路径仍需授权。再从真实访问日志观察已确认爬虫的请求,必要时按Googlebot身份验证方法排除伪装UA。

光算的谷歌SEO服务可按项目把图片抓取检查与网站技术建议结合。对产品搜索有帮助的工作,是让公开素材可被发现、取得并准确理解。能访问图片只是基础条件,不能据此保证Google Images的位置,也不能把本地测试截图当成真实搜索展示成果。