SEO 百科

API 与接口

本页目录

API 与接口

API 与接口 是一套约定,网页程序用它交换数据;接口按固定格式返回数据,页面再把它显示出来[1]。做 SEO 的人要留意它,因为前后端分离的站点里,页面不在服务器上生成,正文由浏览器拿到数据后拼出。这类站点的收录问题,多半出在这里。

前后端分离下的分工

前后端分离时,后台只提供接口,返回 JSON 数据;前台用 JavaScript 取到数据,在浏览器里拼出页面。Next.js 官方说明,它既能构建前台界面,也能构建后台逻辑[1]。

一次页面访问会分成两次往返:

  1. 浏览器取回页面骨架;
  2. 页面里的脚本请求接口,取回 JSON;
  3. 脚本把数据填进页面。

正文在第二步之后才出现,初始 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 的地址写进站点地图,爬虫抓到的是一段数据,不是页面。

另一种误用是接口不设缓存。每次请求都回源查库,服务器变慢,抓取量跟着下降。

还有一种误用是只做客户端渲染。正文全由浏览器拼出,索引里可能只有空骨架。

附录

参见

参考资料

官方(境外)

  1. 《Next.js Docs》,Vercel。
  2. 《了解 JavaScript SEO 基础知识》,Google 搜索中心,2026-03-05 更新。

官方(国内)

  1. 《百度搜索的工作原理》,百度搜索资源平台,2023-12-21 更新。
  2. 《平台工具使用手册(抓取频次)》,百度搜索资源平台,2020-08-14 更新。

第三方

  1. 《客户端服务端交互概述》,MDN Web Docs,Mozilla。

外部链接

无。