搜尋抓取

PC 站與 m 站並行时,蜘蛛會沿着哪套 URL 抓取

当站点同时有 PC 與移動端两套 URL 时,蜘蛛通常會先以移動 UA 進入,可能先在 m 站落脚。本文梳理跳轉、canonical、互鏈與 Sitemap 摆放對抓取路径的影响,以及容易遇到的循环與分叉問题,帮助你把两套 URL 的關系表達清楚。

搜尋抓取

PC 站與 m 站並行时,蜘蛛會沿着哪套 URL 抓取

很多站点在响應式改版之外,仍保留着一套獨立的移動端 URL,比如 m.example.com 或另一個短域名。對用戶来说,這是歷史遗留或业務需要;對搜尋蜘蛛来说,這等于同站点存在两套入口。蜘蛛並不會自動理解哪套是“主站”,它主要看你给出的信号和實际跳轉。

蜘蛛先用移動 UA 敲门

現在多數搜尋引擎以移動端爬虫為主。它請求一個 URL 时,會带上移動设备的 User-Agent。如果你的服務器在入口處做判断,看到移動 UA 就直接 302 到 m 站,那么蜘蛛拿到的第一份响應通常不是頁面内容,而是一次跳轉。跳轉本身不是問题,但每多一次跨主机跳轉,URL 發現和内容確認都會多一步。

更麻烦的是,有些站点只在根路径做 UA 判断,内頁却不做。蜘蛛從 m 站首頁走到内頁时,可能又被带回 PC 站,形成来回切換。

跳轉、canonical 與 alternate 的分工

canonical 是告诉蜘蛛哪套 URL 是主版本;alternate 則說明存在另一個设备版本。两者要成對出現:PC 頁指向 m 頁,m 頁也要回指 PC 頁,同时 m 頁的 canonical 指向 PC 頁。只寫單向,蜘蛛容易在两套 URL 之間反复確認,抓取路径就變得不稳定。

如果两套内容其實完全一样,只是模板不同,更简單的做法是让 m 站直接輸出與 PC 站一致的主内容,並在 m 頁把 canonical 指向 PC URL。這样蜘蛛在 m 站落脚後,很快就能確認主版本,不必把两套 URL 都当成獨立頁面来抓。

互鏈方式决定蜘蛛怎么走

  • 双向可点連結:PC 頁里的“移動版”連結和 m 頁里的“电脑版”連結都是普通的 a 标簽,蜘蛛可以双向走通,路径清楚。
  • JS 跳轉:只在頁面加载後用脚本跳轉,蜘蛛拿到的初始 HTML 里可能没有目标連結,容易停在原地。
  • 只做入口跳轉:首頁跳一次,内頁靠用戶点,蜘蛛在内頁看不到 m 站的入口,可能長期只抓 PC 站。
  • 两套站各自内鏈:m 站和 PC 站都有一套完整内鏈,但彼此不连通,蜘蛛要在两個主机之間切換,抓取节奏容易被打断。

几個容易踩的抓取陷阱

第一是循环跳轉。服務器根據 UA 判断,PC 跳 m,m 又因為某些規則跳回 PC,蜘蛛在两者之間轉圈,最终可能放弃。第二是 canonical 指向不一致:列表頁 canonical 到 PC,詳情頁却 canonical 到 m,蜘蛛對主版本的理解會分裂。第三是内容不同步:PC 站更新了,m 站没更新,或者反過来,蜘蛛每次抓到的内容都不一样,就不容易判断哪個是最终版本。

如果两套 URL 的内容、内鏈和更新時間長期不一致,抓取路径就會變成两條互不交叉的线,而不是一條清晰的主线。

让路径變得好走

  1. 尽量统一到一套 URL。响應式设計或動態服務同一套 URL,通常比维護两套更省事。
  2. 如果必须保留两套,确保主版本 URL 稳定,所有次要版本都用 canonical 指向它。
  3. 移動端和 PC 端的互鏈都使用普通 a 标簽,避免只靠脚本跳轉。
  4. Sitemap 里優先提交主版本 URL,两套都提交时,确保與 canonical 保持一致。
  5. 两套站的内容更新與内鏈结构尽量同步,至少不要让其中一套長期空白。

最後,回到蜘蛛的视角:它没有“移動優先”或“PC 優先”的偏好,只有你给出的信号。跳轉、canonical、互鏈和 Sitemap 说的是同一件事,蜘蛛才會沿着一條清晰的路径走。若几處信号互相矛盾,它就只能在两套 URL 之間试探,抓取效率自然會下降。