要让百度收录网站,移动端与桌面端的差异检查不能只看页面“能不能打开”。真正影响收录判断的,是两端的可抓取HTML、内容完整性、跳转关系、资源加载和状态码是否一致。建议先用同一URL分别以移动UA和桌面UA抓取,对比返回的HTML与状态码,再决定是修模板、修跳转还是修资源加载。
同一网址在两种设备上表现不同,可能来自多个层面,不要一看到差异就认定是“移动适配问题”。可以按下面顺序定位:
如果移动端返回的HTML里没有正文,只有“请开启JavaScript”或加载动画,百度抓取时可能拿不到有效内容;如果移动端把桌面URL重定向到另一个移动URL,则要确认两个地址之间的对应关系和canonical是否自洽。这里说的是“可能原因”,不是已经定位的原因,必须用抓取结果验证。
最直接的办法,是拿一个具体页面,分别模拟百度移动端和桌面端抓取,比较原始响应。可以执行:
curl -A "Mozilla/5.0 (Linux; Android 10) AppleWebKit/537.36 Mobile Safari/537.36" -I https://example.com/page
curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120 Safari/537.36" -I https://example.com/page
把example.com/page换成待检查页面。先看响应头里的状态码和Location,再看正文HTML。判断标准可以这样定:
如果页面依赖JavaScript渲染,curl看到的可能只是空壳。这时要改用能执行JS的抓取方式,或者查看百度抓取诊断中返回的HTML。不同工具和不同搜索引擎的支持情况不一样,不能拿一个工具的渲染结果直接推断百度一定同样处理。
抓取通过后,再对比会影响百度收录判断的信号。重点不是“看起来一样”,而是“抓取到的HTML里是否一致”。
noindex。桌面端正常、移动端noindex,是常见且容易被忽略的差异。这里要区分“已经定位的原因”和“可能原因”。例如移动端正文缺失,可能是服务端按UA返回不同模板,也可能是JS未执行,还可能是CSS把内容隐藏了。只有抓到原始HTML并逐项对比,才能确定是哪一种。
发现差异后,不要同时改模板、改跳转、改规则。按影响面和代价排序,更容易验证效果。
假设某个页面桌面端返回完整正文,移动端返回同一URL但正文为空,且canonical都指向自己。此时优先让移动端服务端输出正文,而不是先提交sitemap。因为提交只能告诉百度“这里有页面”,不能替百度拿到内容。修改后重新用双UA抓取,确认移动端HTML出现正文,再观察抓取和索引变化。
修改完成后,用同一组URL做回归检查:状态码是否都为200,canonical是否一致,移动端HTML是否包含主要正文和链接,robots与meta robots是否放行。若使用百度搜索资源平台的抓取诊断,可分别提交移动端和桌面端URL,查看返回的HTML与状态码。不同搜索引擎对移动适配的支持和表现须分别核查,不要用其他引擎的结果直接替代百度。
下一步,选一个已有页面,先跑双UA抓取并保存两份响应,再对照上面的检查项标出差异层级。只改已经确认的那一层,改完复测,不要一次性推翻整个模板。