六维教程

HTML link标签 rel属性

下面是每一个 rel 属性值的介绍及经典代码示例,都是最典型的用法,并包含了必要的配套属性(如 ashreflangmedia 等),你可以根据自己的实际场景直接参考或复制使用。

样式与展现

stylesheet

用于链接外部 CSS 样式表,这是 rel 最基础的用途之一。

<link rel="stylesheet" href="https://example.com/css/main.css">

icon

用于指定网站图标(favicon),在浏览器标签页和收藏夹中显示。

<link rel="icon" href="https://example.com/favicon.ico">

apple-touch-icon

用于苹果设备(iPhone、iPad 等)将网站添加到主屏幕时显示的图标。

<link rel="apple-touch-icon" href="https://example.com/apple-touch-icon.png">

文档与SEO

canonical

canonical 是HTML中link标签rel属性的一个值,中文通常称为网址规范化标签

它的核心作用是告诉搜索引擎,在多个内容相同或高度相似的页面中,哪一个才是主版本权威版本

<link rel="canonical" href="https://example.com/article.html" />

为了让你更好理解,我用一个比喻来说明。假设你写了一篇文章,标题叫《夏季养生指南》。

  • 可以通过网址 A 访问:example.com/article?id=123
  • 可以通过网址 B 访问:example.com/article/123?from=wechat
  • 可以通过网址 C 访问:example.com/article/123?page=1

这三条网址打开的都是同一篇文章。如果搜索引擎分别抓取了这三个链接,它会懵,到底该把哪个排在搜索结果里?

这三个页面的“权重”也会被分散,导致哪个都排不上去。

你在这三个页面的 <head> 区域,都加上这一句代码:

<link rel="canonical" href="example.com/article?id=123" />

这就相当于你举着喇叭对谷歌、百度喊话:**“别看这三个长得像,真正的官方正版是第一个!其他两个都是马甲,请把排名和流量都算给第一个!”

什么时候必须用

  1. URL 携带追踪参数(如 ?utm_source= 用于统计来源)。
  2. 动态排序或筛选(如按价格排序、按颜色筛选产生的链接)。
  3. HTTP 和 HTTPS 混用(或 www 与 非 www 并存)。
  4. 分页/打印版(防止文章的分页被当成独立文章)。

补充说明

  • 使用绝对地址:要写完整的 https://xxx.com/page/,不要写 /page/ 这种相对路径。
  • 自引用:有时候你查看网页源码,会发现 <link rel="canonical" href="https://..."> 指向的地址和当前浏览器地址栏一模一样,这叫**“自引用 canonical”**。这是一种好习惯,哪怕当前页面没有重复版本,加上它也能防止别人恶意采集你的链接参数后导致排名被分走。

alternate

指向当前页面的替代版本,常用于多语言站点、移动端版本或打印版。

<!-- 指向中文版本的备用页面 -->
<link rel="alternate" href="https://example.com/zh-cn/page" hreflang="zh-cn">
<!-- 指向打印友好版本 -->
<link rel="alternate" href="https://example.com/page?print=1" media="print">
<!-- 指向移动端版本 -->
<link rel="alternate" href="https://m.example.com/page" media="only screen and (max-width: 640px)">

author

链接到当前文档的作者信息页面或邮箱。

<link rel="author" href="https://example.com/about/zhangsan">

license

指向当前文档的版权许可协议页面。

<link rel="license" href="https://creativecommons.org/licenses/by/4.0/">

next 与 prev

用于标识分页或系列文章中的前后关系。

<link rel="prev" href="https://example.com/article/page-1">
<link rel="next" href="https://example.com/article/page-3">

资源加载

preload

在当前页面加载早期,以高优先级预加载关键资源(必须搭配 as 属性)。

<link rel="preload" href="https://example.com/fonts/Inter.woff2" as="font" crossorigin="anonymous">
<link rel="preload" href="https://example.com/css/critical.css" as="style">
<link rel="preload" href="https://example.com/images/hero.webp" as="image">

prefetch

以低优先级预加载用户未来可能访问的资源。

<link rel="prefetch" href="https://example.com/next-page.html">

preconnect

提前与第三方源建立连接(包括 DNS、TCP、TLS)。

<link rel="preconnect" href="https://api.example.com">

dns-prefetch

提前对第三方域名进行 DNS 解析。

<link rel="dns-prefetch" href="https://cdn.example.com">

prerender

在后台预渲染整个页面(已被 Speculation Rules API 取代,但仍可用于兼容)。

<link rel="prerender" href="https://example.com/next-article">

modulepreload

专门用于预加载 JavaScript 模块及其依赖树。

<link rel="modulepreload" href="https://example.com/js/app.js">

preloadprefetchpreconnectdns-prefetch 4个属性很容易混淆,可以查看详细对比:preload prefetch preconnect dns-prefetch 区分对比

安全与隐私

nofollow

告诉搜索引擎不要追踪此链接,不传递权重。

<link rel="nofollow" href="https://external-site.com">

其他特殊用途

manifest

链接到 Web 应用清单文件,用于将网站以原生应用方式启动。

<link rel="manifest" href="https://example.com/manifest.json">

指向站内搜索的资源,通常用于浏览器搜索提供程序。

<link rel="search" href="https://example.com/search.xml" title="搜索本站" type="application/opensearchdescription+xml">

help

链接到与当前文档相关的帮助文档或常见问题页面。

<link rel="help" href="https://example.com/help">
上一篇
HTML meta标签 property属性