itemprop属性必须配合itemscope和itemtype使用,否则无效;其值须为schema.org标准属性名,url/日期/数值类需分别用href/datetime/content指定机器可读值;多值属性需多个独立元素;itemtype必须严格匹配https协议、无多余斜杠及大小写。

itemprop 属性必须配合特定容器元素使用
单独写 itemprop 没用,它不是独立语义标签,而是微数据(Microdata)规范里的属性键声明,必须依附于带 itemscope 的元素,且该元素需有明确的 itemtype(如 https://schema.org/Person)。否则搜索引擎和解析器会忽略所有 itemprop。
常见错误是直接在 <div> 或 <code><p></p> 上加 itemprop="name" 却没定义上层 scope 和 type,结果结构化数据完全不生效。
- 正确结构:外层
<div itemscope itemtype="https://schema.org/Article"> → 内部子元素用 <code>itemprop -
itemprop值必须是 schema.org 官方定义的属性名(如"headline"、"datePublished"),不能自定义拼写 - 嵌套对象要用
itemscope+itemtype包裹,并在父级用itemprop指向该子 scope(例如author属性值是一个Person对象) - 对 URL 类属性(如
"url"、"image"),必须用<a itemprop="url" href="https://example.com">...</a>或<link itemprop="image" href="logo.jpg"> - 对日期类(如
"datePublished"),推荐用<time itemprop="datePublished" datetime="2024-05-20">2024年5月20日</time>,解析器优先读datetime属性 - 数值类(如
"price")应配合content属性显式指定机器可读值:<div itemprop="price" content="29.99">¥29.99</div>
文本内容与 itemprop 的绑定规则很严格
itemprop 的值默认取元素的 textContent,不是 value、alt 或 href。这意味着:<span itemprop="url">官网</span> 提取到的是“官网”,不是链接地址——这明显错了。
正确做法取决于属性类型:
多值属性要拆成多个相同 itemprop 元素
schema.org 中很多属性支持数组(如 "keywords"、"author"),但 HTML 里不能写成 itemprop="keywords keywords" 或用逗号分隔文本——解析器只当单个字符串处理。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
必须为每个值创建独立元素:
<div itemscope itemtype="https://schema.org/Article"> <span itemprop="keywords">SEO</span> <span itemprop="keywords">HTML</span> <span itemprop="keywords">structured-data</span> </div>
注意:<meta> 标签也能用 itemprop(尤其适合不可见元数据),但必须放在 itemscope 容器内,且需配 content 属性:<meta itemprop="description" content="页面摘要">。
验证时容易漏掉 itemtype 的协议和斜杠细节
哪怕只错一个字符,整个 itemtype 就失效。最常踩的坑是:
- 写成
itemtype="schema.org/Article"(缺https://)→ 解析失败 - 写成
itemtype="https://schema.org/Article/"(末尾多余斜杠)→ 部分工具不识别 - 混用大小写:
Article正确,article或ARTICLE无效 - 用旧版 URL:
http://schema.org/Article已不推荐,现代解析器倾向要求https
实际部署前,务必用 Google 的 Rich Results Test 或 Schema Markup Validator 扫描源码——仅靠浏览器检查元素看不到结构化数据是否被正确提取。










