Yoast SEO已经发布的14.0版本标志着Yoast SEO插件进入新时代的开始。在其中,我们重写了整个元数据引擎,并建立了一个称为indexables的抽象。我们相信此重写将推动WordPress + Yoast SEO成为SEO未来多年的绝佳平台!请允许我向您介绍技术进步及其意义。

像搜索引擎一样思考

Yoast SEO一直在像搜索引擎一样思考。搜索引擎希望检索尽可能多的信息,并使用它为搜索者提供对其问题的最佳答案。这意味着我们经常不得不问自己;搜索引擎如何处理信息?

网络上的信息可通过URL寻址。带有URL的任何内容都可以被发现,抓取,建立索引并显示在搜索结果中。WordPress具有帖子,页面,自定义帖子类型,类别,标签,自定义分类法,不同类型的档案,特殊页面甚至可能还有更多类型的内容。您认为像Google这样的搜索引擎会在乎吗?并非如此。它只是查找带有URL的东西,它可以抓取并编制索引。

WordPress更好的信息架构

从SEO角度来看,WordPress中的任何类型的页面都只是可索引的对象。这是导致可索引的基本直觉。在其核心中,可索引对象只是一个数据库表,其中包含站点上所有可索引对象的元数据和URL。抽象化规范了WordPress中任何类型页面的信息体系结构,并使其元数据可直接查询。最重要的是,我们现在可以轻松地将不同的可索引对象彼此关联,并与其他事物关联起来,例如链接,重定向,附件,甚至可能是Schema标记。

这是一笔大买卖。例如,链接是从具有URL(可索引)的一个信息对象到具有URL(另一个可索引)的另一个信息对象的引用。我们已经在WordPress中存储帖子链接了一段时间了。现在,我们可以开始对WordPress中的任何类型的页面执行此操作。通过将它们与可索引对象相关联,我们可以在WordPress内部创建站点上所有信息的图形。这将使我们能够为用户提供有关其网站的SEO的各种有用的见解。

indexables带来的最直接受益

借助Yoast SEO 14.0,我们似乎正在获得巨大的性能提升,大大降低了元数据功能的更改成本,并且可以为希望与我们集成的第三方开发人员提供更好,更稳定的API。最后但并非最不重要的一点是,Yoast SEO现在已经完全可以使用Headless WordPress。让我快速为您介绍这些好处以及它们的产生方式。

性能提升

WordPress提供了标准的API,用于存储内容资源(例如帖子和字词)的元数据。文章meta和单词meta API实现了实体属性值(EAV)模型。为了使WordPress受益,这是一个非常灵活和开放的模型,它使任何开发人员都可以轻松地将自定义字段或元数据片段添加到帖子或类别中。但是,此模型的查询也很快变得很慢,尤其是在大型站点和许多自定义字段上。这是所有SEO插件都有降低网站速度的原因的一部分。他们只是要输出大量的元数据,所有这些元数据都需要以低效的方式分别查询。

通过移至自定义表,我们从EAV移至用于获取SEO元数据的关系模型,这使得查询WordPress中任何类型页面的元数据变得更加容易和高效。当您开始将对象彼此关联时,此优势变得尤为重要。现在,可索引的对象直接映射到术语或帖子。现在,我们可以在单个查询中获取所有数据,这使得任何请求都更快。

通过将URL与可索引存储在一起,可以使我们获得另一个巨大的性能提升。因此,现在可以轻而易举地生成面包屑,而在过去,过去常常需要进行一些昂贵的计算。在将来的版本中,我们还计划直接从可索引对象生成XML网站地图。这可能会使我们的XML网站地图成为网络上最快,最可靠的网站,对于大型网站而言,这尤其是个好消息,因为对于这些网站而言,生成XML网站地图一直是一件令人头疼的事情。

降低变更成本

借助Yoast SEO 14.0,我们已经完全重写了前端代码及其结构方式。我们正在从与PHP 5.2兼容的程序样式体系结构过渡到一种面向对象的体系结构,该体系结构扩展了对更高版本的PHP(5.6+)可用的所有功能的使用范围。我们开始使用名称空间,Symfony的依赖项注入容器,纯PHP服务与有状态对象(例如ORM模型和值对象)之间的严格分隔。

