第五阶段:SEO 和多语言
目标:搜索引擎和 AI 助手理解每个页面。旧 URL 落在正确的位置。 每种额外语言与原始语言一样正确。
SEO 步骤
- 每项工作只有一个负责人。
- SEO 插件(默认使用 Rank Math)负责标题、元数据、站点地图和主 schema 图。
- 核心的
schema.php将该站点自身的类型添加到该图中。 - 禁用任何会输出自己 schema 的领域插件,确保只有一个图,而不是两个相互冲突的图。
tests/helpers/site.ts中的每个页面都通过npm run test:seo:- 标题 10–65 个字符;
- 描述 50–160 个字符;
- 绝对规范链接;
- 一个 H1;
lang属性;- 零个 Google Fonts 请求。
检查清单和编写规则:
references/seo-checklist.md。
- 结构化数据:
- Organization(或 LocalBusiness)只出现一次。
- 每个页面所对应的项目类型(Service, Product, TouristTrip, Course...)。
- 面包屑导航。
- 仅在页面上真正回答了问题时才使用 FAQ。
- 绝不出现没有价格的
Offer。 - 使用 Google 富结果测试和 Schema.org 验证器进行验证。
- Robots、站点地图、llms.txt:
- 线上环境允许爬取并列出站点地图;预发布环境阻止所有爬取(核心代码已完成此操作);
/llms.txt由核心代码提供;- 根据用途决定是否允许 AI 爬虫读取网站,然后检查边缘层是否默认阻止了它们(
wp-ship>cloudflare-edge.md)。
- 重定向: 遵守项目的
docs/reference/REDIRECT_RULES.md。将每个有流量或反向链接的旧 URL 映射到其最相关的新页面(301,一次跳转),并逐一测试。 - 重大变更前进行一致性检查。 在重新设计、迁移或语言上线之前,捕捉每个 URL 的标题、描述、规范链接和 H1。每步之后进行比较。仅在有意变更时重新捕捉,并在提交中注明原因。
- Search Console 和 Bing:
- 验证两者;
- 提交站点地图;
- 第一个月每周监控页面索引;
- Search Console 只保存 16 个月的数据,因此请尽早导出或开启批量导出。
语言步骤(每种语言先作为试点)
遵循 references/multilingual.md。简而言之:
- 第零条规则: 原始语言不变。其 URL、标题、规范标签和文本保持不变(一致性检查将证明这一点)。
- 试点: 语言基础(Polylang、语言切换器、hreflang、
.po/.mo中的字符串),然后是关键页面和主要项目。接着由母语者在预发布环境进行审查,然后发布。 - 其余内容 分批进行,每批都经过相同的审查。
- 尚未发布的语言 通过 302 重定向到原始语言,并且不出现在任何地方:不在站点地图、hreflang、菜单或语言切换器中。
关卡(在 SITE_STATUS.md 中勾选)
-
npm run test:seo在预发布环境通过;每种类型的一个页面上 Rich Results 测试干净 - 线上环境的站点地图、robots.txt 和 llms.txt 正确
- 旧 URL 重定向映射已就位并经过测试(或填“不适用”)
- 每个额外语言:试点通过、母语审查完成、hreflang 配对完整、每种语言的规范链接正确
我们曾遇到过的一些错误,请检查它们
- 翻译后的首页规范链接指向原始首页,导致 Google 在法文结果中删除
/fr/。翻译后的页面的规范链接应该是翻译后的 URL。 - 法文页面上的英文 JSON-LD:schema 必须跟随页面语言,或者在翻译完成之前省略。
- 将未发布语言通过 301 重定向到首页的关关卡。关卡 应该是 302。