为什么建议每周翻一次访问日志
后台统计工具给的是抽样后的结果,服务器访问日志给的是原始流水。当你想确认某个新栏目有没有被蜘蛛发现、改版后的旧地址是不是还在被反复请求、某天流量骤降是真人少了还是抓取少了,只有日志能对得上号。建议把它当成一项常规自查,每周固定看一次,不用很细,先看趋势。
先认人:哪些请求是真的搜索引擎蜘蛛
日志里的 User-Agent 可以随便伪造,只凭“Baiduspider”这几个字判断并不靠谱。做自查时至少再看一眼来源 IP:把可疑 IP 做一次反向解析,看域名是否落在搜索引擎官方公布的网段里。常见的假蜘蛛有两类:一类是采集工具伪装 UA 大量抓取正文,会明显拉高带宽;另一类是扫描器在探测后台路径,会在日志里留下一串 404 或 403。
- 同一 IP 短时间内请求成百上千个不相关地址,多半不是蜘蛛;
- 只请求登录页、配置文件、备份包这类路径的,是扫描器;
- 反向解析不出官方域名,但 UA 写着蜘蛛的,先按可疑处理。
看抓取频次和状态码分布
把日志按天聚合,统计蜘蛛请求总数、独立 URL 数和状态码分布,三个数字放一起看,问题往往自己就冒出来了。
状态码能说明的事
- 3xx 占比高:说明站内跳转链太长,或某个入口一直在重定向,蜘蛛每次都要多走一步;
- 4xx 集中在某些路径:说明这些地址已经下线但还有内链或外链指着它,需要清理或做跳转;
- 5xx 偶发:多半是超时或数据库压力,抓取高峰时段尤其要留意,连续 5xx 会让蜘蛛降低抓取频次;
- 200 但内容雷同:例如搜索页、筛选页被大量抓取,属于在浪费抓取预算。
URL 发现:日志和站点地图对照着看
很多人只盯着站点地图里提交了多少条,却不去看蜘蛛实际抓了什么。更有效的做法是反向对照:把日志里蜘蛛抓取过的 URL 去重,和站点地图、以及站内实际存在的链接比一比。
- 导出最近 7 天蜘蛛抓取的 URL 列表并去重;
- 按目录前缀分组,看哪些栏目几乎没被抓过;
- 检查这些栏目是否入口太深、内链太少,或者被 robots.txt 挡住;
- 再看有没有大量从没在站内出现过的地址被抓,如果有,通常是外链或历史遗留地址。
这份对照表比任何工具报表都直观:哪个栏目是“蜘蛛没发现”,哪个是“发现了但没抓”,哪个是“抓了但没留”,基本能分清楚。
把发现的问题落成待办
日志自查的产出不该只是一份截图,而应该是几条具体动作。比如:给入口过深的栏目补内链、把已下线的旧地址做 301、在 robots.txt 里排除参数化筛选页、给响应偏慢的接口加缓存。做完之后隔一到两周再翻一次日志,看看对应路径的抓取次数和状态码有没有变化,才算闭环。
提醒一句:日志只能告诉你蜘蛛来过、抓了什么、拿到了什么状态码,它不能保证收录,也不能保证排名。把它当作发现问题的手段,而不是考核指标,心态会平稳很多。
顺手要做的几件小事
- 日志按天轮转并保留至少 30 天,方便回看改版前后的差异;
- 给日志目录设置不可通过 URL 直接访问,避免暴露整站抓取记录;
- 对明显异常的 IP 段做限速或封禁,但要留白名单,别误伤真蜘蛛;
- 做表格化记录,每期只填几个关键数字,长期看趋势才有意义。