Schema.org 中网页结构的隐含性

2023-11-25

在阅读了数千篇帖子、问题、博客文章和意见之后,我仍然对如何使用微数据标记网页感到有点困惑。如果微数据的主要目的是帮助搜索引擎更好地理解网页的内容(并且隐式假设网页),那么在 body 元素中从 itemtype Webpage 开始,然后继续标记其余部分是否正确?嵌套元素定义哪个是主要实体,或者最好从理想情况下是网页主要主题的项目类型开始并在顶层关联属性,或者最好在顶层具有不同的项目类型(即网页) 、博客文章和页面的主要主题)?

一个例子可以更好地解释我的问题:如果我必须标记一个包含有关特定主题(比如说无线技术)的博客文章的网页,那么顶层的项目应该是什么?应该是网页、博客还是无线技术?


越多越好(有例外)

当涉及结构化数据时,在典型情况下,指南应该是:越多越好。如果您提供更加结构化的数据(即,使事情变得明确而不是隐式),那么消费者找到可以利用的东西的机会就会更高。

不遵循本指南的原因可能包括:

  • 您确切地知道您想要支持哪些消费者以及他们在寻找什么,并且您不关心其他(例如未知或新的)消费者。
  • 您知道消费者因无法应对某些结构而受到干扰。
  • 您需要保存尽可能多的字符(带宽/性能)。
  • 提供额外的结构化数据太复杂/昂贵。
  • 结构化数据很可能对任何可以想象的消费者来说都是无用的。

What WebPage offers

因此,除非您有理由不这样做,否则最好提供WebPage typeif您可以提供可能有趣的数据。例如:

  • 它允许您为页面和页面上的事物或页面代表的内容提供不同的 URI,例如人、建筑物等(请参阅为什么这很有用 and 一个稍微更技术性的答案和细节).

  • hasPart允许您连接可能是顶级项目的项目,对于这些项目来说,它们之间的关系不一定很清楚。

  • isPartOf允许你做这个WebPage其他内容的一部分(例如,如果您提供了网站的一部分)WebSite项目,或CollectionPage).

  • 您的页面上有面包屑:使用breadcrumb以明确它们代表此页面的面包屑。

  • 您提供辅助功能信息:使用accessibilityAPI, accessibilityControl, accessibilityFeature, accessibilityHazard

  • The author/contributor/copyrightHolder/editor/funder/ETC。页面的内容与author/…例如页面的主要内容。

  • 页面有不同的license比页面中包含的某些部分。

  • 您提供可以在页面上/通过页面完成的操作:使用potentialAction.

当然它也允许你使用mainEntity,但如果这是您唯一需要的WebPageitem 对于,你也可以使用逆属性mainEntityOfPage.

更具体WebPage types

对于更具体的类型也是如此,它们给出了额外的信号:

  • AboutPage如果这是一个关于例如的页面网站、您或您的组织。
  • CheckoutPage如果是网上商店的结账页面。
  • CollectionPage如果它是一个关于多个内容的页面(例如,列出博客文章、画廊、产品类别等的分页页面)。
  • ContactPage如果是联系页面。
  • ItemPage如果它是关于一件事情(例如,一篇博客文章、一张照片……)。
  • ProfilePage例如用于用户配置文件。
  • QAPage如果是……好吧,就是这一页。
  • SearchResultsPage用于搜索功能的结果页面。

你的例子

您的三个案例是:

<!-- A - only the topic -->
<div itemscope itemtype="http://schema.org/Thing">
  <span itemprop="name">wireless technology</span>
</div>
<!-- B - the blog post + the topic -->
<div itemscope itemtype="http://schema.org/BlogPosting">
  <div itemprop="about" itemscope itemtype="http://schema.org/Thing">
    <span itemprop="name">wireless technology</span>
  </div>
