很多蜘蛛池入口頁為了頁面整洁,會把目标連結放進折叠面板、選項卡,或者只顯示前几條,其余用“展開更多”按钮控制。這样做對普通用戶没問题,但對搜尋蜘蛛是否友好,取决于一個核心点:目标連結有没有出現在入口頁初始返回的 HTML 里。
搜尋蜘蛛先看 HTML,不先看“用戶看到的頁面”
搜尋蜘蛛抓取入口頁时,首先拿到的是服務器返回的 HTML 源碼。它並不像浏览器那样一定要等用戶点击、等脚本执行完才看到内容。因此:
- 連結寫在 HTML 中,只是被 CSS 設定成 display:none、visibility:hidden 或高度為 0,蜘蛛通常仍能從源碼里解析到 href。
- 連結藏在 details/summary 折叠结构里,只要初始 HTML 包含這些 a 标簽,被發現的机會也比較正常。
- 連結要等点击按钮後,再由 JavaScript 拼接或异步請求插入 DOM,初始源碼里没有,蜘蛛就可能看不到。
所以,折叠本身不是問题,“連結何时進入 HTML”才是問题。
三種常见寫法,風險不一样
1. 纯 CSS 隐藏或 details 折叠
這類做法相對稳妥。只要 a 标簽和 href 在初始 HTML 中完整輸出,搜尋蜘蛛一般能解析。注意別用 JS 把 href 抽走,例如只在点击时给 data-url 赋值。
2. 選項卡、标簽頁切換
如果所有選項卡内容一開始都在 HTML 里,只是切換顯示,通常不影响發現。如果只有目前選項卡的内容進入 HTML,其他選項卡靠接口加载,那么未激活标簽里的目标 URL 就可能長期不被發現。
3. 点击“展開更多”後异步加载
這種風險最高。初始 HTML 只有按钮,没有後面那批連結。搜尋蜘蛛通常不會主動点按钮,也不一定會滚動触發懒加载。對你最重要的目标 URL,不建议放在這一层。
發現只是第一步,抓取和收錄是另一回事
即使連結出現在初始 HTML,也不代表一定會被大量抓取或收錄。入口頁的可信度、服務器响應速度、URL 本身质量、同域名下的重复内容,都會影响後續表現。折叠内容往往在頁面里權重更低,如果它是你唯一的連結出口,效果通常不如直接放在正文可见区域。
把目标連結藏起来再期待蜘蛛主動深入,属于把不确定性叠加上去。入口頁能做的,是减少不必要的障碍,而不是保證结果。
更稳妥的入口頁寫法
- 目标連結優先放在初始 HTML。需要视觉折叠可以用 CSS 或 details,但 href 要真實輸出,不要靠点击後才生成。
- 重要連結放在正文前部或列表主体。不要全部塞進頁脚、侧栏或“展開更多”後面的隐藏区块。
- 少用 JS 拼接連結。常见错誤是 href 留空、点击时再赋值,蜘蛛拿到的是空連結或 #。
- 控制折叠层級。一個頁面里如果大部分連結都在折叠层内,建议至少把核心連結提前展示。
- 自己检查源碼。用浏览器查看“網頁源代碼”而不是审查元素,確認目标 URL 是否真的在初始 HTML 中;必要时用平台提供的抓取測試工具看返回内容。
FAQ 小结
問:折叠面板里的連結會被蜘蛛發現吗?
看實現方式。CSS 隐藏、details 折叠且 href 在初始 HTML 中,通常可以;点击後异步加载,則可能不行。
問:要不要把所有連結都展開顯示?
不必為了蜘蛛牺牲全部体驗,但核心目标 URL 最好不依赖点击才能出現。
問:放在折叠里會不會影响收錄?
發現之後還要看抓取和评估。折叠层内的連結往往優先級更低,能放在正常可见区域就放,別把它当成捷径。
總结一句:折叠不是原罪,延迟生成才是。入口頁设計可以简洁,但目标連結最好在初始 HTML 中就存在。