概览
为每个页面使用一个元数据源
Blazor 应用程序可以从同一布局呈现许多页面。中央元数据组件使每个页面标题、描述、规范 URL、语言链接、社交预览和模式负载保持一致。
适用性检查
中央元数据胜过复制粘贴的头部标记
将头标签复制到每个页面中会暂时起作用,然后微小的差异会产生重复的标题、过时的规范 URL、缺少的 hreflang 链接或不再与可见页面匹配的架构。组件将规则保存在一处。
当页面共享 SEO 规则时使用组件
- 许多页面共享相同的标题、描述、规范、hreflang、开放图谱和机器人规则。
- 本地化页面需要一致的文化链接和 x-default 处理。
- 文章、常见问题解答、产品或软件页面需要与可见内容匹配的 JSON-LD。
- 编辑或开发人员应更新元数据而不编辑布局标记。
避免分散的头部标记
- 每个页面都手工编写自己的头标签。
- H1、标题和元描述重复相同的句子。
- 页面移动后,规范 URL 会指向旧路由。
- 删除可见的常见问题解答后,常见问题解答架构仍保持在线状态。
目录
SEO 信号
保持页面标识一致
搜索引擎、社交平台和人工智能爬虫读取的信号都略有不同。他们仍然应该用简单的语言描述同一页面。
清楚地命名页面
使用包含主要主题的简短标题,而无需逐字复制 H1。
邀请下一步行动
编写自然的元描述,解释其优点并为用户提供打开、评论或购买的理由。
选择一个首选 URL
规范 URL 应指向您想要索引的页面,而不是跟踪链接、重定向或过时的路由。
链接语言版本
文化感知页面需要与真实 URL 匹配的 hreflang 链接,并包含合理的 x-default 页面。
控制共享预览
社交预览应使用与其余元数据相同的页面标题、描述、规范 URL 和准备好的图像。
刻意设置抓取规则
每页使用机器人和 AI 指令,以便索引、片段、存档和 AI 使用符合内容政策。
结构化数据
从同一页面元数据生成架构
JSON-LD 不应讲述与页面不同的故事。使用可见文章已使用的相同标题、描述、规范 URL、发布日期、图像、面包屑和常见问题解答数据。
文章架构
当页面具有真实标题、发布日期、修改日期、图像和部分结构时,请使用文章架构。
FAQ 架构
仅当页面上可见相同的问题和答案时才使用 FAQPage。
BreadcrumbList
从用户可以通过链接和导航理解的相同层次结构构建面包屑。
软件或产品
仅当价格、报价、名称和描述对用户可见时才添加产品或软件架构。
常见错误
大多数元数据错误都是小的不匹配
该组件非常有用,因为它将重复的检查转变为一种可重复的模式。目标不是更多标签。目标是减少矛盾。
不要将 H1 复制到标题和描述中
标题、H1 和元描述可以使用相同的主题,但每个主题都应该有不同的工作。
不要忘记翻译后的网址
如果页面存在多种文化,元数据和 hreflang 应指向匹配的文化路线。
不要重复使用过时的共享图像
Open Graph 和 JSON-LD 图像应代表此页面,而不是使用该组件的最后一篇文章。
不要标记隐藏内容
FAQ和产品架构应该描述用户在页面上实际可以看到的内容。
实现
连接组件一次,然后向其提供页面数据
该模式故意保持无聊:定义页面元数据对象,在布局或页面中呈现组件,并在页面需要结构化数据时传递匹配的 JSON-LD。
定义页面元数据
var metadata = new PageMetaData(culture)
{
Name = PageLinks.BlazorSEOMetaDataComponent,
Title = "Blazor SEO Metadata Component for Blazor Apps",
Description = "Keep title, description, canonical, hreflang, Open Graph, and JSON-LD aligned.",
ImageUrl = "/images/blazor/metadatacomponente/opengraph/hero-1200.png",
Url = PageLinks.BlazorSEOMetaDataComponent,
Robots = RobotsMetaTagExtensions.Join(RobotsMetaTagEnum.Index, RobotsMetaTagEnum.Follow),
AllowAiIndexing = true
};在布局中渲染元数据
@inherits LayoutComponentBase
<MetadataComponent MetaData="@PageMeta"
JsonLd="@Schema?.JsonLd"
RenderArticleMeta="@Schema?.RenderArticleMeta" />
@Body在页面上附加 JSON-LD
@page "/{Culture}/guide/"
@inherits PageBase
<MetadataComponent MetaData="@PageMeta"
JsonLd="@Schema?.JsonLd"
RenderArticleMeta="@Schema?.RenderArticleMeta" />
<ArticleFaq Id="faq" FAQ="@FAQs" />验证
发布前检查输出
仅当呈现的 HTML 正确时,元数据组件才有用。在发布之前检查页面源、测试共享预览、验证架构并爬网本地化 URL。
查看源码
检查渲染的 HTML 头,而不仅仅是 Razor 文件。爬虫阅读最终回复。
验证架构
运行富结果或架构验证并修复指向缺失可见内容的警告。
测试分享
使用社交预览调试器检查标题、描述、图像和缓存行为。
抓取语言环境
在发布之前抓取文化 URL 以捕获损坏的规范、hreflang 或 x-default 链接。
相关资源
Blazor SEO 元数据的下一个指南
当您需要有关路由、结构化数据、社交预览或 Blazor 平台本身的更多详细信息时,请使用这些指南。
常见问题
Blazor 元数据组件有什么作用?
它从一种类型的源呈现页面元数据:标题、描述、规范 URL、hreflang 链接、开放图标签、机器人指令和可选的 JSON-LD。
为什么标题、H1 和元描述应该不同?
他们出现在不同的地方。标题有助于搜索和浏览器选项卡,H1 命名可见页面,描述应邀请下一步操作。
该组件是否可以防止重复内容?
它有助于保持规范 URL 和 hreflang 链接的一致性。您仍然需要针对不同意图或语言的页面的独特页面副本和描述。
JSON-LD 如何融入组件?
该页面根据文章、常见问题解答、面包屑、产品或软件部分使用的相同元数据和可见内容构建 JSON-LD。
我可以控制每个页面的AI爬虫标签吗?
是的。使用页面级机器人和 AI 选项,以便索引、片段、存档、noai 和 noimageai 规则与该页面的内容策略相匹配。
我可以在 Blazor WebAssembly 中使用它吗?
是的,但是当标签出现在初始 HTML 响应中时,SEO 元数据最强。服务器渲染或预渲染通常是更安全的选择。