先把当时的情况摆出来。抓取统计的主机名一栏出现大量 IP 直连请求,占四成左右,这批请求全部返回 404,www 主机名的抓取量反而在往下掉。
原因不止一个,得分开看。DNS 里有一条 A 记录直接指向源站,蜘蛛按 IP 抓。还有一种是历史外链和采集站存的是 IP 地址,蜘蛛顺着爬过来。
少数情况下是源站没有对 IP 访问做跳转,返回了默认站点。不容易想到的是,SEO 资源只登记了域名,IP 请求全被归到其他。
先按主机名统计 404 的分布
awk '{print $1}' access.log | sort | uniq -c | sort -rn | head
源站对 IP 直连统一跳转到域名
if ($host ~ '^\d+\.\d+\.\d+\.\d+$') { return 301 https://www.example.com$request_uri; }
接着确认解析里没有暴露源站 IP
dig +short www.example.com A
末了在抓取统计里按主机名筛选核对
https://search.google.com/search-console/index
别只看报错消失,验证要多做一步。两周后 IP 主机的抓取占比降到 1% 以下,404 条数同步减少,www 主机名回到原来水平。
容易忽略的是,把源站 IP 暴露在解析里等于给采集和扫描留了入口,能上 CDN 就别让 A 记录直指源站。改动前把原配置备份一份,出问题能马上回滚,这比任何技巧都实用。
