Как добавить favicon
Сохраните иконку на сайте и укажите на нее тегом <link rel="icon"> в <head>:
<link rel="icon" href="/favicon.ico">
Для простого сайта это весь ответ. href может указывать на файл .ico, .png или .svg. Пример ниже использует SVG, записанный прямо в href как data URI, поэтому отдельный файл не нужен. Превью внутри другой страницы не может изменить вкладку вашего браузера, поэтому скрипт рисует ту же иконку на имитации вкладки и в трех размерах:
В 16 пикселях помещается одна жирная буква или простая фигура, а мелкие детали пропадают. Проектируйте иконку сначала под самый маленький размер. Замените fill='%232563eb' на другой цвет (%23 это #, закодированный для URL), и обновятся все копии.
Какие файлы нужны
Браузеры, телефоны и лаунчеры приложений ищут разные иконки. Небольшой набор покрывает их все:
<link rel="icon" href="/favicon.ico" sizes="32x32">
<link rel="icon" href="/icon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="manifest" href="/manifest.webmanifest">
| Файл | Размер | Для чего |
|---|---|---|
favicon.ico | 32×32 | Вкладки браузера и инструменты, которые ищут только /favicon.ico |
icon.svg | Любой (вектор) | Четкие вкладки при любой плотности экрана в Chrome, Edge и Firefox |
apple-touch-icon.png | 180×180 | Иконка, когда сайт добавляют на главный экран iPhone или iPad |
| Иконки манифеста | PNG 192×192 и 512×512 | Главный экран Android и установленные веб-приложения |
Большинство браузеров также сами запрашивают /favicon.ico из корня сайта, если на странице нет ссылки на иконку, поэтому favicon.ico в корне это полезное значение по умолчанию. Атрибут sizes сообщает браузеру размер каждого файла, чтобы он мог выбрать самый подходящий. Используйте rel="icon"; старый rel="shortcut icon" работает только потому, что браузеры игнорируют лишнее слово.
Favicon из эмодзи
Для прототипа или личной страницы эмодзи быстро превращается в favicon. Поместите его внутрь элемента SVG <text>:
%F0%9F%8D%AA это эмодзи печенья, закодированное для URL. Эмодзи рисует шрифт эмодзи операционной системы, поэтому в Windows, macOS и Android он выглядит по-разному, и для настоящего продукта лучше нарисованная иконка.
Иконка, которая следует темной теме
SVG favicon может нести собственный CSS, включая медиазапрос prefers-color-scheme, поэтому темная иконка может становиться светлой, когда браузер использует темную тему:
<!-- icon.svg -->
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32">
<style>
circle { fill: #111827; }
@media (prefers-color-scheme: dark) { circle { fill: #f9fafb; } }
</style>
<circle cx="16" cy="16" r="14"/>
</svg>
Смена favicon через JavaScript
Сайты меняют favicon, чтобы показать точку уведомления или цвет статуса. Нарисуйте новую иконку на <canvas> и присвойте href ссылки изображение с canvas:
На настоящей странице в Chrome или Firefox иконка вкладки меняется каждый раз, когда задается href, в тот же момент, когда здесь меняется картинка превью.
Частые ошибки
- Неправильный путь.
href="favicon.ico"указывается относительно текущей страницы, поэтому ломается на/blog/post. Используйте путь от корня:href="/favicon.ico". - Ожидание, что обновление появится сразу. Браузеры сильно кэшируют favicon. Перезагрузите страницу с очисткой кэша или поменяйте URL (
/favicon.ico?v=2), когда заменяете иконку. - Детальный логотип, уменьшенный до 16 пикселей. Упростите его: одна буква или одна фигура с сильным контрастом.
- Только SVG. Оставьте также ICO или PNG для браузеров без поддержки SVG favicon и добавьте
apple-touch-iconдля iOS. - Ссылка в
<body>. Держите ее в<head>вместе с тегом title и другими метаданными.
Часто задаваемые вопросы
Как добавить favicon в HTML?
Положите файл иконки на сайт и добавьте <link rel="icon" href="/favicon.ico"> (или путь к PNG либо SVG) внутрь <head>. Тогда браузеры покажут его на вкладке, в закладках и в истории.
Какого размера должен быть favicon?
Нужен favicon.ico (или PNG) 32×32 для вкладок, SVG, который масштабируется до любого размера, и PNG apple-touch-icon 180×180 для главного экрана iPhone. Веб-приложения с манифестом также указывают PNG 192×192 и 512×512.
Почему не отображается favicon?
Обычные причины: неправильный путь в href, <link> стоит вне <head> или браузер все еще показывает старую иконку из кэша. Откройте URL иконки напрямую, чтобы проверить путь, затем перезагрузите страницу с очисткой кэша или добавьте к URL версию, например ?v=2.
Можно ли использовать SVG или PNG как favicon?
Да. Используйте <link rel="icon" href="/icon.svg" type="image/svg+xml"> или <link rel="icon" href="/icon.png" type="image/png">. SVG работает в Chrome, Edge и Firefox; оставьте также ICO или PNG для браузеров без его поддержки.
Нужен ли rel="shortcut icon"?
Нет. rel="icon" это стандартное значение. Слово shortcut осталось от старого Internet Explorer и в современных браузерах ничего не делает.
Можно ли использовать эмодзи как favicon?
Да, если обернуть его в SVG: data URI с SVG, где элемент <text> содержит эмодзи. Это удобно для прототипов, но эмодзи выглядит по-разному в каждой операционной системе.