最新head指南

课后整理 2021-1-7

主要内容来自https://gethead.info/,方便大家了解每个标签及相应属性的意义,写出满足自己需求的 <head> 头部标签,可以很有效的增强页面的可用性。

最小推荐

下面是基本的、最低限度的网站基本标签:

<meta  charset="utf-8">
<meta  http-equiv="x-ua-compatible" content="ie=edge">
<meta  name="viewport" content="width=device-width, initial-scale=1,  shrink-to-fit=no">
<!-- 以上 3 个 meta 标签 *必须* 放在 head 的最前面;其他任何的 head 内容必须在这些标签的 *后面* -->
<title>页面标题</title>

网页元素

HTML代码:

<!-- 文档标题 -->
<title>页面标题</title>
 
<!-- 基本 URL 作用于文档中所包含的所有相对 URL -->
<base  href="https://example.com/page.html">
 
<!-- 外部的 CSS -->
<link  rel="stylesheet" href="styles.css">
 
<!-- 文档内的 CSS -->
<style>
  /* ... */
</style>
 
<!--  JavaScript -->
<script  src="script.js"></script>
<noscript><!--无 JS 时的替代--></noscript>

Meta 标签

HTML代码:

<!-- 设置文档的字符编码 -->
<meta  charset="utf-8">
<meta  http-equiv="x-ua-compatible" content="ie=edge">
<meta  name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<!-- 以上 3 个 meta 标签 *必须* 放在 head 的最前面;其他任何的 head 内容必须在这些标签的 *后面* -->
 
<!-- 对外部资源加载的限制(允许控制从哪里加载资源) -->
<meta  http-equiv="Content-Security-Policy" content="default-src  'self'">
<!-- 尽早地放置在文档中 -->
<!-- 仅应用于该标签下的内容 -->
 
<!--  Web 应用的名称(仅当网站被用作为一个应用时才使用)-->
<meta  name="application-name" content="应用名称">
 
<!-- 针对页面的简短描述(限制 150 字符)-->
<!-- 在*某些*情况下,该描述是被用作搜索结果展示片段的一部分 -->
<meta  name="description" content="一个页面描述">
 
<!-- 控制搜索引擎的抓取和索引行为 -->
<meta  name="robots" content="index,follow"><!-- 所有搜索引擎 -->
<meta  name="googlebot" content="index,follow"><!-- 仅对 Google 有效 -->
 
<!-- 告诉 Google 不显示网站链接的搜索框 -->
<meta  name="google" content="nositelinkssearchbox">
 
<!-- 告诉 Google 不提供此页面的翻译 -->
<meta  name="google" content="notranslate">
 
<!-- 验证 Google 搜索控制台的所有权 -->
<meta  name="google-site-verification"  content="verification_token">
 
<!-- 验证 Yandex 网站管理员的所有权 -->
<meta  name="yandex-verification" content="verification_token">
 
<!-- 验证 Bing 网站管理员中心的所有权 -->
<meta  name="msvalidate.01" content="verification_token">
 
<!-- 验证 Alexa 控制台的所有权 -->
<meta  name="alexaVerifyID" content="verification_token">
 
<!-- 验证 Pinterest 控制台的所有权 -->
<meta  name="p:domain_verify" content="code from pinterest">
 
<!-- 验证 Norton 安全站点的所有权 -->
<meta  name="norton-safeweb-site-verification" content="norton  code">
 
<!-- 用来命名软件或用于构建网页(如 - WordPress、Dreamweaver)-->
<meta  name="generator" content="program">
 
<!-- 关于你的网站主题的简短描述 -->
<meta  name="subject" content="你的网站主题">
 
<!-- 基于网站内容给出一般的年龄分级 -->
<meta  name="rating" content="General">
 
<!-- 允许控制 referrer 信息如何传递 -->
<meta  name="referrer" content="no-referrer">
 
