为客户端付费专区处理 isAccessibleForFree

2024-02-24

试图理解Google 付费内容指南 https://developers.google.com/search/docs/data-types/paywalled-content.

我的网站是这样工作的:

  • 没有付费订阅的用户每周将获得几次免费阅读。有些js决定他们是否可以阅读这篇文章或者我们是否应该触发付费专区。
  • 文章页面的内容位于.paid-content元素。当付费墙触发时,它将删除该元素并将其替换为.paywall元素显示“请购买订阅以继续阅读我们的网站”。

目前我的 JSON-LD 看起来像这样

"hasPart":[  
      {  
         "@type":"WebPageElement",
         "isAccessibleForFree":false,
         "cssSelector":".paid-content"
      },
      {  
         "@type":"WebPageElement",
         "isAccessibleForFree":false,
         "cssSelector":".paywall"
      }
   ],
   "isAccessibleForFree":false

问题:

  1. Should .paywall甚至被列入hasParts大批?这个元素只是说“请购买订阅”。它不包含任何对免费用户隐藏的文本。

  2. 就我而言,在任何给定时间页面上只会存在这两个元素之一。这可以吗?或者如果谷歌爬虫无法找到 中指定的所有元素,它会认为这是一个问题吗?hasPart array?


简短回答:

对于谷歌来说,hasPart > cssSelector是为了指示visually隐藏在付费墙后面的内容。在你的例子中,你要么完全removing内容或公开显示所有内容,因此模式在任何一种情况下都是无关且不必要的。

.paywall没有必要,因为cssSelector应该引用包装付费内容的元素的类,而不仅仅是付费墙消息(对所有用户可见)。

