很多蜘蛛池入口页为了页面整洁,会把目标链接放进折叠面板、选项卡,或者只显示前几条,其余用“展开更多”按钮控制。这样做对普通用户没问题,但对搜索蜘蛛是否友好,取决于一个核心点:目标链接有没有出现在入口页初始返回的 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 中就存在。