<!-- 禁用自动检测和格式化可能的电话号码 -->
<meta  name="format-detection" content="telephone=no">
 
<!-- 通过设置为 “off” 完全退出 DNS 预取 -->
<meta  http-equiv="x-dns-prefetch-control" content="off">
 
<!-- 在客户端存储 cookie,web 浏览器的客户端识别 -->
<meta  http-equiv="set-cookie" content="name=value; expires=date;  path=url">
 
<!-- 指定要显示在一个特定框架中的页面 -->
<meta  http-equiv="Window-Target" content="_value">
 
<!-- 地理标签 -->
<meta  name="ICBM" content="latitude, longitude">
<meta  name="geo.position" content="latitude;longitude">
<meta  name="geo.region" content="country[-state]"><!-- 国家代码 (ISO 3166-1): 强制性, 州代码 (ISO 3166-2): 可选; 如 content="US" / content="US-NY"  -->
<meta  name="geo.placename" content="city/town"><!-- 如 content="New York City" -->

【参考】

https://support.google.com/webmasters/answer/79812?hl=zh-Hans

https://wiki.whatwg.org/wiki/MetaExtensions

https://en.wikipedia.org/wiki/ICBM_address#Modern_use

https://en.wikipedia.org/wiki/Geotagging#HTML_pages

链接

HTML 代码:

<!-- 表明一个 CSS 样式表 -->
<link  rel="stylesheet" href="https://example.com/styles.css">
 
<!-- 有助于防止出现内容重复的问题 -->
<link  rel="canonical"  href="https://example.com/2010/06/9-things-to-do-before-entering-social-media.html">
 
<!-- 之前用于包含 icon 链接,但已被废弃并不再使用 -->
<link  rel="shortlink" href="https://example.com/?p=42">
 
<!-- 链接到当前文档的一个 AMP HTML 版本 -->
<link  rel="amphtml" href="https://example.com/path/to/amp-version.html">
 
<!-- 链接到一个指定 Web 应用程序“安装”证书的 JSON 文件 -->
<link  rel="manifest" href="manifest.json">
 
<!-- 链接到文档的作者 -->
<link  rel="author" href="humans.txt">
 
<!-- 指向一个适用于链接内容的版权申明 -->
<link  rel="license" href="copyright.html">
 
<!-- 给出可能的你的另一种语言的文档位置参考 -->
<link  rel="alternate" href="https://es.example.com/"  hreflang="es">
 
<!-- 提供了关于作者或其他人的信息 -->
<link  rel="me" href="https://google.com/profiles/thenextweb"  type="text/html">
<link  rel="me" href="mailto:name@example.com">
<link  rel="me" href="sms:+15035550125">
 
<!-- 链接到一个描述历史记录、文档或其他具有历史意义的材料的集合的文档。 -->
<link  rel="archives" href="https://example.com/archives/">
 
<!-- 链接到层次结构中的顶级资源 -->
<link  rel="index" href="https://example.com/">
 
<!-- 给出一个自我参考 - 当文档有多个可能的参考时非常有用 -->
<link  rel="self" type="application/atom+xml"  href="https://example.com/atomFeed.php?page=3">
 
<!-- 分别是在一系列文件中的第一个、下一个、上一个和最后一个 -->
<link  rel="first" href="https://example.com/atomFeed.php">
<link  rel="next" href="https://example.com/atomFeed.php?page=4">
<link  rel="prev"  href="https://example.com/atomFeed.php?page=2">
<link  rel="last"  href="https://example.com/atomFeed.php?page=147">
 
<!-- 当使用第三方服务来维护 blog 时使用 -->
<link  rel="EditURI" href="https://example.com/xmlrpc.php?rsd"  type="application/rsd+xml" title="RSD">
 
<!-- 当另一个 WordPress 博客链接到你的 WordPress 博客或文章时形成一个自动化的评论 -->
<link  rel="pingback" href="https://example.com/xmlrpc.php">
 
