要检查百度收录问题中移动端与桌面端的差异,核心做法是:分别用移动端和桌面端的用户代理抓取同一个URL,对比返回的HTML、状态码、canonical、robots meta和正文内容,再把差异逐项归因。下面用一个假设案例说明步骤,并给出可直接执行的检查清单。
假设某站点有一篇文章页 https://example.com/a,桌面端打开正常,移动端在百度搜索结果中却显示“内容为空”或标题异常。此时不要先改模板,而应按以下顺序检查。
<title>、<meta name="description">、<link rel="canonical">和<meta name="robots">。如果移动端返回的HTML里正文为空,而桌面端有完整正文,常见原因有三类:一是移动端做了独立模板但未输出正文;二是正文依赖客户端渲染,抓取时未执行脚本;三是移动端UA被错误地限制抓取。这三类原因需要分别验证,不能看到“移动端没内容”就断定是某一项。
判断差异是否影响百度收录,不能只看页面“能不能打开”,而要看抓取和索引两个环节各自拿到了什么。可按下表逐项核对:
noindex。robots.txt的抓取限制不等于可靠的索引移除,noindex也需要页面能被抓取后才可能生效。以命令行工具为例,分别用两种UA请求同一URL并保存结果,再对比关键标签。假设命令如下(仅为示例,域名和UA需替换为实际值):
curl -A "Mozilla/5.0 (iPhone; ...)" -s https://example.com/a -o mobile.html
curl -A "Mozilla/5.0 (Windows NT 10.0; ...)" -s https://example.com/a -o desktop.html
然后搜索两份文件中的canonical、robots和正文首段。判断结果时注意:如果两端HTML主体一致,只是CSS隐藏了部分内容,通常不影响抓取;如果移动端HTML里正文节点为空,则属于输出层面的差异,需要回到模板或渲染方式排查。HTTPS不保证安全无漏洞或排名,它只是检查项之一,不能替代上述对比。
常见错误包括:只在一端浏览器里肉眼看页面,不抓取原始HTML;把robots.txt的Disallow当成删除收录的手段;看到移动端和桌面端标题不同就立即改canonical,却没确认哪一端是主版本。适用条件是:站点同时存在移动端和桌面端访问路径,且百度收录表现出现端间差异。若站点只有响应式一套模板,两端返回同一份HTML,则重点转向渲染后内容是否可被抓取,而不是模板差异。
下一步:选定一个出现收录差异的具体URL,按上面的抓取步骤保存两份HTML,先对比状态码和canonical,再决定是调整模板输出、渲染方式还是抓取规则。