pubdate 属性已彻底废弃,浏览器不解析、dom 不存储、搜索引擎无视,仅 datetime 有效且须严格符合 iso 8601 格式。

pubdate 属性已经彻底失效,不能和 datetime 一起用 —— 浏览器根本不解析它,DOM 里查不到,搜索引擎也无视。你写 <time pubdate datetime="2026-08-11">今天</time>,等于只写了 <time datetime="2026-08-11">今天</time>,pubdate 那部分被直接丢弃。
所以别再试图“配合”,它不是兼容性问题,是标准移除、解析器忽略、工具链不认——从 Chrome 35、Firefox 29 开始就没了,WHATWG 和 W3C 都明确标为 obsolete。
为什么 document.querySelector('time[pubdate]') 总是 null
因为浏览器压根不把 pubdate 当作属性存进 DOM。你用 DevTools 查看元素,Attributes 列里根本不会出现它;用 JS 执行 el.hasAttribute('pubdate') 返回 false;getComputedStyle(el) 也读不到任何影响。
- Google Rich Results Test 会直接报错:“Missing field ‘datePublished’”
- RSS 解析器、JSON-LD 提取器、屏幕阅读器都只看
datetime值 + 上下文结构 - 哪怕你手写
<time pubdate datetime="2026-08-11"></time>,服务端返回的 HTML 源码里有,客户端 JS 也拿不到这个属性
怎么让机器知道这是“发布时间”而不是普通时间
靠三件事:位置、唯一性、辅助信号,不是靠属性名。
-
放对位置:嵌在
<header></header>或文章主内容顶部的元信息区,比如<article><header><time datetime="2026-08-11">2026年8月11日</time></header></article> -
避免重复:页脚版权年份、侧边栏更新时间、评论时间都别用
<time></time>,否则 Google 可能选错节点 -
加辅助语义:
- 用
aria-label="发布于 2026年8月11日"(值必须和datetime一致) - 加 Schema.org 微数据:
<meta itemprop="datePublished" content="2026-08-11">,放在或紧邻<time></time>的地方
- 用
datetime 值怎么写才真正生效
datetime 是唯一有效的字段,但格式错一个字符,机器就读废。
- ✅ 正确:
datetime="2026-08-11"(纯日期,零填充,短横线) - ✅ 正确:
datetime="2026-08-11T13:27:00+08:00"(含时区,T不可省,+08:00显式声明) - ❌ 错误:
datetime="2026/08/11"(斜杠非法,new Date()在 Safari 可能返回 Invalid Date) - ❌ 错误:
datetime="2026-8-11"(月/日缺零,ISO 8601 要求两位) - ❌ 错误:
datetime="2026-08-11 13:27"(空格代替T,不被解析)
服务端动态生成时,别信 toLocaleDateString() 或字符串拼接 —— 它们输出本地化格式,不是机器可读格式。要用 toISOString()(得 UTC)或手动格式化成 YYYY-MM-DD 形式。
最容易被忽略的点:时区一致性。如果首页用 +08:00,文章页却用 Z 或没写时区,聚合工具会把同一天识别成两天。这不是“能不能用”的问题,是“用了但互相打架”的问题。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











