你的无限滚动网站,是不是搜不到?
打开百度或谷歌搜自家关键词,首页翻三遍都看不到自己——不是没更新,是爬虫压根没“看见”你滚出来的内容。
这事儿特别冤:用户划得挺开心,你后台也天天发新内容,但搜索引擎就像戴了墨镜,只盯着页面最上面那一屏。
无限滚动对SEO的三大致命伤是什么?
第一,爬虫不滚屏幕
它不会像人一样往下拉,只读你服务器第一次吐出来的 HTML。后面靠 JS 拉出来的标题、摘要、链接……它直接跳过。
第二,“下一页”链接藏在 JS 里
用户点按钮加载更多,背后是 onclick 或 fetch() 调用。爬虫不认识这种操作,也找不到通往第二页、第三页的路。你的深层内容,等于没门牌号。
第三,一个页面塞太多主题,爬虫懵了
首页无限滚动,一口气展示 80 篇文章摘要。每篇就两行字,没有主次。爬虫扫完,搞不清这页到底是讲“Python 教程”还是“面试技巧”,更难给它打标签、分权重。
一个真实案例:某设计师作品站,主页用无限滚动推新稿。运营天天发,但百度只收录了首屏的 5 张图——后面几百个作品,连缩略图都没进库。搜索流量卡在起步阶段,好几个月没动静。
如何让爬虫“看到”你的动态内容?
别指望爬虫等 JS 执行完再抓取。核心就一条:把关键内容,提前放进初始 HTML 里。
不用全堆在顶部,但至少让前 10–20 条正文(标题 + 摘要 + 链接)以真实 HTML 形式存在。可以用 CSS 先 display: none 隐藏,等用户滚动时再 display: block 显示——对人是平滑加载,对爬虫是“伸手就拿到”。
进阶一点,保留传统分页链接(比如 /blog/page/2/),哪怕用户不点,也要让它明明白白写在 HTML 里。这样爬虫顺着链路能走到底,你也不用赌它的渲染能力。
具体怎么做?
打开你的无限滚动页 → 右键 → “查看网页源代码” → 拉到 <body> 里找。如果除了导航栏、页脚,正文区只有空 div 和 data-* 属性,那爬虫看到的就是一张白纸。
怎样为无限滚动创建可抓取的导航结构?
别删掉分页,把它“藏起来又留着”。
在页面底部加一组干净的 <a href="/category/news/page/2/">第2页</a> 链接。样式可以低调(比如灰色小字、右下角),但 HTML 必须真实存在、href 可访问、不带 rel="nofollow"。
重点是:每个分页 URL(如 /page/3/)返回的,必须是该页专属的静态 HTML——不是套壳的无限滚动页,而是真·第 3 页内容,含标题、摘要、发布时间,且和第 2 页不重复。
这样爬虫从 /page/1/ 出发,点链接进 /page/2/,再点进 /page/3/……整条链路通顺,每页都能独立被收录、被排名。
怎样优化页面元数据和结构化数据?
无限滚动页的 <title> 和 <meta name="description"> 别写死。
- 访问
/news/时,标题用“最新资讯 - 网站名” - 访问
/news/page/2/时,标题立刻变成“最新资讯 - 第2页 - 网站名” - 描述同理,带上“第X页”字样,避免被当成重复页惩罚
结构化数据只标“当前页实际展示的内容”。比如 /page/2/ 页面源码里有 10 篇文章的 HTML,那就只用 ListItem 标这 10 篇,每篇带上 url、name、datePublished。别把 JS 后续加载的 50 篇也硬塞进去——标记失真,Google 会当垃圾处理。
如何利用“查看全部”页面作为SEO备份?
做个“老实人页面”:在页脚放个不起眼的链接,文字就叫“所有文章(静态版)”。点进去,是纯分页列表,每页 20 篇,链接都是标准 <a href="/post/xxx">,加载快、没 JS 依赖。
这个页面不求好看,只求两点:
- 让爬虫一次抓完你能公开的所有内容
- 当主站无限滚动出问题时,它就是你的保底索引入口
用 <link rel="canonical"> 告诉搜索引擎:“无限滚动页是主版本”,同时在 robots.txt 里别屏蔽这个静态页——双保险。
今天下班前就能执行的一个检查清单
现在就打开 Chrome,花 25 分钟,按顺序做这四件事:
- 看源代码:右键 → “查看网页源代码” → 搜索
<article>或<h2>,确认前 10 条内容是否以真实 HTML 存在。没有?优先改模板,把首屏后的内容也服务端吐出来。 - 关 JS 测试:设置 → 隐私与安全 → 网站设置 → JavaScript → 关闭 → 刷新页面。还能看到文字和链接吗?不能,说明爬虫也抓不到——立刻补分页或服务端渲染。
- 找分页链接:滚动到底部(JS 开着),找有没有
<a href="/xxx/page/2/">这样的链接。右键 → “在新标签页打开”,确认打开的是独立、有内容的静态页。 - 用搜索控制台验效果:登录 Google Search Console → 左侧菜单点“网址检查” → 粘贴你的无限滚动页 URL → 点“测试实时网址” → 看“已接收的网页”里有没有你期望的标题和摘要。没有?说明服务端没给够内容。
做完这四步,你马上知道问题卡在哪一环——不用猜,直接修。