SEO 百科
API 与接口
本页目录
API 与接口
API 与接口 是一套约定,网页程序用它交换数据;接口按固定格式返回数据,页面再把它显示出来[1]。做 SEO 的人要留意它,因为前后端分离的站点里,页面不在服务器上生成,正文由浏览器拿到数据后拼出。这类站点的收录问题,多半出在这里。
前后端分离下的分工
前后端分离时,后台只提供接口,返回 JSON 数据;前台用 JavaScript 取到数据,在浏览器里拼出页面。Next.js 官方说明,它既能构建前台界面,也能构建后台逻辑[1]。
一次页面访问会分成两次往返:
- 浏览器取回页面骨架;
- 页面里的脚本请求接口,取回 JSON;
- 脚本把数据填进页面。
正文在第二步之后才出现,初始 HTML 里没有。
// 前台脚本请求接口,拿到 JSON 再渲染
const res = await fetch('/api/articles/123');
const data = await res.json();
document.querySelector('h1').textContent = data.title;
{
"id": 123,
"title": "文章标题",
"summary": "文章摘要"
}
与抓取和收录的关系
抓取是收录的第一步。百度把收录概括为“从互联网抓取网页、建立索引数据库、将索引库中数据展现给用户”[3]。接口返回的 JSON 不是网页,抓取拿到的初始 HTML 里没有正文。
Google 说明,初始 HTML 不含实际内容时,它要先执行 JavaScript,才能看到网页内容[2]。它同时建议采用服务端渲染或预渲染,因为并非所有爬虫都会执行 JavaScript[2]。
MDN 把这种模式概括为,把大量计算从服务器移到浏览器[5]。计算位置换了,正文出现的位置也跟着换。
抓取频次还受服务器状况影响。百度说明,它会根据网站内容更新频率和服务器压力,自动调整抓取频次[4]。接口每次请求都回源查库,请求量一大,响应变慢,抓取量也被调低。
接口设计的常见问题
接口按编号返回数据,外部就能按编号遍历。没有权限校验的接口,会被采集者刷出成千上万个地址,这些地址一旦被收录,会拉低整站质量。
内容不存在时接口也返回成功,前台照样渲染出一个空页面。Google 把这种情况叫 soft 404,即内容不存在却返回正常状态码[2]。
发布接口与读取接口混在一起,也会留下隐患。外部调用写接口,能造出大量垃圾页。
常见误用
一种误用是把接口地址当页面提交。返回 JSON 的地址写进站点地图,爬虫抓到的是一段数据,不是页面。
另一种误用是接口不设缓存。每次请求都回源查库,服务器变慢,抓取量跟着下降。
还有一种误用是只做客户端渲染。正文全由浏览器拼出,索引里可能只有空骨架。
附录
参见
参考资料
官方(境外)
- 《Next.js Docs》,Vercel。
- 《了解 JavaScript SEO 基础知识》,Google 搜索中心,2026-03-05 更新。
官方(国内)
- 《百度搜索的工作原理》,百度搜索资源平台,2023-12-21 更新。
- 《平台工具使用手册(抓取频次)》,百度搜索资源平台,2020-08-14 更新。
第三方
- 《客户端服务端交互概述》,MDN Web Docs,Mozilla。
外部链接
无。