Sitecore

改进您的谷歌搜索结果与saxa

改进您的搜索结果在谷歌和其他搜索引擎中的显示方式对于吸引用户访问您的网站至关重要。这篇博文将向你展示如何使用Sitecore的saxa在搜索结果中显示评论分数。这对你的生意有什么帮助?为什么要向用户提供这些信息?在我的同事Megan Jensen的博客上找到了所有关于你为什么想这样做的科学在这里

最终目标

Reviewscoreexample

在这个谷歌的指环王搜索结果中,你可以看到有一个星级评分图表,一个总体评分,以及平均为8.8/10的评论总数。这些信息不是由谷歌神奇地拉出来的。你必须以一种谷歌能够消化这些信息的方式告诉谷歌这些评论分数。

使用模式。NET实现最终目标

org已经创建了数百个具有各种属性的对象,用于web页面。这种结构化数据被谷歌、必应和其他流行的应用程序识别。你可以通过创建这些应用程序可以使用的对象来增强你的在线形象。模式。NET是可应用的.NET库,它拥有这些对象的c#版本。它将用于将这些对象序列化为JSON/JSON- ld。序列化之后,您将把对象放在页面的元素中。这样做之后,数据就准备好供其他应用程序使用了。

步骤1 -在Sitecore中创建控制器渲染

Metadatarendering

在/sitecore/layout/renderings下面,创建一个控制器渲染,就像上面的截图一样。我的控制器将位于功能层的元数据项目中。

步骤2 -在中添加渲染到局部输出

站点核心——理解开发方法:站点核心展望
理解开发方法:站点核心展望

设计、构建和实现一流的体验不仅需要大量的计划、策略和时间,还需要正确的数字体验平台(DXP)和适合您业务需求的正确开发方法。

获取指南

在/sitecore/content///presentation/partial designs下创建一个标题为Metadata的部分设计。在表示详细信息中,添加步骤1中新创建的呈现。请确保将其放置在布局中的元素中输出的占位符中。然后将此元数据部分设计添加到您想要输出在/sitecore/content///presentation/page designs下找到的元数据的页面设计项中。

Metadatapartial

步骤3 -设置控制器,存储库,模型和视图

安装模式。NET包通过NuGet。

公共类SchemaMarkupModel {public bool HasJsonLd {get;设置;} public string JsonLd {get;设置;}}

然后创建一个类似于上面的模型来存储JSON-LD字符串元数据。

public类SchemaMarkupController: StandardController {private readonly IAbstractRepository _schemamarkupprespository;public SchemaMarkupController(IAbstractRepository schemaMarkupRepository) {_schemamarkuprepository = schemaMarkupRepository;}受保护的覆盖对象GetModel(){返回_schemaMarkupRespository.GetModel();}}

创建模型后,像上面那样创建控制器。您会记得在步骤1中创建的控制器呈现调用了Index方法。这个索引方法可以在标准控制器中找到,标准控制器是由saxa提供的对象。IAbstractRepository接口也由saxa提供。您将重写GetModel()方法来为刚刚创建的SchemaMarkupModel补充水分。

公共类SchemaMarkupRepository: IAbstractRepository{私有只读IContext _context;public SchemaMarkupRepository(IContext context) {_context = context ??throw new ArgumentNullException(nameof(context));} public SchemaMarkupModel GetModel() {SchemaMarkupModel model = new SchemaMarkupModel();模型。JsonLd = GetJsonLd(_context.Item);模型。string.IsNullOrEmpty(model.JsonLd);回归模型;} private string GetJsonLd(Item pageItem) {// TO DO:创建JSON-LD视图}}

接下来,您需要创建存储库,该存储库将用于实现控制器中的GetModel()方法。在上面的存储库中,我需要注入IContext,因此我可以使用它来检索当前页面项,以便为该特定页面定制JSON-LD数据。如果你不需要获取页面项,你可以去掉IContext位。您将在下一步中实现GetJsonLD()方法。

@model Feature.Metadata.Models.SchemaMarkupModel @{Layout = Sitecore.Configuration.Settings.GetSetting("XA.Foundation.Presentation. presentation . getsetting . "MetaComponentLayoutPath”、“. ./ saxa /Meta Component Layout.cshtml");} @if (Model.HasJsonLd) {}

最后,创建将输出您正在创建的JSON-LD对象的视图。您将在 .

您将需要使用Schema。NET对象,该对象最好地表示要显示评级的项目。如果要显示一本书的评级,请使用book对象。如果特定对象不存在,则使用通用Product对象。显示公司评级?使用组织对象。可以通过Schema使用许多不同的对象。NET来标记元数据。不过,请注意,避免在页面上放置误导内容的元数据。如果您有意或无意地添加了与页面内容不匹配的错误元数据,搜索引擎将对您的搜索分数进行惩罚。

留下回复

这个网站使用Akismet来减少垃圾邮件。了解如何处理您的评论数据

扎克同性恋,高级技术顾问,Perficient的Sitecore实践

更多来自作者

订阅每周博客文摘:

报名
关注我们
推特 Linkedin 脸谱网 Youtube Instagram