MuseMVP 文档

SEO

将你的应用针对搜索引擎进行优化的最佳实践与实现说明。

MuseMVP 内置了完整的 SEO 基础设施,涵盖 sitemap、robots、页面 metadata 与 Open Graph 配置。本文介绍各部分的实现位置与自定义方式。

SEO 能力概览

Sitemap

自动生成 sitemap.xml,包含首页、营销页、博客、文档、法律页等多语言 URL。

Robots

默认允许所有爬虫访问全站,可按需在 robots.ts 中调整规则。

Metadata

各页面通过 generateMetadata 输出 title、description、Open Graph 等标签。

多语言

sitemap 与 metadata 均支持 i18n,按 locale 生成对应 URL 与文案。

核心实现

sitemap.xml

sitemap.ts 会聚合以下页面类型:

  • 首页:按 config.i18n.locales 生成各语言首页 URL。
  • 静态营销页:changelog、contact、pricing、features 等,由 config.ui.* 开关控制是否纳入。
  • 法律页:来自 Content CollectionsallLegalPages
  • 博客文章content/posts 下已发布文章,需 config.ui.blog.enabled
  • 文档页content/docs 下所有文档,需 config.ui.docs.enabled
// src/app/sitemap.ts 结构示意
export default async function sitemap(): Promise<MetadataRoute.Sitemap> {
  const baseUrl = getBaseUrl();
  const locales = config.i18n.enabled
    ? Object.keys(config.i18n.locales)
    : [config.i18n.defaultLocale];

  return [
    // 首页
    ...locales.map((locale) => ({ url: new URL(`/${getSiteMapLocale(locale)}`, baseUrl).href, ... })),
    // 静态营销页(根据 config 过滤)
    // 法律页
    // 博客
    // 文档
  ];
}

自定义路由纳入 Sitemap

config.ui.headerConfig.customRoutes 中注册且 enabled: trueexternal: false 的路由会自动加入 sitemap 的静态页列表。

robots.txt

默认配置允许所有爬虫访问全站:

// src/app/robots.ts
export default function robots(): MetadataRoute.Robots {
  return {
    rules: {
      userAgent: "*",
      allow: "/",
    },
  };
}

如需禁止某些路径,可添加 disallow 规则,例如:

rules: {
  userAgent: "*",
  allow: "/",
  disallow: ["/api/", "/app/settings/"],
},

metadata

各页面通过 Next.js generateMetadata 输出 SEO 标签:

  • 根布局src/app/layout.tsx):metadataBasemanifest、默认 openGraph
  • 落地页src/app/(landing-page)/[locale]/layout.tsx):按 locale 的 titledescriptionkeywords
  • 博客/文档/法律页:各自 page.tsx 中的 generateMetadata,基于内容动态生成

i18n 与 Metadata

使用 next-intlgetTranslations 获取当前语言的 SEO 文案,确保多语言页面的 metadata 正确。

上线前 SEO 检查清单

确认 NEXT_PUBLIC_SITE_URL 或等效环境变量指向生产域名,保证 sitemap 与 OG 链接正确。

访问 https://你的域名/sitemap.xmlhttps://你的域名/robots.txt 验证输出。

使用 Google Search Console 提交 sitemap。

用浏览器开发者工具或 Open Graph 调试工具 检查分享预览。

相关文档