这类问题我又碰上了一次。站点用插件做移动端适配,移动模板只输出摘要和跳转按钮。GSC 的智能手机抓取显示页面文本只有两百多字,桌面版有八百多字。
第一反应是「移动版没输出 canonical,两个版本各自被当成独立页面」,验证下来不成立。
真正麻烦的地方在于,几个原因的现象几乎一样。移动模板把正文用 display:none 藏起来,只留摘要;插件按 UA 判断分流,Googlebot 的移动 UA 命中后拿到另一套模板;正文在移动版被推迟到按钮点击后才加载。
上来先用移动 UA 请求同一页看差异
curl -s -A 'Mozilla/5.0 (Linux; Android 10; K) Mobile Safari' https://www.example.com/a/ | wc -c
随后比对两版正文的可见字数
curl -s -A 'Googlebot' https://www.example.com/a/ | sed 's/<[^>]*>//g' | wc -m
剩下的就是让移动版输出与桌面一致的正文
wp_is_mobile() && add_filter('the_content', 'full_content');
改完先别撤,确认这几项。移动 UA 抓到的页面体积与桌面版接近,可见中文都在 600 字以上,GSC 里移动版与桌面版的内容差异告警消失。
响应式站点不需要按 UA 分流,一旦分流就要保证正文一致,隐藏内容对蜘蛛来说等同于不存在。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。
