先说清楚:非 HTML 资源也会被索引
很多站点讨论收录时,默认对象是 HTML 页面,但搜索引擎抓取和索引的范围并不限于网页。图片、PDF、Word 和 Excel 文档、压缩包,甚至音视频文件,都可能被抓取。它们的去向不完全一样:图片通常进入图片搜索索引,PDF 和文档类文件则可能进入网页索引,在搜索结果里以一条独立的链接出现,带标题、摘要和跳转地址。
这里有个常见误解要先纠正:图片被收录,不等于它所在的页面被收录;页面没被收录,也不代表页面里链接的那份 PDF 没被收录。两套索引的评估逻辑和刷新节奏不同,排查时不要混在一起看。
它们是怎么被发现的
- 页面里 img 标签的 src 属性、a 标签指向的文件地址,是最主要的入口;
- XML sitemap 中列出的文件地址,图片类资源还有专门的扩展格式;
- 外链直接指向文件本身,例如别人引用你网站上的某份报告;
- CDN 或静态目录被意外开放了目录浏览,导致文件被成批遍历。
被发现之后,是否被抓取取决于链接位置、文件大小、抓取预算和服务器响应速度。文件体积越大,抓取成本越高,排队时间也越长。
什么情况下值得管
不是所有文件都需要处理。先做一次分类,大致可以分成三组。
- 应该被搜到的:产品手册、公开报告、说明书。这类文件本身就是内容资产,收录是好事,只需要保证链接形式统一、文件可访问、标题等元数据能看懂。
- 无所谓也不碍事的:装饰性图片、图标、页面背景图。它们进图片索引通常没什么影响,除非数量巨大或被大量重复引用。
- 不该公开出现的:旧版报价单、内部培训材料、测试用演示文件、带客户信息的表格。这类才是真正需要收口的对象。
判断顺序建议是:先确认文件是否应该公开,再确认它是否应该出现在搜索结果里,最后才处理多个地址指向同一文件的问题。顺序颠倒,很容易把精力花在无关紧要的图标上。
收口手段与各自边界
robots.txt
Disallow 能阻止抓取,但它不负责把已经索引的地址移除。已经被收录的文件,即使之后被禁止抓取,搜索结果里仍可能保留那条链接,只是摘要和快照会逐渐失效。要真正清掉,通常需要配合文件本身返回错误状态码。
X-Robots-Tag 响应头
这是非 HTML 文件少数可用的 noindex 手段之一。它在 HTTP 响应头里生效,对 PDF 等文件通常有效,但支持程度和生效速度不如 HTML 的 meta robots 稳定。关键一点:不要以为把 noindex 写在 HTML 页面的 head 里就能管住那份 PDF,两者根本不是同一个文件。
替换、删除与状态码
对过期文件,最干净的做法是从服务器上撤回文件,让地址返回 404 或 410。对仍有价值但内容已更新的文件,直接在同一地址替换新版本,比新增一个带年份后缀的副本更好——后者会长期累积成一批内容相近的旧文件,既占抓取资源,也容易让用户在搜索结果里点进过时版本。
统一链接形式
同一份 PDF 常出现多个地址:主站域名、CDN 域名、带追踪参数的下载链接、大小写不同的路径。这些都会被各自抓取和索引。收口方式是站内只引用一个地址,下载入口不要拼接无关参数,避免把 CDN 域名直接暴露在页面链接里。
经验上,非 HTML 资源的问题很少是「被发现得太少」,更多是「被发现得太杂」。先把同一文件的多个地址收敛成一个,再谈要不要收录。
怎么观察
- 用 site: 查询加文件后缀,看看哪些文件进了索引,标题和摘要被显示成什么样;
- 在抓取日志里筛出文件类请求,看抓取频率和响应码,判断有多少抓取被大文件占掉;
- 对比服务器上的实际文件清单与索引里的地址,找出文件已经删除但索引仍在的那批。
观察的重点不是数量,而是那些既不该公开、又确实能被搜到的文件。这类问题一般不会自己消失,只会随着时间被更多人搜到。