如果你在服務器日誌里看到抓取器的 UA 带着 Mobile 字样,這是移動優先索引下的常態:蜘蛛預設用移動端抓取器訪問頁面,用這一份 HTML 决定索引内容、内鏈和後續抓取路径。桌面版和移動版不一致时,問题往往不是“頁面打不開”,而是蜘蛛走的那條路和你以為的那條不一样。
移動優先不等于“只抓移動版”
更准确的说法是:蜘蛛主要用移動端抓取器訪問,桌面端抓取器仍然會来,只是频率和用途不同。對站点来说,關键点在于:
- 移動版 HTML 里出現的連結,才是它繼續往下走的路径来源;
- 移動版頁面上没有的導航項、頁脚連結、相關推荐,蜘蛛多半也不會顺着走;
- 索引里的正文以移動版為准,桌面版多出来的段落不一定被采用。
所以“桌面版連結齐全、移動版砍成三條”這種常见做法,會直接改變抓取路径的覆盖范围。
三種實現方式,各自的抓取風險
响應式(同一套 HTML、同一 URL)
三種方案里最省事的一種:HTML 只有一份,内鏈一致,蜘蛛用哪個 UA 拿到的都是同一份内容。風險主要来自隐藏方式——如果導航在移動端靠脚本折叠,並且折叠前的 DOM 里没有這些連結,蜘蛛可能讀不到。建议連結直接寫在 HTML 里,用 CSS 控制顯示,而不是由脚本動態插入。
動態服務(同一 URL,按 UA 返回不同 HTML)
同一個 URL 给移動端返回精简版、给桌面端返回完整版。這種方式要特別注意:
- 两個版本的正文、标题、结构化資料要一致,否則容易出現内容對不上的情况;
- 缓存策略要小心,按 UA 分版本返回时若缓存键設定不当,CDN 可能把桌面版缓存回给移動端抓取器,蜘蛛看到的就是另一份頁面;
- 移動版里被“精简”掉的連結,就是被砍掉的抓取路径。
獨立移動站(m 開头的子域)
最容易出問题的一種。两個域名各自有自己的内鏈網絡,蜘蛛在移動站上能抓到什么、能不能顺畅跳回主站,全靠配置保證:
- 移動版頁面用 canonical 指向對應地址,全站策略要统一;
- 桌面版用 alternate 标记指向移動版,方便蜘蛛發現對應關系;
- 移動站的導航、分頁、上下級連結要完整,別让它變成一條只有首頁和詳情頁的窄路;
- 移動站的 404、软 404 要單獨检查,很多站点只维護了主站的重定向規則。
自查:怎么確認蜘蛛走的是哪條路
- 用移動端 UA 請求几個關键 URL,看返回的 HTML 里有没有完整的導航和分頁連結;
- 在日誌里按 UA 分组,比較移動端與桌面端抓取器訪問的路径分布,差异大的地方就是两套内鏈不一致的地方;
- 看移動版頁面的狀態碼,獨立移動站上大量 3xx、5xx 會让抓取停在這一层;
- 確認 Sitemap 和 robots.txt 里给出的地址,是蜘蛛實际能抓到的那一套。
判断“蜘蛛能不能走下去”的标准很简單:先忽略桌面端的所有連結,只看移動版 HTML 里有什么可点的連結。那條路才是它真正會走的。
顺序上的建议
先统一内容與連結,再谈抓取效率。正文、标题、内鏈在两版之間對齐之後,無论蜘蛛用哪個抓取器進来,拿到的都是同一張路径图,排查抓取問题时能少掉一大半變量。如果短期内只能改一處,優先补上移動版缺失的導航和分頁連結——那是蜘蛛繼續往下走最依赖的入口。