.paid-content正在包装对所有用户可见的内容,这也将使该模式变得不必要,因为您应该只定位视觉上隐藏在付费专区后面的内容(见下文和他们的第二个例子 https://developers.google.com/search/docs/data-types/paywalled-content#multiple-sections).

我不确定 Google 对这种与 DOM 不匹配的模式标记有何反应,但我认为在这种情况下它可能会被忽略,因为他们正在寻找非常具体的东西。没有内容索引的页面是这里更大的问题。

长答案:

拥有这种付费专区模式的意义(从谷歌的角度来看)可以归结为一个主要原因 https://support.google.com/news/publisher-center/answer/40543:

出版商应将付费内容与结构化数据一起封装起来 帮助 Google 将付费内容与以下做法区分开来: 伪装,向 Googlebot 提供的内容与 向用户提供的内容。

Cloaking https://support.google.com/webmasters/answer/66355(即隐藏页面上的内容以获取 SEO 收益)多年来一直是“黑帽子”使用的重要策略。谷歌将尽可能惩罚这种做法(例如2006年的宝马 http://news.bbc.co.uk/2/hi/4685750.stm)并且肯定在他们的算法上做了很多工作来自动捕获这些东西。问题是 - 现在我们有像您这样的付费墙网站,它们“隐藏内容”,但出于不同(且不那么可疑)的原因。

不过,您并没有在视觉上隐藏您的内容,而是将内容从页面上剥离。这种方法的问题在于,你可能会面临谷歌机器人也触及付费墙并且无法正确索引页面的风险 - 因为内容根本不存在。即使您使用 JavaScript 剥离内容这是一个风险 https://webmasters.googleblog.com/2014/05/understanding-web-pages-better.html.

这就是为什么典型的付费墙网站会覆盖或隐藏 CSS 覆盖层后面的内容overflow:hidden在身体上。这种方法可能会触发谷歌的隐藏危险信号,这就是为什么他们现在要求人们使用它(我只是假设最后一句话)。

因此,考虑到这一点并查看您提供的链接中的 Google 示例,cssSelector只是说:“此内容不是某种伪装/黑帽技巧,它只是付费墙,所以我们仍然对其进行索引。”

对你来说,底线是你的示例中的架构并不重要......因为要么你向用户展示所有内容并且没有任何东西可以向Google证明,要么你正在显示一个没有内容的页面并且没有任何内容谷歌需要关心的隐藏问题。

因此,如果这是您的事,那么经验法则是:

  1. 如果需要,请勿从页面中删除内容(即使通过 JS) 索引
  2. 如果您付费墙内容,请将其隐藏并通过使用他们的帮助Google 模式指令

其他松散相关的注释:

  1. 如果你把 cssSelector 拿出来结构化数据工具 https://search.google.com/structured-data/testing-tool, 它仍然 验证,但我并不总是相信该工具是正确的
  2. 谷歌有部分和schema.org hasPart https://schema.org/hasPart似乎不太匹配 向上
  3. 让我想知道这不仅为新的黑帽伎俩打开了大门
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为客户端付费专区处理 isAccessibleForFree 的相关文章

随机推荐

  • 开发过程中如何避免“死亡交换”?

    可能每个人在开发过程中都至少遇到过一次这个问题 while some condition here that somehow never will be false yourvector push back new SomeType 正如您
  • 滑动即可更改视图

    下面的代码容易写吗 我有一个表格视图 当用户选择一个单元格时 会加载详细视图 我希望允许用户通过向左和向右滑动来导航代表表格视图中项目的项目 详细视图 其工作方式与例如iPhone 的主屏幕 例如 滑动时 一页移出屏幕 然后出现下一页 我已
  • 解析 Boost program_options 中配置文件的未注册选项?

    使用命令行选项 我可以执行以下操作 po variables map vm auto parsedOptions po command line parser argc argv options optionsDescription1 al
  • 导入 React、{Component} 而不仅仅是 React 有什么好处?

    写作的最大好处是什么 import React Component from react class Link extends Component 代替 import React from react class Link extends
  • 在 Linux Mint 17.3 上安装 python 3.5

    我对 Linux 很陌生 想使用 python 因为它是我在学校学习的语言 我在网上查了一下我当前的版本是 2 7 这对我来说没有好处 因为我正在学习 python 3 但是 我听说更改系统 python 版本可能会非常糟糕 所以我不知道该
  • 如何与 UIActivityViewController 共享文本文件

    我尝试共享文件内容的 NSData 对象 活动视图中出现邮件选项 然后显示邮件撰写控制器 但没有附件 我尝试过与文件路径共享 NSUrl 但在这种情况下 当活动视图出现时 它会占据整个屏幕 但除了底部的 取消 按钮之外 它是空白的 诡异的
  • 使用 Ansible 停止可能不存在的服务

    我正在使用 Ansible2 6 1 我试图确保某些服务没有在目标主机上运行 问题是该服务可能在某些主机上根本不存在 如果是这种情况 Ansible 将因缺少服务而失败并出现错误 服务由Systemd 使用服务模块 name Stop se
  • 如何将 PDF 转换为文本,以便可以使用 PHP 解析该文本?

    我的 PDF 大多是简单格式的文本 我想用 PHP 解析文本 我意识到 PDF 是二进制的 因此我需要一个实用程序或库将其转换为文本 有什么建议吗 第三方软件可以转储PDF文件的文本内容 例如 xdoc2txt 仅限 Windows 在 W
  • 如何在 Angular 5 中实现无限滚动分页?

    我需要在 Angular 5 中实现无限滚动分页 我尝试过无限滚动 但它无法正常工作 我需要显示前 10 条帖子及其评论 滚动后这 10 条评论需要再次调用服务 10 条帖子 并将数据附加到现有帖子中 您可以使用ngx 无限滚动 npm i
  • 方法指针转换

    我正在为教育目的编写一个代表类 但遇到了一个小问题 委托不仅必须能够调用函数 还必须能够调用对象的成员方法 这意味着我需要存储指向方法的指针 void classname methodPtr 我需要存储指向不同类和不同参数列表的方法的指针
  • 未找到以下 ICU 库: -- i18n(必需)

    我必须构建 miktex 源代码 我从 github 安装源代码 他们给了我构建它的链接 https miktex org howto build mac https miktex org howto build mac 我按照链接中给出的
  • FancyBox 根本不工作

    我在运行 fancybox 时遇到问题 我也在运行其他一些 jquery 以下是正在运行的脚本
  • 使用 Tortoise SVN 跨 SVN 存储库移动目录

    如果两个目录都在同一个 SVN 存储库中 如何将子目录从一个目录移动到另一个目录 我正在使用乌龟SVN 选择要移动的文件夹 文件 然后右键单击它们并将它们拖动到要移动的位置 菜单将出现一个选项 SVN 将版本控制文件移至此处 正如所澄清的p
  • Android - 使用 jarsigner 签署我的 apk 时出错

    我制作了一个这样的密钥文件 C Users Alex gt keytool genkey v keystore alexkey keystore alias alexkey keyalg RSA keysize 2048 validity
  • 使用 MVEL 有什么优势?

    我正在学习jBPM引擎 我注意到它在流程设计中默认使用MVEL方言 那么问题来了 使用MVEL代替纯Java有什么优势呢 如果我开始用 Java 编写更复杂的流程 是否会遇到麻烦 jBPM 文档写道 请注意 MVEL 接受任何有效的 Jav
  • 如何将订单项自定义字段值从机会传递到销售订单?

    我在机会产品选项卡中有一个自定义行号字段 供客户对所选产品重新排序 并且网格按自定义字段值排序 我试图将机会的价值传递给也具有类似字段的销售订单 我尝试过以下代码但它不起作用 PXGraph InstanceCreated AddHandl
  • 通过 skimage.io.imread 读取的图像形状可疑

    我正在尝试使用 skimage io imread 读取 RGB 图像 但看完图片后发现图片形状不对 print img shape 表明 图像形状是 2 显示问题的完整代码是 from skimage import io img io i
  • 如何从 Pandas 数据框中删除行列表?

    我有一个数据框 df gt gt gt df sales discount net sales cogs STK ID RPT Date 600141 20060331 2 709 NaN 2 709 2 245 20060630 6 59
  • 同一函数的模板化版本和非模板化版本是否被视为重载?

    一个非常正式的问题 这被认为是过载吗 删除模板与仅重载参数有根本不同吗 template
  • 为客户端付费专区处理 isAccessibleForFree

    试图理解Google 付费内容指南 https developers google com search docs data types paywalled content 我的网站是这样工作的 没有付费订阅的用户每周将获得几次免费阅读 有