itemtype必须是严格匹配schema.org官方定义的完整HTTPS URL且无尾部斜杠;itemscope需紧贴语义单元容器,嵌套对象须inline声明不可分离。

itemtype 必须是完整 HTTPS URL,不能缩写或省略协议
在 CMS 模板里硬编码 itemtype 时,常见错误是写成 itemtype="Product" 或 itemtype="https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937Product"(末尾多了斜杠),结果 Google Rich Results 测试工具直接报“invalid itemtype”。itemtype 值必须严格匹配 schema.org 官方定义的完整 HTTPS 地址,且大小写敏感、无尾部斜杠。
实操建议:
- 从 https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937 页面点进具体类型(如 Product),复制地址栏 URL 作为值
- CMS 模板中避免拼接字符串,比如不要用
{% if is_article %}https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937Article{% endif %}这类逻辑——容易漏掉协议或大小写错 - 多类型共存时(如 Article + BlogPosting),不能写成
itemtype="https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937Article https://www.php.cn/link/b8eadb229854b2add23d0371cc31b937BlogPosting";必须选一个主类型,辅以additionalType属性(需额外加meta标签)
CMS 模板里 itemscope + itemtype 要紧贴内容容器,别套在 layout wrapper 上
很多 CMS(如 DedeCMS、PageAdmin)的模板习惯把全局 正确做法是让 scope 容器包裹完整语义单元: CMS 模板引擎(如 ThinkTemplate、DedeCMS 的 {dede:field})常直接输出带格式的内容,比如标题含 实现 Markdown↔ HTML 互转,支持导出 PDF,用于用户请求的文档格式转换。 关键处理点: CMS 模板常把作者信息抽成独立 fragment(如 必须保证嵌套关系物理紧邻:
CMS 模板里最易被忽略的是:itemtype 的协议校验和嵌套 scope 的 DOM 位置。二者任一出错,整块结构化数据就归零,连 Google 工具都检测不到。{dede:field name='title'/} 等标签。如果把 itemscope itemtype 加在这个 wrapper 上,会导致整个页面被识别为一个实体,而实际文章标题、作者、发布时间等字段分散在不同区块,解析器无法准确定位。
,而非整个
itemscope,否则会污染子页面结构化数据itemprop 绑定字段时,CMS 输出变量要过滤 HTML 实体和空格
、价格带货币符号、日期带中文“年月日”。这些字符会被 itemprop 当作文本内容提取,导致 Google 拒收。
itemprop="headline" 对应字段必须纯文本:用 CMS 内置函数 strip_tags 或 replace 过滤掉 、® 等 —— 例如 DedeCMS:{dede:field.title function='htmlspecialchars(@me)'/}
itemprop="price" 必须配 content 属性:itemprop="datePublished" 推荐用 标签包裹,并确保 datetime 是 ISO 8601 格式:
嵌套对象(如 author、publisher)必须 inline 声明,不能靠 CMS include 分离
{template:author-info}),再通过 {include file='author-info'} 引入。但若这个 fragment 自己带 itemscope itemtype,而父级只写 itemprop="author" 在外层 div 里,Google 会判定“未绑定到有效 scope”,整个 author 数据丢失。
(itemprop 没指向任何 itemscope)itemscope 容器内,哪怕多几行模板代码
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










