新闻站每天发几十篇稿子,后台显示XML站点地图提交成功,Search Console里却有一半页面长期未被收录。先建立一个基本判断:地图提交成功,只表示Google收到或处理了这份URL清单,不代表每个页面已经抓取、索引或获得排名。排查时分三层走:地图文件能不能读,清单里的页面能不能正常访问,Google愿不愿意收录该页面。
第一层:地图文件本身能不能读
直接在浏览器打开所提交的最终地图URL,看返回的是不是正常XML。如果看到的是验证码、登录页或HTML错误页,说明提交的地址根本不可用。再到Search Console的站点地图报告里,区分无法抓取、解析错误和处理成功三种状态,处理成功才进入下一层。
清单内容要符合四条:使用完整绝对URL,协议、主域、大小写与真实规范地址一致;只列希望被索引的规范页面,跳转、404、明确noindex的页面不要长期留在清单里;按XML规则转义字符,例如URL查询串中的&在XML源码里要写成&;单个地图最多50,000个URL、未压缩不超过50MB,超了就拆分并用地图索引组织。新闻站稿量大,最容易踩的是超量不拆分,以及lastmod被程序写成每次请求都是当前时间。lastmod要反映页面真实重要更新,填更高值不会获得优先收录保证,Google会忽略priority和changefreq这类字段。
如果CMS生成过多份地图,先辨认当前有效来源,避免一边提交新清单,一边仍在robots.txt或插件里暴露旧地址。地图读取时间较旧,也不能单独证明发生了故障。
第二层:地图可读,代表页面能不能抓
从未收录清单里选不同类型的代表URL,不只测首页。逐个检查最终HTTP状态、重定向链、robots.txt、页面robots标签、X-Robots-Tag、canonical,以及正文是否需要登录或依赖加载失败的脚本。403或挑战页先定位CDN、WAF或源站访问规则;持续5xx先恢复服务稳定性;误设noindex要在确认发布意图后修正,再检查最终公网响应;canonical指向别页的,先核对是否有意合并,再统一内链、地图和规范声明;状态200但主内容为空的,检查渲染、接口和资源,不能只看状态码。
注意robots.txt禁止抓取和noindex是两种控制。如果Google不能抓取页面,就可能读不到页面上的noindex或canonical,不要把几种指令叠加后期待它们按想象生效。
第三层:能抓不收录,看页面值不值得收
地图可读、页面可抓,但Google仍可能选择不收录。新闻站常见原因有三类:大量转载、洗稿或低差异快讯,内容与其他已收录页面区分度不足;聚合页、标签页与正文高度重复,Google只保留代表页;时效已过且无后续更新的老稿,重要性自然下降。这类问题不在地图层解决,要回到内容取舍:合并重复、补强独家信息、给有时效的稿件明确的更新或归档策略。
也不要用一次site查询的估算数量判定整站收录,site结果只是估算。判断收录看Search Console的网页索引报告和网址检查,按代表URL逐个确认。
修完怎么确认:按代表URL复验
修复后保留改了什么、改了哪批URL、上线时间。等Google重新抓取后,用同一批代表URL复验:地图报告状态、HTTP与索引指令、索引报告覆盖情况。收录是逐页发生的,新稿先被收录不代表老问题已解决。完整的地图规则、转义细节与三层排查表,可以对照XML网站地图提交后为何仍不收录的三个原因逐项核对。