<!-- 当你在自己的页面上链接到一个 url 时通知它 -->
<link  rel="webmention" href="https://example.com/webmention">
 
<!-- 加载一个外部的 HTML 文件到当前 HTML 文件中 -->
<link  rel="import" href="/path/to/component.html">
 
<!-- 打开搜索 -->
<link  rel="search" href="/open-search.xml"  type="application/opensearchdescription+xml" title="Search  Title">
 
<!--  Feeds -->
<link  rel="alternate" href="https://feeds.feedburner.com/example"  type="application/rss+xml" title="RSS">
<link  rel="alternate" href="https://example.com/feed.atom"  type="application/atom+xml" title="Atom 0.3">
 
<!-- 预取,预载,预浏览 -->
<link  rel="dns-prefetch" href="//example.com/">
<link  rel="preconnect" href="https://www.example.com/">
<link  rel="prefetch" href="https://www.example.com/">
<link  rel="prerender" href="https://example.com/">
<link  rel="preload" href="image.png" as="image">
<!-- 更多信息:https://css-tricks.com/prefetching-preloading-prebrowsing/  -->

网站图标

HTML代码:

<!-- 针对 IE 10 及以下版本 -->
<!-- 如果将 `favicon.ico` 放在根目录下,则无需标签 -->
 
<!-- 对于 IE 11、Chrome、Firefox、Safari 和 Opera -->
<link  rel="icon" type="image/png" sizes="16x16"  href="/path/to/favicon-16x16.png"/>
<link  rel="icon" type="image/png" sizes="32x32"  href="/path/to/favicon-32x32.png"/>
<link  rel="icon" type="image/png" sizes="96x96"  href="/path/to/favicon-96x96.png"/>
<!-- 更多信息:  https://bitsofco.de/all-about-favicons-and-touch-icons/ -->

【参考】

https://bitsofco.de/all-about-favicons-and-touch-icons/

https://github.com/audreyr/favicon-cheat-sheet

社交

Facebook Open Graph

HTML代码:

<meta  property="fb:app_id" content="123456789"/>
<meta  property="og:url"  content="https://example.com/page.html"/>
<meta  property="og:type" content="website"/>
<meta  property="og:title" content="Content Title"/>
<meta  property="og:image"  content="https://example.com/image.jpg"/>
<meta  property="og:description" content="Description Here"/>
<meta  property="og:site_name" content="Site Name"/>
<meta  property="og:locale" content="en_US"/>
<meta  property="article:author" content=""/>

【参考】

https://developers.facebook.com/docs/sharing/webmasters#markup

http://ogp.me/

Facebook Instant Articles

HTML代码:

<meta  charset="utf-8"/>
<meta  property="op:markup_version" content="v1.0"/>
 
<!-- 你的文章的 Web 版网址 -->
<link  rel="canonical" href="http://example.com/article.html"/>
 
<!-- 用于该文章的样式 -->
<meta  property="fb:article_style" content="myarticlestyle"/>

【参考】

https://developers.facebook.com/docs/instant-articles/guides/articlecreate

https://developers.facebook.com/docs/instant-articles/reference

Twitter Cards

HTML代码:

<meta  name="twitter:card" content="summary"/>
<meta  name="twitter:site" content="@site_account"/>
<meta  name="twitter:creator" content="@individual_account"/>
<meta  name="twitter:url"  content="https://example.com/page.html"/>
<meta  name="twitter:title" content="Content Title"/>
<meta  name="twitter:description" content="Content description less  than 200 characters"/>
<meta  name="twitter:image"  content="https://example.com/image.jpg"/>

【参考】

https://dev.twitter.com/cards/getting-started

https://cards-dev.twitter.com/validator

Google+ / Schema.org

HTML代码:

<link  href="https://plus.google.com/+YourPage" rel="publisher"/>
<meta  itemprop="name" content="内容标题"/>
<meta  itemprop="description" content="内容描述少于 200 个字符"/>
<meta  itemprop="image"  content="https://example.com/image.jpg"/>

