给网站添加 Favicon 是最简单但影响力最大的事情之一。以下是完整的 HTML 代码指南,从最简配置到专业级设置。
第一步:准备 Favicon 文件
在编写 HTML 之前,你需要实际的图标文件。有两种选择:
- 从零创建 — 使用图片转 Favicon 工具,将任何 PNG/JPG 图片转换为完整的 Favicon 包。
- 使用现有图标 — 通过下载 Favicon 从你欣赏的网站获取灵感。
最少需要:
favicon.ico(32×32)— 传统格式apple-touch-icon.png(180×180)— 适用于 iOS 设备
第二步:放置文件到根目录
将 Favicon 文件上传到网站的根目录(与 index.html 同级)。即使没有 HTML 声明,浏览器也会自动在根目录查找 /favicon.ico。
your-website/
├── index.html
├── favicon.ico
├── favicon-32x32.png
├── favicon-16x16.png
├── apple-touch-icon.png
├── android-chrome-192x192.png
├── android-chrome-512x512.png
└── site.webmanifest
第三步:在 <head> 中添加 HTML
最简配置(2 行)
<link rel="icon" href="/favicon.ico" sizes="32x32">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
覆盖浏览器标签页和 iOS 主屏幕。个人项目够用了。
推荐配置(5 行)
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
覆盖所有现代浏览器、iOS、Android 和 PWA。这是我们推荐的生产环境配置。
完整专业配置(带主题色)
<link rel="icon" type="image/x-icon" href="/favicon.ico">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
<meta name="theme-color" content="#ffffff">
<meta name="msapplication-TileColor" content="#ffffff">
site.webmanifest 文件
这个 JSON 文件告诉 Android 和 PWA 你的图标信息:
{
"name": "你的网站名",
"short_name": "简称",
"icons": [
{ "src": "/android-chrome-192x192.png", "sizes": "192x192", "type": "image/png" },
{ "src": "/android-chrome-512x512.png", "sizes": "512x512", "type": "image/png" }
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}
各框架特别说明
React(Create React App / Vite)
将 Favicon 文件放在 public/ 文件夹中,在 public/index.html(CRA)或 index.html(Vite)中添加 link 标签。
Next.js(App Router)
将 favicon.ico 放在 app/ 目录中。Next.js 13+ 会自动提供服务。其他格式使用 layout.tsx 中的 metadata 导出。
WordPress
进入外观 → 自定义 → 站点身份 → 站点图标。上传 512×512 的 PNG,WordPress 会自动生成所有尺寸。
测试你的 Favicon
添加代码后:
- 强制刷新浏览器(
Ctrl+Shift+R或Cmd+Shift+R)— Favicon 缓存很重。 - 在无痕/隐私模式中打开,完全绕过缓存。
- 检查 Google 富媒体搜索结果测试,看 Favicon 在搜索结果中的显示效果。
- 在真实 iPhone/iPad 上测试添加到主屏幕功能。
常见错误
- 路径错误 — 使用绝对路径(
/favicon.ico)而非相对路径(favicon.ico),确保在所有页面都能正常工作。 - 缺少 type 属性 — 始终指定
type="image/png"或type="image/x-icon"以获得最佳兼容性。 - 忘记 Apple Touch Icon — 没有它,iOS 会截取页面截图作为图标,效果很差。
- 没有清除缓存 — Favicon 缓存很强。修改后务必强制刷新。