chore(seo): redirects 单跳 + root metadata hreflang,i18n 段化收尾#333
Merged
longsizhuo merged 1 commit intomainfrom May 6, 2026
Merged
chore(seo): redirects 单跳 + root metadata hreflang,i18n 段化收尾#333longsizhuo merged 1 commit intomainfrom
longsizhuo merged 1 commit intomainfrom
Conversation
i18n PR (#330) 之后存在两个 SEO 残留问题,本 PR 一并修: 1. next.config.mjs redirects 全部 destination 加 /zh/ 前缀 现状:destination 都是 /docs/...(不带 locale),用户访问老 URL 流程: /docs/CommunityShare/RAG/rag → 301 /docs/learn/ai/foundation-models/rag/rag → 308 /zh/docs/learn/ai/foundation-models/rag/rag (next-intl middleware) 两跳 redirect 对 SEO PageRank 不友好(Google 推荐单跳)。把 destination 直接指向带 /zh/ 前缀的 canonical URL,搜索引擎单跳到位。 改 46 条规则的 destination,source 保持不带 locale(匹配老外链)。 英语用户由站内 <LocaleToggle /> 切到 /en/...,cookie 同步偏好。 2. root layout metadata hreflang alternates.canonical 之前写死 /,i18n 段化后根路径会被 middleware redirect,搜索引擎拿到的 canonical 是个 redirect 目标,不准。 改为: - canonical: /zh(默认 locale 首页) - languages: zh-CN / en-US / x-default 三向声明 注:每个具体 [locale]/page 的 generateMetadata 会覆盖 root metadata 的 languages,给到该 page 各 locale 的具体 URL。这里 root 只作 fallback。
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
问题
i18n PR (#330) 之后两个 SEO 残留没收:
1. redirects 两跳 → 单跳
next.config.mjs现有 46 条 redirects 的 destination 都是/docs/...(不带 locale)。用户访问老 URL:两跳 redirect 对 SEO PageRank 不友好(Google 推荐单跳)。
2. root layout metadata canonical 写死
/i18n 段化后根路径
/会被 middleware 308 redirect 到/zh,搜索引擎拿到的 canonical 是个 redirect 目标 URL。改
1. redirects destination 全部加
/zh/前缀46 条规则一把改完。
source保持不带 locale 形式(匹配老外链),destination直接指向带/zh/前缀的 canonical URL,单跳到位。英语用户由站内
<LocaleToggle />切到/en/...,cookie 同步偏好(next-intl 会记NEXT_LOCALE)。2. root metadata 的 alternates
每个具体
[locale]/page的generateMetadata会覆盖 root metadata 的 languages,给到该 page 各 locale 的具体 URL。root metadata 这里只作 fallback(应用到 admin / api / 没显式 generateMetadata 的页面)。不在本 PR 范围
[locale]/page.tsx(首页) 的generateMetadata留到 PR perf(homepage): 首页 SSG 化,剩 25% Vercel CPU 归零 #332 合并后再单独加(避免冲突)/[locale]/events、/[locale]/feed等)也都没 generateMetadata,下一轮统一加Test plan
curl -I https://<preview>/docs/CommunityShare/RAG/rag看到location: /zh/docs/learn/ai/foundation-models/rag/rag(一次 301,无二跳)/docs/ai/...→/zh/docs/learn/ai/...单跳<link rel="alternate" hreflang="zh-CN" href="/zh">三条