站点要不要单独做一个 m 站,讨论了很多年。从抓取角度看,这个选择会直接影响蜘蛛能看到多少条 URL、走哪条路径、要不要把同一篇内容抓两遍。响应式和独立移动站并不是谁更“正确”的问题,而是站点要清楚,蜘蛛在这两套结构里分别会遇到什么。
一套 URL 和两套 URL 的区别
响应式站点只有一套 URL,桌面和移动共用一个地址,页面通过 CSS 适配屏幕。对蜘蛛来说,抓一次就拿到完整内容,URL 集合和页面数量是对得上的,抓取路径也简单。
独立 m 站的入口至少有两个:桌面地址和移动地址。如果这两个地址都能被蜘蛛发现,它就会分别排队、分别抓取。除非站点明确标注两者的关系,否则这部分抓取量是重复消耗的。内容越多,重复的比例越明显。
响应式:一套地址,但别在返回内容上做手脚
响应式省掉了很多麻烦,不过有两个地方容易出问题。
- 用 UA 判断返回不同 HTML。有些站点在服务端识别到移动 UA 时,返回一个精简过的页面,正文被截断或者关键链接被删掉。蜘蛛拿到的如果是这一版,URL 是发现了,内容却看不全。
- 关键内容靠脚本后置填充。响应式不等于把所有东西丢给前端。导航、正文链接、分页入口,这些能被静态 HTML 直接输出的,就尽量直接输出。
独立 m 站:把两套地址的关系标清楚
如果确实要维护两套路径,站点需要做的是让蜘蛛知道它们指向同一个页面,而不是两条独立内容。
- 桌面页面上放置 alternate 标注,指向对应的移动地址。
- 移动页面上放置 canonical 标注,指回桌面地址。
- 两边标注的地址要保持成对,不要一边写死了、另一边漏掉。
这样蜘蛛仍可能两条都抓,但至少能判断出主版本,减少把同一内容当成两个页面的情况。标注不一致时,比如移动页 canonical 指向自己,那两套 URL 就会各自独立存在。
移动 URL 常见的三类问题
- 入口只改造了一半。站内链接换成了移动地址,但 sitemap、外链、旧页面里还留着桌面地址,蜘蛛从两个方向进来,看到的路径不一致。
- 移动站内容被裁剪。为了加载快,移动版把列表页条数压缩、把正文段落删掉,蜘蛛顺着移动地址爬下去,能发现的下一层 URL 比桌面站少很多。
- 两套 robots.txt 规则不同。桌面站允许的目录,移动站可能整段 Disallow,或者反过来。蜘蛛按各自域名下的规则执行,某一条路径就这样被挡在门外。
站点该怎么收口
可以按下面的顺序过一遍:先确认站点最终想保留哪一套作为主地址,再把 alternate、canonical、sitemap、内链全部统一到这套主地址上;接着检查移动地址的 robots.txt 是否和桌面站保持一致的放行范围;最后看移动版页面里,导航、分页、正文链接这些能被蜘蛛顺着走的路径是否完整,有没有被压缩掉。
移动端适配首先是给用户看的,但两套 URL 之间的标注关系、sitemap 和内链的一致性,才是决定蜘蛛会不会重复消耗抓取量的地方。改版时这两件事最好一起定下来。