186 lines
7.9 KiB
Markdown
186 lines
7.9 KiB
Markdown
# SPA SEO 与 AI 爬取可见性总纲(执行手册)
|
||
|
||
面向现状:保持单页应用(SPA)架构,优先通过“主动提交 + 结构化数据 + 渲染策略 + 内链与性能”提升传统搜索与 AI 爬虫的可见性;仅在收益不足时,分阶段引入 SSR/SSG/ISR。
|
||
|
||
## 1. 目标与原则
|
||
|
||
- 兼顾传统搜索(Google/Bing/百度等)与新型 AI 爬虫(GPTBot/ClaudeBot/PerplexityBot 等)。
|
||
- 新内容与更新“分钟级被发现”:IndexNow/百度主动推送 + 完整 sitemap。
|
||
- 重要着陆页无需改架构即可可抓取:动态渲染/预渲染为爬虫提供 HTML 快照。
|
||
- 结构化数据覆盖主要业务类型,获取富结果与高质量摘要。
|
||
- 数据合规:robots.txt/ai.txt 明确抓取与使用边界。
|
||
|
||
## 2. 两周内落地路线(优先级)
|
||
|
||
第 1 周(发现能力与元数据):
|
||
- 接入站长平台:Google Search Console、Bing Webmaster、百度搜索资源平台。
|
||
- 建立 sitemap 体系:主索引 + 分区 sitemap(栏目/详情/增量),含 `lastmod`、`hreflang`。
|
||
- 接入 IndexNow 与百度“主动推送”API(发布/更新/删除即时推送)。
|
||
- 为所有可索引路由补齐 `<title>`、`meta description`、`canonical`、OG/Twitter 卡片。
|
||
- 添加 JSON-LD:Organization、WebSite+SearchAction、BreadcrumbList;内容页覆盖 Article/Product/FAQ。
|
||
|
||
第 2 周(可抓取与体验):
|
||
- 路由与状态:存在的路由返回 200,不存在返回 404;history 模式避免哈希路由。
|
||
- 动态渲染(过渡方案):对爬虫 UA 提供 HTML 快照(Rendertron/Prerender/自建 Headless 中间层)。先覆盖前 20 个高价值入口。
|
||
- 内链与面包屑:专题页 → 栏目 → 详情双向链路,清理孤页。
|
||
- Core Web Vitals:首屏渲染/LCP、CLS、图片懒加载与尺寸、关键 CSS/JS 精简与分割。
|
||
- 监控:GSC/Bing/百度的抓取/索引/体验报告 + 服务器日志(爬虫命中、耗时、状态码)。
|
||
|
||
4–6 周评估后:
|
||
- 若收录与流量提升有限,针对高价值路由切换 SSR/SSG/ISR(分批,成本可控)。
|
||
|
||
## 3. 主动报告/推送策略
|
||
|
||
- Sitemap:
|
||
- `sitemap_index.xml` 指向多份分区 sitemap(示例:`sitemap-pages.xml`、`sitemap-articles-0001.xml`…)。
|
||
- 详情页增量 sitemap(滚动窗口,仅近 7–14 天更新),全部挂在 index 上。
|
||
- 每条 URL 含 `lastmod`,多语言站点提供 `xhtml:link rel="alternate" hreflang`。
|
||
- IndexNow(推荐):发布/更新/删除 URL 即刻通知;Bing/百度/雅虎等共享。
|
||
- 百度“主动推送”API:中文搜索重要渠道,显著提升时效性。
|
||
- 说明:Google 通用内容不支持 Indexing API(仅 JobPosting/LiveStream)。
|
||
|
||
## 4. SPA 可抓取与渲染策略
|
||
|
||
- 服务端为每个可索引路由返回:
|
||
- 正确状态码(200/404/410 等)。
|
||
- 唯一 `<title>` 与 `meta description`、`canonical`、Open Graph/Twitter 卡片。
|
||
- 动态渲染(UA 识别,仅爬虫):
|
||
- 可选组件:Rendertron、Prerender.io、无头 Chrome 自建渲染服务。
|
||
- 缓存策略:热门路由 1–6 小时;刷新策略基于更新事件或 `lastmod`。
|
||
- 机器人 UA 白名单(示例):`Googlebot`、`bingbot`、`Baiduspider`、`GPTBot`、`ClaudeBot`、`PerplexityBot`、`Applebot`、`Bytespider`。
|
||
|
||
## 5. 结构化数据(JSON-LD 模板)
|
||
|
||
嵌入到可索引页面 `<script type="application/ld+json">` 中:
|
||
|
||
```json
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@type": "Organization",
|
||
"name": "Your Company",
|
||
"url": "https://example.com",
|
||
"logo": "https://example.com/logo.png",
|
||
"sameAs": ["https://twitter.com/your", "https://github.com/your"]
|
||
}
|
||
```
|
||
|
||
```json
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@type": "WebSite",
|
||
"url": "https://example.com",
|
||
"potentialAction": {
|
||
"@type": "SearchAction",
|
||
"target": "https://example.com/search?q={query}",
|
||
"query-input": "required name=query"
|
||
}
|
||
}
|
||
```
|
||
|
||
```json
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@type": "BreadcrumbList",
|
||
"itemListElement": [
|
||
{"@type": "ListItem", "position": 1, "name": "首页", "item": "https://example.com"},
|
||
{"@type": "ListItem", "position": 2, "name": "栏目", "item": "https://example.com/cat"},
|
||
{"@type": "ListItem", "position": 3, "name": "文章标题", "item": "https://example.com/a/123"}
|
||
]
|
||
}
|
||
```
|
||
|
||
内容页根据类型选用:`Article`(新闻/博客)、`Product`(商品)、`FAQPage`/`HowTo`(知识/指南)。
|
||
|
||
## 6. AI 爬虫与抓取政策
|
||
|
||
- robots.txt:明确允许/限制、抓取节奏(部分爬虫支持 `Crawl-delay`),指向 sitemap。
|
||
- ai.txt(可选,逐步被采用):说明数据使用许可范围与联系人信息。
|
||
- 提供机器可读入口:sitemap + RSS/Atom/JSON Feed;知识性页面补 FAQ/HowTo JSON-LD,提升被摘要/引用概率。
|
||
|
||
模板见:`doc_seo/templates/robots.txt`、`doc_seo/templates/ai.txt`。
|
||
|
||
## 7. 站内链接与内容策略
|
||
|
||
- 架构化内链:专题页 → 栏目 → 详情,相关内容组件;避免孤立页面。
|
||
- 使用面包屑并输出到 JSON-LD。
|
||
- Canonical 统一去重策略(分页/筛选/多入口)。
|
||
- 多语言/区域站点:`hreflang` 覆盖。
|
||
|
||
## 8. 性能与体验(Core Web Vitals)
|
||
|
||
- LCP:关键资源预加载、服务端压缩、图片尺寸与格式(AVIF/WebP)。
|
||
- CLS:预留尺寸、避免布局抖动、延迟加载非关键组件。
|
||
- JS 体积:分包与按需加载,第三方脚本治理。
|
||
|
||
## 9. 监控与校验
|
||
|
||
- 平台:GSC/Bing/百度抓取统计、索引覆盖、富结果、页面体验。
|
||
- 校验:Rich Results Test、Schema.org 校验器、PageSpeed Insights。
|
||
- 日志:爬虫 UA 命中、状态码分布、渲染耗时、阻塞资源。
|
||
|
||
## 10. SSR/SSG/ISR 回退与分批迁移
|
||
|
||
- 触发条件:两轮(4–6 周)评估后收录/流量/展示低于阈值。
|
||
- 范围优先:商业着陆页/栏目首页/高价值详情页。
|
||
- 路径:保持 SPA,大路由增量改 SSR;低频内容用 SSG/ISR;未改部分继续用动态渲染。
|
||
|
||
## 11. KPI 与验收标准
|
||
|
||
- 发现/抓取:sitemap 提交成功率 99%+;IndexNow/百度推送成功率 95%+;爬虫 200 响应率 98%+。
|
||
- 收录:重要路由 80%+ 在 7–14 天内被索引;长尾 60%+ 在 30 天内被索引。
|
||
- 展示/点击:GSC 展示量/点击量环比提升;富结果覆盖增长。
|
||
- 体验:核心页面 CWV 达标(Good)。
|
||
|
||
## 12. 实施清单(可勾选)
|
||
|
||
- [ ] 建立 sitemap 体系:index + 分区 + 增量,含 lastmod、hreflang。
|
||
- [ ] 接入 IndexNow 与百度主动推送,绑定内容发布/更新事件。
|
||
- [ ] 按路由注入 `<title>`、`meta description`、`canonical`、OG/Twitter。
|
||
- [ ] JSON-LD:Organization、WebSite+SearchAction、BreadcrumbList;内容页 Article/Product/FAQ。
|
||
- [ ] robots.txt/ai.txt 上线(模板在 `doc_seo/templates/`)。
|
||
- [ ] 动态渲染中间层部署并仅对爬虫启用;覆盖前 20 个高价值路由。
|
||
- [ ] 内链/面包屑/相关内容完善,清理孤页。
|
||
- [ ] CWV 优化与监控面板上线。
|
||
- [ ] 两周与六周评估,必要时切换高价值页到 SSR/SSG/ISR。
|
||
|
||
---
|
||
|
||
### 附录 A:sitemap 片段示例
|
||
|
||
```xml
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||
<url>
|
||
<loc>https://example.com/a/123</loc>
|
||
<lastmod>2025-08-30</lastmod>
|
||
<xhtml:link rel="alternate" hreflang="en" href="https://example.com/en/a/123"/>
|
||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://example.com/zh/a/123"/>
|
||
</url>
|
||
<!-- ... -->
|
||
</urlset>
|
||
```
|
||
|
||
### 附录 B:IndexNow 请求示例(HTTP)
|
||
|
||
```
|
||
POST https://api.indexnow.org/indexnow
|
||
Content-Type: application/json
|
||
|
||
{
|
||
"host": "example.com",
|
||
"key": "<your_key>",
|
||
"keyLocation": "https://example.com/<your_key>.txt",
|
||
"urlList": [
|
||
"https://example.com/a/123",
|
||
"https://example.com/a/456"
|
||
]
|
||
}
|
||
```
|
||
|
||
### 附录 C:更多 JSON-LD 类型参考
|
||
|
||
- Article: https://schema.org/Article
|
||
- Product: https://schema.org/Product
|
||
- FAQPage: https://schema.org/FAQPage
|
||
- HowTo: https://schema.org/HowTo
|