You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js 13 Pages路由:特定页面Head组件元标签不生效问题

Next.js Pages目录页面专属OG元标签不生效的解决办法

你遇到的问题是:全局_document.js里的OG元标签没有被/one页面的专属标签替换,导致爬虫和社交平台(比如Discord)读取到的还是全局信息,仅页面标题生效。

问题原因

Next.js的Head组件依赖key属性识别重复元标签并完成替换。你仅给description标签设置了key="desc",所以该标签能被页面内容覆盖,但所有OG标签(og:title、og:description等)未配置唯一key,导致全局与页面的OG标签同时存在于HTML中,爬虫会优先读取全局的那一组。

解决步骤

1. 给全局_document.js的所有OG元标签添加唯一key

修改_document.js中的Head部分,为每个OG标签添加对应key:

<Head>
  <meta
    name="description"
    content="General description."
    key="desc"
  />
  <meta property="og:title" content="Page.com - The Best Source for some stuff" key="og-title" />
  <meta
    property="og:description"
    content="General description."
    key="og-desc"
  />
  <meta
    property="og:image"
    content="/images/page.webp"
    key="og-image"
  />
  <meta property="og:url" content="https://page.com/" key="og-url" /> 
</Head>

2. 在/one页面的Head组件中,给对应OG标签添加相同key

通过相同key让Next.js用页面标签替换全局标签:

<Head>
  <title>Page one</title>
  <meta name="viewport" content="initial-scale=1.0, width=device-width" />
  <meta name="description" content="Specific description for page one." key="desc"/>

  <meta property="og:title" content="Specific page title" key="og-title" />
  <meta
    property="og:description"
    content="Specific description for page one."
    key="og-desc"
  />
  <meta
    property="og:image"
    content="/images/page.webp"
    key="og-image"
  />
  <meta property="og:url" content="https://page.com/one" key="og-url" /> 
</Head>

3. 验证效果

部署修改后的代码,访问/one页面并右键查看源代码,确认全局OG标签已被页面专属标签替换,无重复内容。

额外注意

  • 若页面为静态生成(SSG),需重新构建项目,确保新元标签正确生成到静态HTML中;
  • 若为服务端渲染(SSR),需确保服务端能正确渲染页面的Head内容。

内容的提问来源于stack exchange,提问作者Luis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 15:52:43