这些工具和策略帮助我们以更容易推理的方式构造代码。这样做的好处是:

  • 代码变得更容易调试。
  • 更改更容易进行,因为代码概念定义得更好,而且更清楚代码的哪一部分负责什么。
  • 代码更改的后果更易于监督,从而减少了无法预料的错误的可能性。
  • 该代码变得易于进行单元测试,这有助于进一步防止将来的回归。
  • 由于上述原因,更改或修复代码中某些内容的时间大大减少了。这意味着我们可以更快地迭代新功能并更快地修复错误。

在过去的几个月中,我们可以亲身体验这些好处。我们已经看到,我们的开发团队在了解功能方面的时间要轻松得多。他们甚至提出了聪明而关键的问题,因为不一致的地方更容易发现。这已经导致发现了一些小错误和不一致,否则我们可能会忽略它们。我们还看到了生产率的显着提高,开发人员在使用新代码时通常可以达到两倍的生产率甚至更高。

优化了surfaces APIs 更易集成

弄清楚如何为集成商提供一致的API一直是我们面临的长期挑战。在WordPress之类的平台中,执行的任何代码段都与所有其他活动插件和主题共享相同的运行时。这意味着我们的“公共”界面在技术上一直可供集成商使用。第三方代码可以调用任何类,公共方法或公共功能。

现在对我们来说,问题一直是:您应该使用那些吗?我们从来都不喜欢依赖过滤器和操作之外的公共API的插件。这意味着我们必须永远保持这些API的向后兼容性,以防止站点中断。这会使我们放慢脚步,并再次增加变更成本。对于WordPress本身,将所有API视为公开是更有意义的。毕竟,平台是运行所有代码的平台。但是插件呢?将任何插件都像您控制的标准库一样对待其他依赖项时,会有一些感觉。

我认为我们现在已经提出了一种非常优雅的模式,可以为开发人员提供与Yoast插件的可持续API合同。我们称其为Surface,并希望其他插件作者也将开始采用这种模式。表面基本上是我们明确公开供第三方使用的对象,并且我们承诺保持向后兼容。

为此,我们引入了一个全局YoastSEO()函数。它可以直接访问我们的DI容器并返回一个顶层Surface,该顶层Surface通过getters方法暴露其他Surface(从而可能暴露出更多的Surface)。通过Surface,我们可以直接从容器公开纯PHP服务,存储库和工厂,也可以创建更精简的对象,这些对象仅公开行为的一部分。虽然全局可用,但是每个Surface本身就是一个对象,您可以简单地将其插入代码中,从而使集成人员可以保持其代码与Yoast SEO分离。去看看我们的新Surface

Headless WordPress

借助Yoast SEO 14.0,为任何前端请求生成元数据输出将变得非常容易和高效。因此,我们决定添加一个简单的元数据终结点,这将使网站建设者可以在headless安装中使用Yoast SEO。现在,您可以简单地通过REST API获取页面的元数据,并将其输出到您喜欢的任何位置。

如何为您的所有页面生成索引?

如果您的网站上的每个页面都存储有可索引的索引,则Yoast SEO效果最佳。该插件会随着时间的推移自动生成它们,但可能无法涵盖所有​​内容。因此,最重要的是,我们还提供了可一次为整个网站生成索引的工具。这是我们提供的:

  • 每当保存内容或其元数据时,Yoast SEO都会添加/更新可索引的内容。
  • 每当页面被访问并且尚无可索引的页面时,Yoast SEO都会生成并存储可索引的页面。每页只需要执行一次。之后,我们将只使用可索引的索引,页面加载会更快。任何获得流量的页面最终都将具有可索引的索引。
  • 我们在Yoast SEO设置中添加了一个工具,以允许网站管理员一次为整个网站添加可索引的内容。
  • 我们添加了WP CLI命令,以允许站点管理员通过命令行为整个站点添加索引。

展望未来

我们今天看到的实际上只是开始。信不信由你,可索引变量的真正好处在于我们可以在此之上构建。我们现在可以开始提供功能,这将为整个站点范围的SEO赋予全新的含义。尽管在此不做过多说明,但我们将在此基础上构建的第一件事是内部链接算法的完整修订版。通过在可索引对象之上的WordPress中构建搜索引擎,我们很快就能在整个站点范围内使我们的内部链接建议更加准确。听起来有点疯狂吧?但是,有了索引和计算语言学家的一些帮助,我们设法使所有这些工作变得相对简单!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注