</div>
<!-- C - the web page + the blog post + the topic -->
<div itemscope itemtype="http://schema.org/ItemPage">
  <div itemprop="mainEntity" itemscope itemtype="http://schema.org/BlogPosting">
    <div itemprop="about" itemscope itemtype="http://schema.org/Thing">
      <span itemprop="name">wireless technology</span>
    </div>
  </div>
</div>

A传达:有一种东西的名字叫“无线技术”。
B传达:有一篇博文about“无线技术”。
C 传达:有一个网页包含单个博客文章(如该页面的主要内容) about“无线技术”。

虽然我不建议使用 A,但使用 B 非常好,并且对于大多数用例来说可能就足够了。虽然 C 已经提供了比 B 更多的详细信息(即该页面用于单个事物,并且该事物是博客文章,而不是页面上也可能存在的其他项目),但对于如此简单的内容可能不需要它案件。但一旦你可以提供更多数据,这种情况就会改变,在这种情况下我会选择 C。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Schema.org 中网页结构的隐含性 的相关文章

  • canvas.getContext('2D') 返回空值

    我创建了一个画布并将其命名为getContext 方法 但它返回null为上下文 这是我使用的代码 我在控制台中得到了这个
  • AngularJS 输入字段未从控制器内的 setTimeout 更新

    我正在使用 AngularJS 支持的页面 并且我需要在只读输入文本字段内显示正在运行的时钟 与data ng model 为了模拟运行的时钟 我使用了 JavaScript 调度程序setTimeout每 1000 毫秒调用一个函数 该函
  • 从网站存储数据的最简单方法(在服务器端)

    我有一个非常简单的网站 实际上是单页 有一个输入字段和一个按钮 我需要将用户提交的数据存储在服务器端的某个位置 完美的方法可能是简单的文本文件 并在每次单击按钮后附加新行 日志文件也可以 据我了解 JavaScript 本身是不可能的 我在
  • iOS Safari Mobile 禁用上一个和下一个选择输入

    上周五我发现了关于此问题的类似问题 但似乎无法再次找到它 如果有人能指出我正确的方向 那就太好了 本质上我在一个页面上有多个选择菜单 第一个在加载时填充 第二个在第一个选择时填充 够简单的 但是 在 iOS 设备中 当您点击选择元素时 它会
  • 让登录更安全

    我已使用此代码进行管理员登录 仅当用户输入正确的用户名和密码时才应打开loginhome php 但后来我意识到这根本不安全 任何人都可以直接访问 mywebsite loginhome php 而无需登录 注销后 可以使用后退按钮打开 l
  • 文本后面有粗下划线

    如何使用 span 和 css 在文本 ABC 后面重现这种下划线 我已经能够做下划线below嵌套的文本span和彩色的border bottom 但无法获取behind图像和above文本基线 p style font size 48p
  • 数字和小数的输入掩码

    在测试我的程序后 我发现了以下错误 我在 sqlserver 中的表包含 价格数字 6 2 我的程序的用户输入价格 555 00 就很好了 但是当他输入 555555 时 这是错误的 所以我需要指定掩码 其中尾数是可选的 0 到 999 小
  • 为什么 `input type="date"` 的行为发生了变化?

    日期输入 例如
  • 两个 Div 之间的固定宽度间隙

    有谁知道如何修复两个 div 之间的间隙 我有一个主要内容 Div 里面有两个带有图片的 Div 视图的宽度为 768 像素 当我开始拉伸视图时 两张图片开始相互远离 但理想情况下 主要内容 Div 应该在周围有空白的情况下拉伸 并且图片之
  • 如何检测浏览器是否支持自定义元素

    我正在查看 Modernizr 它应该有助于功能检测 这应该可以帮助确定您的网站是否与给定的 Web 浏览器兼容 但我没有看到任何表明我可以使用它来检测自定义 HTML 的内容我们在内容中创建和定义的元素 如果不是 Modernizr 我如
  • 如何在同一页面上使用AJAX处理多个表单

    我有一个表单 当我单击 提交 时 它就被提交了 然后该表单隐藏 操作页面的结果显示在 div 中 classname dig 它工作正常 但是当我添加另一个表单时 它停止正常工作并且所有表单同时提交 我如何更改我的代码 done click
  • CSS 中的像素与像素密度

    我对 HTML 和 CSS 非常陌生 我突然想到 当决定某个东西是 5px 时 比如说 由于像素的物理尺寸取决于密度 所以 5px 在 100 ppi 的屏幕上看起来肯定比在 300 ppi 的屏幕上看起来更大ppi 这是正确的吗 如果是
  • 如何重定向到 instagram://user?username={username}

    我的 html 页面上有这个链接 可以在特定用户上打开 Instagram 应用程序 a href Link to Instagram Profile a 我一直在寻找自动运行 url instagram user username USE
  • 如何防止 Iframe 在与浏览器交互后弄乱浏览器的历史记录?

    因此 就我而言 我使用 Iframe 将 Grafana 附加到我的页面 这为我提供了漂亮且易于使用的图表 可以注意到 每次在图表上进行放大或缩小 使用鼠标单击 交互后 Grafana 的 Iframe 都会在我的 Angular 页面上触
  • 如何将背景图像仅应用于一个反应页面而不是整个应用程序?

    注册页面示例 register background image linear gradient to right ff5722 0 ff9800 100 margin top 150px important div div div div
  • 标签获取 href 值

    我有以下 html div class threeimages a img alt Australia src Images Services 20button tcm7 9688 gif a div class text h2 a hre
  • HTML 离线应用程序缓存,列出下载的文件

    作为我正在构建的离线 Web 应用程序的加载屏幕的一部分 使用缓存清单 http developer apple com library safari documentation iPhone Conceptual SafariJSData
  • FireFox 中的自动滚动

    我的应用程序是实时聊天 我有一个 Div 来包装消息 每条消息都是一个 div 所以 在几条消息之后 我的 DOM 看起来像这样 div div Message number two div div div div
  • 如何在 AngularJS 循环内使用标签

    所以我在里面ng repeat像这样 li li
  • 无效字符错误:“fred”

    我确信他一定是一个新手问题 简单来说 我想定义我的第一个 Polymer dart 组件 只是我一直在同一个减速带上踢脚趾 为了使事情变得非常简单 我将其简化为一个非常简单的示例 我做了一个简单的rename示例 跑表 来自 Dart 组件