OEmbed

HTML代码:

<link  rel="alternate" type="application/json+oembed"
   href="http://example.com/services/oembed?url=http%3A%2F%2Fexample.com%2Ffoo%2F&amp;format=json"
  title="oEmbed Profile: JSON"/>
<link  rel="alternate" type="text/xml+oembed"
   href="http://example.com/services/oembed?url=http%3A%2F%2Fexample.com%2Ffoo%2F&amp;format=xml"
  title="oEmbed Profile: XML"/>

【参考】

http://oembed.com/

浏览器/平台

Apple iOS

HTML代码:

<!-- 智能应用 Banner -->
<meta  name="apple-itunes-app" content="app-id=APP_ID,affiliate-data=AFFILIATE_ID,app-argument=SOME_TEXT"/>
 
<!-- 禁用自动检测和格式化可能的电话号码 -->
<meta  name="format-detection" content="telephone=no"/>
 
<!-- 添加到主屏幕 -->
<meta  name="apple-mobile-web-app-capable" content="yes"/>
<meta  name="apple-mobile-web-app-status-bar-style"  content="black"/>
<meta  name="apple-mobile-web-app-title" content="应用标题"/>
 
<!-- 触摸图标 -->
<!-- 在大多数情况下,在 `<head>` 中,一个 180×180px 触摸图标就已经足够了 -->
<link  rel="apple-touch-icon"  href="/path/to/apple-touch-icon.png"/>
<!-- 注意:iOS 7 上的 Safari 不会对图标产生效果。 -->
<!-- 较早版本的 Safari 不会对以 `-precomposed.png` 后缀命名的图标文件产生效果。 -->
 
<!-- 启动画面(已无效) -->
<link  rel="apple-touch-startup-image"  href="path/to/startup.png"/>
  <!-- iOS 应用深层链接 --> <meta name="apple-itunes-app" content="app-id=APP-ID, app-argument=http/url-sample.com"/> <link rel="alternate" href="ios-app://APP-ID/http/url-sample.com"/>

【参考】

https://developer.apple.com/library/safari/documentation/AppleApplications/Reference/SafariHTMLRef/Articles/MetaTags.html

Apple Safari

HTML代码:

<!-- 固定网站 -->
<link  rel="mask-icon" href="path/to/icon.svg"  color="red"/>

Google Android

HTML代码:

<meta  name="theme-color" content="#E64545"/>
 
<!-- 添加到主屏幕 -->
<meta  name="mobile-web-app-capable" content="yes"/>
<!-- 更多信息:https://developer.chrome.com/multidevice/android/installtohomescreen -->

Google Chrome

HTML代码:

<link  rel="chrome-webstore-item"  href="https://chrome.google.com/webstore/detail/APP_ID"/>
 
<!-- 禁用翻译提示 -->
<meta  name="google" content="notranslate"/>

Microsoft Internet Explorer

HTML代码:

<meta  http-equiv="x-ua-compatible" content="ie=edge"/>
<meta  name="skype_toolbar"  content="skype_toolbar_parser_compatible"/>
 
