你的网站上了Serverless,百度蜘蛛还找得到路吗?
刚切到 Serverless,晚上刷百度搜自己网站,首页没出来——你心里“咯噔”一下:是不是蜘蛛压根没抓到?
别慌。这不是架构背叛了SEO,而是你和百度蜘蛛之间,少了一次靠谱的“第一次见面”。
Serverless架构到底动了SEO的哪块蛋糕?
Serverless 的本质是“有请求才干活”。比如用户点开一个商品页,函数才启动、读数据库、拼 HTML、返回结果;等几秒没人再访问,这个“工作台”就收摊了。
百度蜘蛛也这么“点单”。但它不等人。它要的是:连得上、回得快、内容稳。
问题就出在这三点上:
- 冷启动慢 → 蜘蛛等不及,直接放弃;
- 函数重启后状态丢了 → 同一个链接,这次有内容,下次变空白;
- 路由配置随手写 →
/product?id=123和/product/123都能打开,但百度当两个页面抓,最后全算404。
有个做家居配件的团队,把老站迁到云函数后没处理商品页的预渲染。结果百度来抓深层链接时,经常卡在加载态,或返回空 <div id="root"></div>。几周后,搜索资源平台里“抓取异常”里全是超时记录,索引量肉眼可见地往下掉。
百度蜘蛛如何与Serverless站点交互?
它不认“Serverless”这三个字,只认三件事:
HTTP 200回来了吗?- 响应时间有没有超过 5 秒?
- 返回的 HTML 里,
<title>、正文段落、<h1>这些关键信息,是不是已经写在源码里了,而不是靠 JS 拼出来的?
冷启动不是原罪,超时才是。蜘蛛不会因为你用的是函数就多等两秒。它只按自己的节奏来:一次失败,下次少来;连续失败,干脆暂停。
所以别问“百度支不支持 Serverless”,要问:“我的函数,能不能在蜘蛛眨眼的功夫里,把该给的东西都交出去?”
让Serverless站点对百度友好的3个核心方法
方法一:别让蜘蛛撞上“刚开机”的函数
重点页面(比如首页、分类页、爆款商品页)别让它每次都要“重新开机”。
- 云厂商后台里找“预置并发”或“保留实例”,哪怕只留 1 个,也能扛住蜘蛛第一波请求;
- 更省心的办法:博客、帮助文档、产品介绍这类更新慢的内容,直接用构建工具(如 Vercel、腾讯云托管)生成静态 HTML,扔进对象存储(COS/S3),走 CDN 返回——零冷启动,蜘蛛秒开。
方法二:同一个 URL,永远说同一句话
别让 /article/abc 这个地址今天返回文章,明天跳转到登录页,后天又 404。
- 所有内容存数据库或对象存储,别塞在函数内存里;
- 路由逻辑写死:
/product/:id就必须对应一个真实商品,查不到就返回 404,别自动重定向或兜底到首页。
方法三:HTML 必须“出生即完整”
百度现在能跑 JS,但跑得慢、不稳定。最保险的做法,是让函数返回的 HTML 源码里,标题、正文、图片 alt、结构化数据(<script type="application/ld+json">)全都在那儿。
- 用 Next.js 就开 SSR 或 SSG;
- 用 Vue/Nuxt 就配好
ssr: true; - 自己写的函数?手动拼 HTML 时,把
fetch到的内容直接塞进<body>里,别留个空容器等前端补。
必须绕开的Serverless SEO“天坑”
天坑一:robots.txt 和 sitemap.xml 别藏在函数后面
它们必须是蜘蛛一敲地址就拿到的纯静态文件。
- 把这两个文件和你的 CSS、JS 一起放进 COS/S3 的根目录;
- 确保
https://your.com/robots.txt能直接打开,不要指向https://your.com/api/robots这种需要函数处理的路径。
天坑二:URL 别越写越多,最后自己都认不全
函数路由灵活,容易写出 /list?sort=price&tag=sofa&page=1 这种带一堆参数的链接。百度会当成不同页面反复抓,浪费配额还可能判重复。
- 在函数入口统一做参数清洗,无关参数(如
utm_source、session_id)直接忽略; - 所有列表页加
<link rel="canonical" href="https://your.com/list?tag=sofa">; robots.txt里加上Disallow: /*?*utm_*这类规则,拦住追踪参数。
天坑三:不看日志,等于闭眼开车
Serverless 日志默认是散的。你得主动把它收拢:
- 在云函数控制台,把日志投递到 CLS(腾讯云)或 SLS(阿里云)这类日志服务;
- 设置筛选条件:
User-Agent contains "Baiduspider",重点关注status >= 500或duration > 5000的请求; - 一旦发现蜘蛛频繁收到 502 或超时,就是函数该瘦身或加预热的时候了。
真实世界里的Serverless SEO效果追踪
换架构后,别光盯着百度统计的“流量”,先去 百度搜索资源平台(原站长平台)看三样东西:
- “抓取频次”曲线是不是平滑没断崖;
- “抓取异常”列表里有没有扎堆的“连接超时”“响应超时”;
- “索引量”趋势线有没有跟着内容发布节奏慢慢爬升。
有位独立开发者,把技术博客从 ECS 迁到 Vercel。他没搞复杂配置,就两步:
- Next.js 项目里所有文章页设为
getStaticProps,构建时全部生成静态 HTML; - 把
sitemap.xml放在public/目录下,自动被 CDN 托管。
上线后第三天,他在搜索资源平台提交了新站点地图,当天就看到抓取频次翻倍,索引速度比以前快了不少——因为蜘蛛打开的每个链接,都是现成的 HTML,不用等、不用猜、不踩坑。
今天下班前就能做的1个关键检查
打开 百度搜索资源平台 → 左侧菜单点「抓取诊断」→ 输入你网站上 3 个最关键的动态页面地址(比如 /product/xxx、/article/yyy)。
重点看三处:
✅ 返回状态码是不是 200;
✅ 页面预览里,有没有你文章标题、第一段正文、主要图片的 alt 文字;
✅ 响应时间有没有标红(>5s);
如果预览里只看到 <div id="app"></div> 或一片空白,说明百度蜘蛛看到的,和你自己浏览器里 F12 看到的,根本不是一回事——优化就从这里开始:关掉 JS 渲染,先让函数吐出完整的 HTML。