随机推荐

  • docker restart_policy on-failure 与 any 有什么区别

    在 docker swarm v3 文档中 可以使用 3 种不同的重启策略条件 很明显什么是none条件确实如此 但我想知道两者之间有什么区别on failure and any具体来说是 Here s a picture from the
  • 是否可以从 Objective-C 文件访问 Swift 全局变量? [复制]

    这个问题在这里已经有答案了 我正在开发一个项目 我必须使用一些 Swift 代码扩展 Objective C 应用程序 所以我需要从 m 文件访问 Swift 代码 我导入了生成的 Swift h 文件 现在我可以访问这些方法 但不能访问全
  • 在 Doctrine 2.x ORM 中使用 REGEXP

    我对此进行了大量研究 我确信答案是否定的 但我很想证明我的观点是错误的 我想执行一个用 DQL 编写的包含 REGEXP 操作的查询 例如 select from assets where campaign id 1 and fileNam
  • 为什么 Property Set 会抛出 StackOverflow 异常?

    我了解 java 并且通常会放入 getter setter 方法 我有兴趣使用以下代码在 C 中执行此操作 但它会引发 StackOverflow 异常 我究竟做错了什么 调用代码 c firstName a 财产代码 public St
  • 当在另一个下拉列表上进行选择时,如何在 Django 管理中过滤下拉列表

    我的 Django 管理站点中有两个下拉列表 例如 我有 SelectCountry 和 SelectRegion 区域与国家 地区具有外键关系 如何确保在选择某个国家 地区时 会根据该国家 地区筛选区域 注意 我也使用 django gr
  • PHP 表单 + Google reCAPTCHA

    有点奇怪的是 谷歌的 recaptcha 文档并不像我想象的那么有用 我被要求采用当前现有的表单 每天都会收到几次垃圾邮件 并使用 Google 新的验证码进行更新 旧验证码的教程有很多 但新验证码的教程却不多 我基本上只是想要一个简单的表
  • 按钮背景资源对比

    button setBackgroundResource R Drawable abc if button getBackground getResources getDrawable R drawable abc button setBa
  • java.lang.Object 的受保护方法如何免受子类的影响?

    关键词protected授予对同一包中的类和子类的访问权限 http java sun com docs books tutorial java javaOO accesscontrol html 现在 每个班级都有java lang Ob
  • 限制闪亮字段中的输入类型

    事实上 numericInput接受字符串和数字输入 如果输入一个字符串 它将被转换为NA 尝试使用下面的代码 有没有办法不允许用户在闪亮的数字字段中键入字符串 ui lt fluidPage numericInput num label
  • C 中的内存池实现

    我正在寻找一个好的 C 内存池实现 它应包括以下内容 抗碎片化 超级快 能够在某个标识符下 捆绑 不同大小的多个分配 并删除具有给定标识符的所有分配 线程安全 我认为优秀的talloc 作为 samba 的一部分开发的可能正是您正在寻找的
  • Node.js 提示符“>”在 eshell 中无法显示

    我想在eshell中运行Node js 但提示不对 那么 我该如何解决这个问题呢 另一种方法是将其添加到您的 emacs 中 setenv NODE NO READLINE 1 这种方法的好处是它也适用于您直接运行的 Node 程序的其他调
  • jQuery detach() vs remove() vs hide() [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我在我的页面中使用高图表
  • -1 到 1 之间的随机数总和为 0 [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 用R 如何生成n随机数x 1 x n位于之间 1 and 1总和为0 推广到另一个总和和另一个范围怎么样 简单解决第一个问题 这是第一个问题的简单解决方案 模拟u 1 u n之间 1
  • Asp.Net MVC Core 启用双重转义

    我正在开发一个 asp net mvc 核心应用程序并尝试允许双重转义 我的编辑网址有一个电话号码作为超链接 例如 123 我知道如何使用普通的 ASP NET MVC 应用程序 我曾经将 web config 文件更改为
  • 创建类型的默认实例[重复]

    这个问题在这里已经有答案了 反射等价于 default object null 当我直到运行时才知道类型时 例如 public void Method Type type var instance type CreateDefault no
  • iPhone 使用 GData 框架将视频上传到 YouTube 应用

    我想将视频从我的应用上传到 YouTube 我正在使用 YoutubeTest 示例来实现此目的 我已经为我的应用程序设置了开发人员密钥和客户端 ID 现在 当尝试使用示例源代码上传视频时 它显示一个错误 2012 03 19 10 51
  • nd_pdo_mysql 和 pdo_mysql 扩展之间有什么区别?

    由于某种原因pdo mysql我们的托管服务器上的 PHP 扩展无法运行使用 MySQL 视图的查询 并出现此错误消息 SQLSTATE HY000 一般错误 1615 准备好的语句需要重新准备 有一个讨论Bug 42041 当 MySQL
  • app.UseErrorHandler() 可以访问错误详细信息吗?

    在我的 MVC4 应用程序中 我覆盖了 global asax csApplication Error object sender EventArgs e 我可以在哪里提取exception statusCode and requested
  • gcloud docker Push 403 禁止

    我正在尝试将 docker 映像推送到 eu gcr io 但收到 403 Forbidden gcloud docker push eu gcr io
  • Schema.org 中网页结构的隐含性

    在阅读了数千篇帖子 问题 博客文章和意见之后 我仍然对如何使用微数据标记网页感到有点困惑 如果微数据的主要目的是帮助搜索引擎更好地理解网页的内容 并且隐式假设网页 那么在 body 元素中从 itemtype Webpage 开始 然后继续