做蜘蛛池入口頁的时候,很多人只在自己电脑的浏览器里看一眼,觉得頁面能打開、文字都在,就当作没問题了。但搜尋引擎現在普遍以移動端為主来评估頁面,蜘蛛抓取时带的 User-Agent 也常常是手机浏览器。也就是说,你在宽屏下看到的那個排版整齐的入口頁,蜘蛛未必能看到同一版。
為什么蜘蛛會带着手机 UA 来
抓取端的選擇通常有三種實現方式:响應式布局、獨立移動站、以及按 UA 動態返回不同 HTML。前两種比較常见,第三種在過去几年被大量使用,也是問题最集中的一種。它意味着同一個 URL,用桌面 UA 和手机 UA 請求,服務器可能返回两套完全不同的内容。
移動端常见的三種翻车方式
- 内容被折叠。移動端為了首屏好看,把正文和一部分連結塞進「展開全文」,必须点击或滚動到底才加载。如果展開逻辑依赖 JS,蜘蛛很可能只拿到标题和一句摘要。
- 内容被裁剪。模板在移動端直接删掉侧栏、相關阅讀、分頁導航。入口頁本来靠這些位置把連結铺出去,裁掉之後蜘蛛能顺着走的路径就少了。
- 移動版被屏蔽。m 站單獨配了一份 robots.txt,或者移動版模板里带着 noindex。桌面版能抓,移動版反而拒之门外。
用自己的手机 UA 自查一遍
- 用命令行带上手机 UA 請求一次入口頁,直接看返回的 HTML 源碼,而不是看渲染後的画面。
- 把移動版和桌面版的正文文字量做個對比。差的不是排版,是内容本身少了多少。
- 记錄跳轉鏈:入口頁是否跳到 m 站,m 站是否又跳回来。301、302 跳個两三次還不落地,抓取端容易中途放弃。
- 看移動版上的 canonical 指向哪里。桌面版和移動版各自指向自己、或者一方指向另一方,都是常见寫法,但至少要一致,別两邊互相打架。
- 检查首屏有没有遮挡式彈窗、浮层或下载引導。這類元素會盖住正文和連結。
两套站還是一套模板
如果维護成本允许,優先用响應式。一套 HTML、一套連結结构,蜘蛛無论带什么 UA 拿到的都是同一份内容,你也不用去對齐两個版本的 canonical。确實要分站的话,把移動版当成正式版本對待:正文完整、連結完整、允许抓取,然後和桌面版做一次交叉核對。
入口頁的核心價值是让蜘蛛發現並走到下游連結,正文短一点不可怕,可怕的是移動端把連結一並藏了起来。
几條省事的做法
- 正文和連結在两種 UA 下都完整輸出,折叠只影响视觉呈現,不影响 HTML 里有没有。
- 折叠、選項卡優先用 CSS 或原生 HTML 實現,少依赖点击後才發起請求的脚本。
- 移動端的彈窗做成可關閉、可延後出現的,不要一進頁面就糊在正文上。
- 改動模板後,隔一段時間再用手机 UA 抓一次,確認返回的仍是完整版本。
把移動端当成主版本来看待,而不是桌面版的附属品,很多「蜘蛛来了却什么都没抓到」的疑問,會自然少一大半。