link标签不支持“整个站点的联合关系”这一概念;rel="canonical"用于声明单页规范URL,rel="alternate" hreflang用于多语言/区域变体,preconnect/dns-prefetch用于资源预连接。

link 标签本身不用于声明“整个站点的联合关系”——这个词在 HTML 规范中不存在,也没有对应的标准 rel 值。如果你实际想表达的是站点间权威归属、内容聚合、多语言支持或跨域资源协作等意图,那需要按具体语义选用正确的 rel 值,而不是强行套用模糊概念。
rel="canonical" 是唯一被广泛支持的跨页权威声明机制
它告诉搜索引擎:“当前页面的内容主体,其规范版本是这个 URL”。这不是“联合”,而是去重与归属:
- 必须放在
中,且每个页面最多一个有效rel="canonical" -
href必须是绝对 URL(如https://example.com/article/),相对路径会被浏览器自动补全但易出错 - 不要指向 404 页面或重定向链过长的地址,否则搜索引擎会忽略
- 多语言站点中,
rel="canonical"应指向同语言的规范页;语言切换需配合rel="alternate" hreflang="xx"(见下一条)
rel="alternate" + hreflang 才能正确表达多语言/多区域联合
这是唯一被主流搜索引擎识别的、用于声明“同一内容不同语言/区域变体”的标准组合:
- 每个变体页面都必须双向声明:A 页面写 B 的
rel="alternate" hreflang="en",B 页面也得写 A 的rel="alternate" hreflang="zh" -
hreflang="x-default"用于兜底(如用户语言未匹配时默认展示的页面) - 不能只写
rel="alternate"而不带hreflang,否则浏览器和搜索引擎都当普通 RSS 或 Atom 订阅处理 - 值必须严格符合 IETF BCP 47 标准,比如
zh-CN、en-GB,不能写zh或english
rel="author" 和 rel="license" 已基本失效,别再用
这两个值曾试图建立内容与作者/许可方的语义关联,但:
-
rel="author"在 2015 年后被 Google 官方停止解析,Chrome 也不再支持其任何 UI 表现 -
rel="license"虽仍合法,但仅对极少数学术或开源合规工具链有意义;普通网站放了等于没放 - 现代替代方案是用
或结构化数据(如schema.org/CreativeWork)显式声明
所谓“联合站点”如果指资源共享,该用 preconnect / dns-prefetch
如果你的真实需求是让多个子域或 CDN 域名之间更高效协作(比如 cdn.example.com 和 api.example.com),那不是靠语义联合,而是提前建立连接:
-
:触发 DNS+TCP+TLS 预连接,但注意crossorigin属性必须存在,否则降级为dns-prefetch -
:仅做 DNS 查询,开销最小,适合低优先级域名 - 滥用
preconnect会挤占主域的 HTTP/2 连接数,建议每个页面不超过 3 个
真正容易被忽略的是:rel 值的语义是单向且不可叠加的——你不能靠堆砌多个 link 标签来“增强联合感”。浏览器只认标准定义,搜索引擎只索引明确信号。写错一个 hreflang 值,整组多语言声明就失效;漏掉 crossorigin,preconnect 就白写了。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











