蜘蛛抓取的基本單位是 URL,而不是“網頁”。只要某個地址出現在連結、Sitemap 或歷史抓取记錄里,它就有可能進入抓取队列,至于返回的是 HTML、图片還是 PDF,蜘蛛在發起請求前並不预先区分。理解這一点,才能解释為什么服務器日誌里常年出現大量以 /images/、/files/ 開头的請求。
蜘蛛為什么會去抓這些资源
- 頁面渲染需要:图片、样式文件是頁面的一部分。蜘蛛取回 HTML 後,通常還會繼續請求頁面里引用的资源。
- 獨立入口:图片搜尋和文档類结果有自己的索引,一張图、一份 PDF 可能靠自身获得展示机會,而不依赖所在頁面。
- 連結長期存在:附件和下载文件挂在頁面上,連結一直有效,蜘蛛就會按自己的节奏周期性回訪。
被低估的是抓取代價
一次 HTML 請求往往只有几十 KB,而一張原图或一份产品手册可能是几 MB。蜘蛛下载它同样要占用连接、占用服務器带宽,這段時間也和站点能承受的並發是共享的。资源越多、越大、响應越慢,越容易挤占本可以用在正文頁面上的抓取額度。
更常见的情况是:一批附件被反复抓取,狀態碼一直是 200,内容几個月没變,站点却要為此付出持續的带宽和连接開销。
判断标准可以简單化:這個资源被單獨检索到,對用戶有没有意义?有,就给它一條清晰的路;没有,就別让它一直挂在可抓取的地址上。
按價值把资源分成三類處理
第一類:本身就有检索價值的文档
例如产品規格书、白皮书、公開报告。這類文件值得被單獨發現。
- 為它准备一個可讀的落地頁,正文里用清晰的連結指向文件,不要只靠一個图标或按钮。
- 文件地址尽量稳定,避免每次發布都換一個新路径。
- 可以把這類文件放進 Sitemap,並在頁面上标明标题與更新時間。
第二類:頁面必需的图片
- 控制尺寸與格式,避免原图直接輸出到頁面。
- 列表頁用缩略图,詳情頁再给大图,减少整站的平均响應体积。
- 图片的替代文本和周围正文能帮助理解内容,比只给一個文件名更有用。
第三類:没有检索價值的资源
例如纯装饰图、後台導出的临时文件、按日期堆叠的歷史附件、重复的缩略图變体。
- 用 robots.txt 屏蔽對應目錄,代價是這些资源也不會出現在图片或文件類结果里,需要權衡。
- 確認已下线的文件让地址返回 404 或 410,比留着一個空白頁更干净。
- 不要指望用 noindex 来省带宽——蜘蛛仍然要下载文件才能讀到這個信号。
- 對于非 HTML 资源,X-Robots-Tag 响應头同样可以發挥作用。
怎么观察效果
- 在訪問日誌里按扩展名統計請求次數與传輸字节,看看抓取量集中在哪些目錄。
- 挑出被反复抓取、内容長期不變的资源,判断它是否真的需要被單獨索引。
- 检查 robots.txt 是否誤伤了仍在使用的图片或文档目錄。
- 改完規則後,观察一段時間内日誌中该類請求的占比變化,而不是只看某一天的資料。
非 HTML 资源不會因為“不是網頁”就被蜘蛛忽略,它們和普通頁面一样占用抓取配額。把有價值的文档留出清晰入口,把没有检索意义的资源挡在抓取范围之外,通常比單纯追求被多抓一些頁面更有效。