谈收录时,多数人只盯着 HTML 页面,但搜索引擎同样会抓取并处理 PDF、图片、Office 文档等非 HTML 资源。这类文件往往藏在内链深处或下载目录里,被收录后的表现与普通页面并不一样,处理方式也不能照搬。
非 HTML 资源是怎么被发现的
文件本身不会自己冒出来,蜘蛛找到它们通常有这几条路径:
- 页面里的 a 标签指向文件,蜘蛛顺着链接抓取;
- sitemap 中列出了文件地址;
- 站外链接直接指向文件;
- 服务器开启了目录列表,整个目录被暴露;
- 文件之间互相引用,比如一份 PDF 里链接另一份 PDF。
其中最容易失控的是后两种。目录列表和文件互链会让一批本不该公开的旧文件被批量发现,而这类地址通常不在任何人的维护清单里。
和普通页面相比,索引里的差别在哪
- 文本主要靠文件本身提取。PDF 若是扫描图片拼成,几乎提不出正文,索引里可用的信息非常有限。
- 标题常取自文件名、文件属性元数据或指向它的链接锚文本,改页面标题那一套在文件上并不成立。
- 展示位置不同。图片多出现在图片搜索,文档可能以文件形式出现在结果里,站点查询不一定能完整列出。
- 被索引不等于文件被镜像,用户点击后仍然下载或在线预览原文件。
理解这些差别,才能判断一个文件被收录后到底有没有价值。
先判断:这个文件该不该被收录
取舍标准其实和页面类似,看它是否对用户有独立价值、是否只有一个可访问地址。
- 该收录的:产品说明书、白皮书、公开模板、价格表、有独立意义的图片。
- 不必收录的:后台导出数据、内部会议纪要、同一文档的多个旧版本、批量生成的缩略图、临时报表。
处理顺序
- 先盘点。用服务器日志看蜘蛛实际抓了哪些文件类型和目录,比凭印象列清单可靠得多。
- 再决定取舍。需要收录的,保证文件有可提取文本、命名清楚、被正文链接引用;不需要的,从源头断开:删链接、合并目录、关闭目录列表。
- 然后处理已进入索引的部分。只删链接往往不够。可以用 X-Robots-Tag 之类的响应头返回 noindex,或对该目录加访问限制。需要注意的是,用 robots.txt 屏蔽抓取并不能让已收录的文件退出索引,因为蜘蛛看不到屏蔽后的内容。
- 最后验证。观察日志中的抓取变化与站点查询结果。索引清理通常滞后于抓取变化,不要期待当天生效。
几个常见误操作
把整个下载目录用 robots.txt 一刀切屏蔽,结果需要被收录的白皮书也一起消失;或者删掉页面链接后就不再过问,旧文件长期留在索引里。
- 文件名全是编号或乱码,索引中显示的标题毫无信息量;
- PDF 是扫描件,正文无法提取,即使收录也没有可用内容;
- 同一份文档每季度更新一版,旧版链接没有撤下,索引里堆着多个版本。
观测与验证
文件类资源的收录变化,通常在站点查询和索引报告里体现得比较粗糙,需要结合服务器日志一起看:蜘蛛是否还在请求这些文件、返回什么状态码、请求量有没有下降。判断时要留出足够时间,避免因为一两天没变化就反复调整策略。
把非 HTML 资源当成站内内容的一部分来管理,先分清哪些该公开、哪些该退出,再按断链、调整响应、看日志的顺序收尾,比单纯依赖某个配置文件更稳妥。