Astro 的灵活——三种 output 模式、可选 integration、内容集合、hybrid 渲染——也是多数团队积累隐性 SEO bug 的地方。Sitemap 漏一条路由、hreflang 漏一个 locale、RSS 指着过期 base URL——这些都要等到流量开始掉才浮出。这篇讲针对 Astro 的审计 prompt,专门抓通用站审漏掉的”Astro 形”问题。
这篇讲什么
针对 Astro 的审计 prompt,瞄准多数团队 ship-and-forget 的集成层:astro.config.mjs、src/pages/、sitemap 输出、hreflang alternate、output 模式(static / SSR / hybrid)、RSS feed。审计是按 Astro 实际工作方式裁剪的——不是通用的”你站好不好”。
本文涉及的工具 / 概念:
- Astro: 面向内容站的现代静态 / 混合渲染前端框架。不同 output 模式会显著改变审计面。
- Integration:
@astrojs/sitemap、@astrojs/rss、astro-i18n等。多数审计发现都在这些怎么配上。
这篇适合谁看
跑 Astro 内容 / 营销站的独立开发和小团队——尤其是双语站,hreflang 和路由生成的相互作用很不直观。
什么时候适合用
大批量内容增加前后。升 Astro 大版本后(3.x / 4.x / 5.x 配置形态会变)。加 / 减 integration 后。任何生产行为偏离你心智模型的时候。站级审计跑完,再下钻到AI Category 页审计教程——重复 intro、内链弱、分页坏,通常只有专门审 Category 页时才暴露。
开始前准备
astro.config.mjs和src/pages/让 AI 能读到。审计要看两个。- 知道你的 output 模式(
output: 'static' | 'server' | 'hybrid')。不同模式 prompt 不同。 - 双语站要给出 locale 清单。hreflang 审计需要知道预期是什么。
具体步骤
- 把
astro.config.mjs和src/pages/的树(find src/pages -type f)作为上下文喂 agent。 - 跑路由审计。Prompt:
基于 astro.config 和 src/pages,列出 Astro build 会生成的
每个路由。标出:没 getStaticPaths 的 [...slug] 动态路由、
getStaticPaths 返回空、文件路径与另一路由冲突、locale
前缀缺失或不一致。
- 跑 sitemap 审计:
检查 @astrojs/sitemap 配置。列出生成 sitemap 会包含的每个
URL。和上一步路由列表交叉。标出:sitemap 有但没生成的、
生成了但 sitemap 排除的、双语 URL 的 alternate (hreflang)
缺失、lastmod 设错的。
- 跑 hreflang 审计:
对每个双语页对,确认:两边页面都在、各自 head 里的
<link rel="alternate" hreflang="..."> 指向对方、x-default
有、自指 hreflang 没漏。
- 有 RSS 就跑 RSS 审计:
读 @astrojs/rss 用法。确认:site URL 匹配生产、item 含
pubDate、feed 在 <head> 里被链接、feed URL 在阅读器能用。
- 分流发现:阻塞(页面坏或 canonical 错)、warn(缺锦上添花的)、info(风格)。先修阻塞。
- 修完重新生成站点,重跑审计。Sitemap 相关修复尤其需要新 build。
第一次实操怎么跑
- 只跑路由审计。每条被标的路由都读一遍。
- 每个 audit 说”缺失”的路由,在本地 dev server 上访问验证。审计可能错;当假设处理。
- 把一个真阳性端到端修了(比如某个 locale alternate 缺失)。只重跑同一个 audit——确认数量正好降 1。
- 再加下一个 audit(sitemap)。一次叠一个,才能追溯发现来源。
完成后检查
- 每条发现都指向具体文件 / 行了吗?“sitemap 错”不可操作;“sitemap 含 /en/foo 但 src/pages/en/foo.astro 不存在”可操作。
- 发现在新跑的
npm run build上可复现吗?审计说”X 缺失”但dist/X.html真在,说明审计读的是旧源。 - 双语断言里,AI 有没有区分”locale 缺失”和”locale 在但没被 link”?修法不同。
怎么复用这套流程
- 每个 prompt(路由 / sitemap / hreflang / RSS)单独存。按改动重跑不同子集。
- 配一个小 CI 脚本:跑
astro build,再用 grep 检查输出是否匹配预期路由清单。AI 审计变成”清单是否还对”的问题,而不是”哪里坏了”。 - 跟踪发现随时间的趋势。反复出现的类别(新 locale 总缺 hreflang)告诉你工具化的位置。
建议的操作流程
Astro 配置 + 页面 → 路由审 → sitemap 审 → hreflang 审 → RSS 审 → 修复清单 → 应用 → 重生 → 重审。Astro 专属层干净后,再配合一份按技术栈定制的 SEO checklist,把 render mode、schema、监控这些 Astro 之外的盲区一并抓出来。
容易踩的坑
- 让 AI “全面审一下”——拿到与 Astro 无关的通用 SEO 建议。
- 不重新 build 就审源文件——sitemap 和渲染后 HTML 直到再跑
astro build之前会漂移。 - 不带
astro build --verbose就信路由数量——output 模式会改变生成内容。 - 双语站跳 hreflang 审——这是 Astro 头号沉默 SEO 问题。
- 只在上线前跑——Astro 升级和 integration 版本升会让配置漂;季度重跑能抓到。
- 把
getStaticPaths返回空数组的警告当无害——那是发 404 的坏路由。
FAQ
- static / SSR / hybrid 审计会变吗?: 会。SSR 模式引入请求时渲染 bug,静态审计抓不到。提前告诉 AI 你的 output 模式。
- 用
astro-i18n而不是手动 locale 呢?: 同审计,配置路径不同。给 AI 配置文件它都能处理。 - 跟内容审计什么关系?: 内容审计查每文件 frontmatter;站审查框架级接线。两个都跑。看 Astro 内容审计教程。
- AI 能生成修复代码吗?: 能——问”给修复 N 的最小补丁”。配置类改动 AI 特别快且准。
- Starlight、Astro Studio 或其他 Astro 模板适用吗?: 适用,但模板可能抽象了 config;如果能看到,把 AI 指向底层
astro.config.mjs。