pubdate属性已彻底废弃,现代归档系统完全不识别它;排序依赖datetime值(iso 8601格式)、结构位置(如article>header>time)及外部元数据(如json-ld或meta标签)。

pubdate 属性在历史文章归档中完全不起作用,也不参与任何排序逻辑。它早已被标准废弃,浏览器不解析、爬虫不识别、归档系统不读取——写上等于没写。
pubdate 已被彻底移除,别再指望它驱动排序
- W3C HTML5.3 和 WHATWG HTML Living Standard 都明确标注
pubdate为 obsolete(已废弃) - 所有现代浏览器(Chrome/Firefox/Safari/Edge)均不将其暴露在 DOM 中:
document.querySelector('time[pubdate]')永远返回null - 归档工具(如 WordPress 的存档页、Jekyll 的 collection 排序、搜索引擎的索引调度)只依赖:
-
datetime属性值(必须是合法 ISO 8601 格式) - 页面结构位置(如 article > header > time)
- 外部元数据(
<meta name="date" content="...">或 JSON-LD)
-
历史文章归档真正靠什么排序?
归档逻辑从来不由 HTML 标签属性决定,而是由以下实际机制驱动:
- 后端 CMS 或静态生成器读取的是文件元数据或 front matter,不是
pubdate - 搜索引擎提取时间语义,只认
datetime值 + 上下文(例如:标签旁有“发布于”文字,或嵌套在<article></article>的首级<header></header>里) - 归档页面的 JS 排序脚本(如有)通常从
data-date、datetime或自定义属性取值,而非pubdate
你看到的“按发布时间排序”,背后是:
-
<time datetime="2022-05-17">2022年5月17日</time>被 CMS 解析为发布时间字段 - 或者 JSON-LD 中的
"datePublished": "2022-05-17"被聚合工具读取
替代方案:怎么让历史归档“认出”发布时间?
- 把第一个
<time></time>放在<article></article>的<header></header>内,并确保其datetime值准确、格式合规 - 显式添加 Schema.org 微数据:
itemprop="datePublished" - 配合
<meta property="article:published_time" content="2022-05-17T09:30+08:00">(Facebook/Open Graph 场景) - 不要试图用
<time pubdate></time>“打补丁”——它不会被任何归档系统扫描到
真正容易被忽略的点是:很多人花时间调 pubdate 的布尔值或位置,却没校验 datetime 是否写成 2022/05/17 或 17-05-2022。这类格式浏览器不报错,但归档脚本和结构化数据测试工具(如 Google Rich Results Test)会直接跳过该节点——时间语义就此丢失。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











