Next.js 搜索引擎优化(SEO)——元数据配置详解
路由元数据(Metadata API)
Next.js 中的 元数据 API 是一个非常强大的功能,它允许我们为每个页面定义元数据,从而在被 搜索引擎索引 或 社交平台分享 时,有更好的展示效果。
在 Next.js 中使用元数据的两种方式
你可以在 layout.tsx
或 page.tsx
中定义元数据,方式有两种:
- 静态元数据对象
- 动态的
generateMetadata
函数
元数据规则
layout.tsx
和page.tsx
都可以导出元数据:- 布局元数据(layout)会应用到该布局下的所有页面
- 页面元数据(page)只应用于该页面
- 元数据遵循 自上而下 的顺序,从根布局开始
- 当多个层级都定义了相同字段时,会 合并 元数据:
- 页面元数据 的优先级高于 布局元数据
静态元数据对象示例
1 | // page.tsx |
动态生成元数据示例
1 | // page.tsx |
注意:
- 同一路由 不能同时导出 metadata 对象和 generateMetadata 函数
- 客户端组件(带 “use client”)无法使用元数据 API
元数据合并规则
假设:
- 根布局 app/layout.tsx:
- export const metadata = { title: ‘网站’ };
- 页面 app/about/page.tsx:
- export const metadata = { title: ‘关于我们’ };
最终页面标题为 “关于我们”,因为 页面元数据优先级更高。
元数据 title 字段的高级用法
title 可以是 字符串 或 对象:
1 |
|
总结
- 静态或动态二选一
- 页面元数据优先级最高
- 元数据从根到叶子合并