开发者 SEO:输出爬虫可读的 HTML,返回正确的 HTTP 状态码,写好关键 head 标签,通过 Core Web Vitals,并保持对 AI 可见。

简而言之
对开发者来说,SEO 就是让每个重要页面对爬虫来说都可访问、可渲染且不含歧义。在初始 HTML 中输出主要内容(服务器端渲染或静态生成),返回如实的 HTTP 状态码,把 title、meta description、canonical 和 robots 指令放在服务器响应中,用真正的 <a href> 元素做链接,达到 Core Web Vitals 的阈值,并添加 JSON-LD 结构化数据。大多数 AI 爬虫不执行 JavaScript:只有在 hydration 之后才出现的内容,对 ChatGPT、Claude 和 Perplexity 来说是不可见的。
想深入了解?请询问
快速测验
SEO 适合您吗?该如何开始?
4 个简单问题,看看 Google 能否为您带来客户。
我们给您的建议
Sorank 是最适合您的解决方案
人们在搜索您卖的东西,而您可以等几个月:Sorank 找到合适的搜索词,撰写并发布文章,并帮您获得外链。
开发者 SEO 是存在于代码中的那部分搜索优化:模板、路由、渲染、响应头和性能。市场团队选关键词、写内容,但一个错误的状态码、一条只在客户端渲染的路由或一个遗忘的 noindex,就可能在一次部署中让这些工作全部白费。Google 的 JavaScript SEO 基础知识描述了三个阶段(抓取、渲染、编入索引),每个阶段都有只有开发者才能修复的故障。本指南按照它们出问题的顺序逐一讲解。
| 领域 | 开发者的职责 | 出问题时的典型症状 |
|---|---|---|
| 渲染 | 主要内容和链接出现在服务器返回的 HTML 中 | 页面被索引时内容为空或不完整 |
| 状态码 | 如实返回 200、301、404、410、5xx | 软 404、错误页被索引、已删除页面仍有排名 |
| head 标签 | 唯一的 title、description、canonical、robots、hreflang | 重复内容、错误网址获得排名、页面不在索引中 |
| 抓取控制 | robots.txt、XML 站点地图、内部链接、参数 | 重要页面未被发现,抓取浪费在筛选页上 |
| 性能 | 真实移动端用户的 Core Web Vitals | 页面体验差,转化率下降 |
| 结构化数据 | 与可见内容一致的有效 JSON-LD | 没有富媒体结果,实体识别混乱 |
| AI 访问 | 允许 AI 用户代理,内容无需 JavaScript 即可读取 | 品牌不出现在 ChatGPT 和 Perplexity 的回答中 |
Googlebot 会渲染 JavaScript,但这是在可能被延迟的第二步进行的,而且 Google 自己也写道服务器端渲染或预渲染仍然是很好的做法,因为它对用户和爬虫都更快,而且并非所有机器人都会运行 JavaScript。最后这一点如今比以往任何时候都重要:Vercel 在 2024 年 12 月发布的分析 The rise of the AI crawler 中发现,目前没有任何一个主要 AI 爬虫会渲染 JavaScript,点名的包括 GPTBot、OAI-SearchBot、ChatGPT-User、ClaudeBot 和 PerplexityBot 等。使用 Google 基础设施的 Gemini 是例外。
| 渲染模式 | 爬虫收到的内容 | SEO 适配度 |
|---|---|---|
| 客户端渲染(CSR) | 几乎为空的 HTML 外壳,内容在 JavaScript 运行后才出现 | 弱:对 Google 有延迟,对大多数 AI 爬虫不可见 |
| 服务器端渲染(SSR) | 每次请求都返回完整 HTML | 适合动态页面 |
| 静态生成(SSG) | 部署时构建的完整 HTML | 最适合很少变化的内容 |
| 增量再生成(ISR) | 按计划或按需刷新的静态 HTML | 适合大型商品目录和博客 |
无论使用哪种框架,都有两条规则。链接必须是带 href 属性的 <a> 元素:Google 表示只能发现这种形式的链接,因此带点击处理函数的按钮和基于片段的路由都是死路。每条路由都需要自己的网址,不含 #,并能直接返回内容。我们的 JavaScript SEO、单页应用 SEO 和 Next.js SEO 指南详细介绍了各框架的细节。
状态码是给爬虫的指令。Google 关于 HTTP 状态码和网络错误的文档说明了各类状态码的处理方式:
用 HTTP 响应头检查工具确认服务器实际返回的内容,并把重定向链控制在一跳以内:我们关于 SEO 重定向的文章介绍了迁移方案。
每个可索引页面都需要唯一的 title 和 description、指向自身的 canonical,多语言网站还需要 hreflang 注释。请把它们放在服务器响应中:
<title>Running shoes for flat feet | Example</title>
<meta name="description" content="Tested picks, sizes and prices.">
<link rel="canonical" href="https://example.com/running-shoes-flat-feet">
<link rel="alternate" hreflang="fr" href="https://example.com/fr/chaussures-pieds-plats">
<meta name="robots" content="index, follow">canonical 标签必须指向您希望获得排名的网址,并与网站使用的协议、主机名和结尾斜杠规则完全一致。
注意
永远不要依赖 JavaScript 去移除 noindex。Google 表示,一旦发现 noindex 标签就可能跳过渲染,因此 HTML 中带 noindex、再由客户端移除的页面可能一直留在索引之外。
搜索引擎索引的是网址,所以网址结构本身就是 SEO 决策。使用小写、以连字符分隔、易读的路径;选定一种结尾斜杠规则并重定向另一种;每份内容只保留一个网址。筛选、排序和跟踪参数会在不增加内容的情况下成倍增加网址:把它们的 canonical 指向干净的版本,并且不要链接到您不希望被抓取的参数组合。
内部链接同时承担发现和权重分配的作用。在服务器端渲染导航、面包屑和相关内容区块,为分页列表提供指向每一页的普通链接,避免使用背后没有分页网址的无限滚动。只能通过站内搜索或 JavaScript 筛选才能访问的商品或文章,对爬虫来说就是孤立页面。
robots.txt 控制的是抓取而不是索引:如果有其他页面链接到被屏蔽的网址,它仍可能出现在搜索结果中。要让页面不进入索引,应允许抓取并返回 noindex。从路由或数据库生成 XML 站点地图,只列出返回 200 的规范网址,并且只在内容真正变化时更新 lastmod。每次发布前都用 robots.txt 检查工具测试规则,绝不要把包含 "Disallow: /" 的测试环境 robots.txt 部署到生产环境。
Google 把 Core Web Vitals 作为页面体验信号的一部分。根据 web.dev,当页面在真实加载的第 75 百分位(移动端和桌面端分别统计)达到以下阈值时即为良好:
| 指标 | 衡量内容 | 良好阈值 | 常见的开发修复方法 |
|---|---|---|---|
| LCP(Largest Contentful Paint) | 加载 | 2.5 秒或更短 | 预加载主图、在服务器端渲染首屏内容、使用 CDN |
| INP(Interaction to Next Paint) | 响应速度 | 200 毫秒或更短 | 拆分长任务、延迟第三方脚本、降低 hydration 开销 |
| CLS(Cumulative Layout Shift) | 视觉稳定性 | 0.1 或更低 | 为媒体设置宽高、为广告和嵌入内容预留空间 |
2024 年,INP 取代 First Input Delay 成为稳定的 Core Web Vitals 指标。请用实际用户数据(Search Console、Chrome UX Report)来评估,用实验室工具来调试。我们的 Core Web Vitals 术语条目列出了相关工具。
在 script 标签中使用 JSON-LD,在服务器端渲染,描述页面上可见的内容:
<script type="application/ld+json">
{"@context": "https://schema.org", "@type": "Article",
"headline": "Running shoes for flat feet",
"datePublished": "2026-10-01",
"author": {"@type": "Person", "name": "Jane Doe"}}
</script>用与页面相同的数据生成它,确保两者永远一致,在 CI 中进行校验,并避免通过跟踪代码管理器注入。schema 生成器可以为常见类型提供起步模板。
提示
把 SEO 检查加入流水线:如果可索引模板缺少 title 或 canonical、某条路由对未知 slug 返回 200,或者生产环境的 robots.txt 包含 "Disallow: /",就让构建失败。这类回归在部署前发现成本很低,部署后代价很高。
AI 可见度从访问开始。决定允许哪些 AI 用户代理(GPTBot、OAI-SearchBot、ClaudeBot、PerplexityBot 等),并在 robots.txt 中写明规则;我们的 AI 爬虫 robots.txt 指南解释了训练类机器人与搜索类机器人的区别。然后确保文字、价格、规格和常见问题都在初始 HTML 中,使用语义化标题和表格而不是图片中的文字,并让页面足够轻量以便快速获取。llms.txt 文件可以为 AI 工具概括您的关键页面,但目前还没有主流助手确认会使用它,请把它视为可选项。
Sorank 是我们的产品:一款以 autopilot 模式运行的 SEO 和 GEO 软件。开发者通常通过它的集成认识它:它可以把文章发布到 WordPress、Shopify、Webflow 或 Wix,也可以通过 webhook 发布到任何自建技术栈,具体见安装页面。SEO Chat 以对话方式回答关于您网站的问题,AI 提及追踪每周检查 ChatGPT、Claude 和 Gemini 是否提到您的品牌。

简单来说:从服务器输出完整的 HTML、如实的状态码和正确的标签,再用真实用户数据衡量性能。这既服务于 Googlebot,也服务于不运行 JavaScript 的 AI 爬虫。若想为一个构建良好的网站填充能获得排名的内容,请查看 Sorank 的套餐,每月 $49 起,并提供 3 天免费试用。
对会渲染 JavaScript 的 Google 来说不一定,但它会带来延迟和风险,而且大多数 AI 爬虫根本不执行 JavaScript。对于需要获得排名或被引用的页面,请通过服务器端渲染、静态生成或预渲染在初始 HTML 中提供主要内容和链接,把客户端渲染留给交互部分。
两者都会告诉 Google 页面已不存在,Google 在两种情况下都会随时间停止使用该网址。410 表示删除是有意且永久的,一些团队更喜欢把它用于主动删除的内容。最重要的是不要返回带错误信息的 200,否则会产生软 404。
它们是页面体验信号的一部分,Google 将其描述为众多因素之一,相关性和内容质量的权重更大。它们主要在相似页面之间起到决定作用,并对转化有很大影响,因此达到阈值是值得的。
他们已先于您体验了 SORANK

