link标签不支持rel="old-version"等非标准值,浏览器和搜索引擎均忽略;正确做法是用301重定向配合canonical标签声明新版为规范URL。

link标签不支持指向旧版网站链接
<link> 是 HTML 中用于声明当前文档与外部资源关系的元数据标签,它的 rel 属性值必须是预定义的语义类型(如 stylesheet、icon、preload),而 rel="old-version" 或类似表述**不是标准值**,浏览器不会识别,也不会触发跳转或 SEO 信号。
想提示搜索引擎或用户存在旧版网站?用 HTTP 头或 canonical 替代
如果你的真实目标是告诉搜索引擎“这个页面已迁移到新版,旧版已归档”,<link> 不是正确工具。更可行的方式包括:
- 在旧版页面的
<head>中添加:<link rel="canonical" href="https://new.example.com/page">(表示新版是规范版本) - 对旧版 URL 返回
301 Moved Permanently状态码,并在响应头中带上Location: https://new.example.com/page - 如果旧版仍需保留(如法律存档),可在页面显眼位置加文字链接:
<p>该内容已迁移至新版:<a href="https://new.example.com/page">点击查看</a></p>
rel 属性有哪些实际可用的值能间接表达版本关系?
目前没有任何 rel 值能直接表达“这是旧版”。但少数场景下可有限借用:
-
rel="archives":适用于按时间归档的内容(如博客年份归档页),但不表示“旧版网站”,仅表示“历史集合” -
rel="alternate"+hreflang:用于多语言版本,和“新/旧版”无关 -
rel="prev"/rel="next":仅适用于分页序列(如文章分多页),不能跨站点或跨版本使用
强行写 rel="legacy" 或 rel="old" 不会报错,但会被忽略——既无渲染效果,也不被爬虫处理。
立即学习“前端免费学习笔记(深入)”;
容易被忽略的关键点
开发者常误以为 <link> 是通用跳转机制,其实它只是**声明性元数据**,不触发导航行为。真正影响用户访问路径的是:<a> 标签、HTTP 重定向、JavaScript 跳转,以及搜索引擎通过 canonical 和 301 自动降权旧 URL。如果你在 <head> 里塞了个 <link rel="old-version" href="https://old.example.com">,它什么都不会发生。



