<!--  IE10: 禁用链接点击高亮 (https://blogs.windows.com/buildingapps/2012/11/15/adapting-your-webkit-optimized-site-for-internet-explorer-10/)  -->
<meta  name="msapplication-tap-highlight" content="no"/>
 
<!-- 固定网站 (https://msdn.microsoft.com/en-us/library/dn255024(v=vs.85).aspx) -->
<meta  name="application-name" content="Sample Title"/>
<meta  name="msapplication-tooltip" content="A description of what this  site does."/>
<meta  name="msapplication-starturl"  content="http://example.com/index.html?pinned=true"/>
<meta  name="msapplication-navbutton-color" content="#FF3300"/>
<meta  name="msapplication-window"  content="width=800;height=600"/>
<meta  name="msapplication-task" content="name=Task  1;action-uri=http://host/Page1.html;icon-uri=http://host/icon1.ico"/>
<meta  name="msapplication-task" content="name=Task  2;action-uri=http://microsoft.com/Page2.html;icon-uri=http://host/icon2.ico"/>
<meta  name="msapplication-badge"  value="frequency=NUMBER_IN_MINUTES;polling-uri=http://example.com/path/to/file.xml"/>
<meta  name="msapplication-TileColor" content="#FF3300"/>
<meta  name="msapplication-TileImage"  content="path/to/tileimage.jpg"/>
 
<meta  name="msapplication-config"  content="http://example.com/browserconfig.xml"/>
<meta  name="msapplication-notification"  content="frequency=60;polling-uri=http://example.com/livetile;polling-uri2=http://example.com/livetile2"/>
<meta  name="msapplication-task-separator" content="1"/>

国内的浏览器

360 浏览器

TML 代码:

<!-- 选择渲染引擎 -->
<meta  name="renderer" content="webkit|ie-comp|ie-stand"/>

QQ 移动浏览器

JavaScript 代码:

<!-- 在指定方向上锁定屏幕(锁定横/竖屏) -->
<meta  name="x5-orientation" content="landscape/portrait"/>
<!-- 全屏显示此页面 -->
<meta  name="x5-fullscreen" content="true"/>
<!-- 页面将以“应用模式”显示(全屏等)-->
<meta  name="x5-page-mode" content="app"/>

UC 移动浏览器

HTML代码:

<!-- 在指定方向上锁定屏幕(锁定横/竖屏) -->
<meta  name="screen-orientation" content="landscape/portrait"/>
<!-- 全屏显示此页面 -->
<meta  name="full-screen" content="yes"/>
<!-- 即使在“文本模式”下,UC 浏览器也会显示图片 -->
<meta  name="imagemode" content="force"/>
<!-- 页面将以“应用模式”显示(全屏、禁止手势等) -->
<meta  name="browsermode" content="application"/>
<!-- 在此页面禁用 UC 浏览器的“夜间模式” -->
<meta  name="nightmode" content="disable"/>
<!-- 简化页面,减少数据传输 -->
<meta  name="layoutmode" content="fitscreen"/>
<!-- 禁用的 UC 浏览器的功能,“当此页面中有较多文本时缩放字体” -->
<meta  name="wap-font-scale" content="no"/>

【参考】

http://www.uc.cn/download/UCBrowser_U3_API.doc

应用链接

HTML代码:

<!--  iOS -->
<meta  property="al:ios:url" content="applinks://docs"/>
<meta  property="al:ios:app_store_id" content="12345"/>
<meta  property="al:ios:app_name" content="App Links"/>
<!--  Android -->
<meta  property="al:android:url" content="applinks://docs"/>
<meta  property="al:android:app_name" content="App Links"/>
<meta  property="al:android:package" content="org.applinks"/>
<!--  Web 回退 -->
<meta  property="al:web:url"  content="http://applinks.org/documentation"/>
<!-- 更多信息:http://applinks.org/documentation/ -->

【参考】

http://applinks.org/documentation/

注意

性能

当启用 GZIP 时,移动 href 属性到该元素的开头以提高压缩,因为 href 属性被用于 a、base 和 link 标签。

【示例】

<link  href="https://fonts.googleapis.com/css?family=Open+Sans:400,700"  rel="stylesheet"/>

其他资源

【参考】

https://github.com/h5bp/html5-boilerplate/blob/master/dist/doc/html.md

https://github.com/h5bp/html5-boilerplate/blob/master/dist/doc/extend.md

相关项目

【参考】

https://github.com/joshbuchea/atom-html-head-snippets

https://github.com/marcobiedermann/sublime-head-snippets

https://github.com/hemanth/head-it

https://github.com/ktquez/vue-head