用站点查询命令或站长工具看收录时,大多数人只盯着 HTML 页面,把返回的地址一律当成"网页"来读。但只要把结果拉出来按文件类型排一遍,常常会发现里面混着不少 PDF、DOC、XLS、图片、压缩包,甚至是接口返回的 JSON 或 XML。这些地址不是不能出现在索引里,问题在于它们会悄悄影响你对收录状况的判断,也可能占用本该给内容页的抓取额度。
为什么要把文件类型单独分出来
收录数量是一个总数,而总数里混了不同性质的东西,就没法直接下结论。假设某站索引里有 5000 条地址,其中 800 条是产品手册 PDF、300 条是大图、还有几十条是导出报表,真正的内容页其实只有 3900 条左右。如果按 5000 去算收录率、去对比同行,参考意义就打折了。分开看之后,你才能回答"我关心的是哪些页面的收录",而不是笼统的一个数字。
索引里常见的非 HTML 地址
- 产品手册、白皮书、报价单等 PDF 文件,通常是运营或销售直接上传到服务器上的。
- 图片文件,常见于图库站、素材站,或者页面上写死了大图地址而被外链引用。
- 表格、PPT、压缩包等下载资源,尤其在有"资料下载"栏目的站点。
- 接口或数据文件,例如 .json、.xml、.csv,多由前端异步请求暴露,或 sitemap 生成脚本误提交。
- 后台导出的文件、测试文件,比如 /export/、/tmp/、/test/ 目录下的残留资源。
它们是怎么被蜘蛛发现的
常见路径有这么几条:一是这些文件被直接写在页面上做下载链接,蜘蛛顺着 a 标签就进来了;二是 sitemap 里把下载资源也一起提交了;三是文件被外部站点引用,蜘蛛从外链过来;四是服务器开启了目录列表浏览,蜘蛛在某个目录下把所有文件都爬了一遍。还有一种情况是旧版本的静态文件没有清理,仍然能被直接访问。
先别急着屏蔽。要弄清这些文件是"业务需要的下载入口"还是"历史遗留的可访问文件",处理方式完全不同。前者需要考虑替代方案,后者才适合直接挡掉。
核对步骤
- 拉出一份索引地址清单,按扩展名或响应类型分组,统计每类的数量和占比。
- 把非 HTML 类地址和站点目录对照,标出它们属于哪个栏目、由谁上传、是否还有页面链接指向。
- 抽查几条访问一次,看返回的内容是不是真的需要被搜到,还是下载中转或导出的中间产物。
- 确认这些地址是否在 sitemap 里、是否被内链指向、是否有外链在引用。
- 把结论写成一张表:保留、改成 HTML 落地页、加 X-Robots-Tag、robots.txt 屏蔽、直接删除。
怎么处理更稳妥
业务上确实需要提供下载的资源,可以考虑做一个 HTML 落地页来承接搜索流量,把 PDF 只作为页面里的下载链接。这样用户搜到的是一段有说明、有上下文的页面,而不是一个打开就下载的文件。落地页也能承载标题、描述和内链,比裸文件更可控。
不希望出现在索引里的,按这个顺序处理:
- 能删就删。历史遗留的测试文件、导出文件、旧版本资源,直接从服务器清掉最干净。
- 不能删又不想被索引的,用 X-Robots-Tag: noindex 响应头处理。注意 noindex 要能被蜘蛛抓到才生效,所以不要在 robots.txt 里同时屏蔽这些地址,否则蜘蛛根本看不到 noindex。
- 确实不需要抓取的目录,例如后台导出目录、临时目录,用 robots.txt 的 Disallow 挡掉,同时确认没有页面链接继续指向它们。
- 检查 sitemap,把非内容类资源从提交列表里去掉,只留需要被搜索的页面。
- 关闭服务器目录列表功能,避免蜘蛛顺着目录把整批文件爬走。
分开看之后,统计才有意义
按文件类型分完,再回头看收录数据,你会发现几个变化:内容页的收录率可能比之前算的高,也可能暴露出某些栏目其实一条都没被收。抓取日志里的蜘蛛访问,也常常有相当一部分落在这些非 HTML 地址上,把它们挡掉之后,留给内容页的抓取额度往往会宽松一些。
这个动作不大,但能让后面所有的判断建立在同一套口径上。先分清索引里装的是什么,再谈收录够不够、要不要补内容,顺序会顺很多。