检查搜狗网站收录在移动端与桌面端的差异,核心是分别用移动端和桌面端的请求头抓取同一批URL,比较返回的HTML、状态码、canonical、robots和正文内容,再结合搜狗资源平台的抓取与索引数据定位原因。两端不一致时,优先怀疑移动适配配置、UA识别逻辑或CDN分端缓存,而不是直接认定“没收录”。
从站点地图、栏目页或搜索资源平台已提交的URL中,抽取10到30条有代表性的页面,覆盖首页、栏目页、详情页和分页。对每条URL分别记录桌面端与移动端的抓取结果,不要用不同页面互相对比。样本确定后,后续所有检查都围绕同一批URL进行,否则差异结论没有意义。
用命令行工具分别发起两次请求,桌面端使用常见桌面UA,移动端使用移动UA,例如:
curl -A "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 Mobile" -I https://example.com/page
要查的是:HTTP状态码、Content-Type、canonical链接、viewport声明、正文主体是否完整。结果说明:如果移动端返回200而桌面端返回301或404,说明服务端按UA做了跳转或屏蔽;如果两端状态码相同但canonical不同,说明移动适配可能指向了不同版本;如果移动端正文明显缺失,可能是动态渲染未执行或接口被拦截。
分别以桌面UA和移动UA请求robots.txt,确认Disallow规则是否对某一端生效。再查看页面源码中的<meta name="robots">和响应头中的X-Robots-Tag。要查的是:移动端是否被单独禁止抓取,是否设置了noindex。结果说明:如果只有移动端被noindex,搜狗移动索引会缺失;如果robots.txt只屏蔽了移动UA,抓取阶段就会失败。注意,robots.txt限制抓取不等于可靠的索引移除,已收录页面仍可能保留一段时间。
搜狗支持多种移动适配关系,常见的是独立移动站、自适应页面和代码适配。要查的是:移动端URL与桌面端URL之间是否存在正确的对应声明,canonical是否指向自身或统一版本。结果说明:如果移动端canonical错误地指向桌面端,而桌面端又指向移动端,会形成冲突信号;如果适配声明缺失,搜狗可能只保留其中一端。站点地图不保证收录,但两端分别提交有助于发现哪一端被抓取。
用浏览器开发者工具切换设备模拟,查看DOM中实际渲染出的正文、链接和内链结构,再与curl拿到的原始HTML对比。要查的是:移动端是否依赖JavaScript才出现内容,CDN是否按UA缓存了不同版本。结果说明:如果原始HTML为空而渲染后有内容,说明抓取依赖渲染,需要确认搜狗能否执行;如果移动端缓存了旧版页面,说明分端缓存未刷新,应检查缓存键是否包含UA或设备类型。
判断标准很简单:两端返回内容与信号一致,差异通常来自索引处理;两端本身就不一致,问题出在站点配置或服务端逻辑。
下一步,先选出10条移动端与桌面端表现不同的URL,按上面的顺序逐项记录状态码、canonical和robots结果,再决定是调整适配声明还是修复分端缓存。