Chrome Not Showing Favicons for Websites? Fix It Fast
You open Chrome, load your site, and the tab shows a generic globe or a blank square instead of your icon. You check the HTML, the file exists, but Chrome still refuses to show it. This is one of the most common favicon complaints we hear from developers. The good news: in most cases, the fix takes less than two minutes.
Quick fix: force a hard refresh and check the Network tab
Before you touch any code, rule out the simplest cause: Chrome is serving a cached version of your old favicon (or a cached 404). Chrome caches favicons aggressively, sometimes for days.
Open your site in Chrome.
Open DevTools (F12 or Cmd+Option+I).
Go to the Network tab and check Disable cache.
Reload the page with a hard refresh (Ctrl+Shift+R or Cmd+Shift+R).
In the Network filter box, type favicon.
If you see a request for favicon.ico returning a 404, Chrome will keep showing the default globe. If you see a 200 but the icon still doesn't update, the cached image is the problem. A hard refresh usually clears it. If it doesn't, open chrome://settings/clearBrowserData, select Cached images and files, and clear. That wipes Chrome's favicon cache without nuking your passwords or history.
Root cause 1: Chrome is requesting favicon.ico and your site doesn't have one
Even if you never wrote a <link rel='icon'> tag, Chrome will still request /favicon.ico from your domain root. This is a legacy behavior that dates back to Internet Explorer, and it's still in the HTML spec. If that file doesn't exist, you get a 404 and the default globe.
The fix is simple: either place a real favicon.ico at your domain root, or add an explicit link tag in your <head>:
The HTML specification defines rel='icon' as the standard way to associate an icon with a page. Chrome will use the first valid one it finds, but providing both an SVG and an ICO fallback is the safest pattern.
Root cause 2: the link tag is in the wrong place or has a syntax error
Chrome only reads favicon link tags inside the <head>. If your tag ended up in the <body> (common with template partials or CMS injectors), Chrome ignores it silently. No console error, no warning — just a missing icon.
Check for these common mistakes:
Missing closing quote or bracket in the <link> tag.
Using rel='shortcut icon' without also including rel='icon'.
Relative path that resolves to the wrong directory (e.g., href='favicon.ico' on a page at /blog/post/).
Tag placed after </head> due to a template bug.
If you're unsure whether your tag is valid, view the page source in Chrome (Ctrl+U) and search for rel=. The tag should appear inside the head block, before any body content.
Root cause 3: the file is served with the wrong MIME type or is corrupted
Chrome is strict about image files. If your server returns your .ico file as text/plain or application/octet-stream, Chrome may refuse to render it. You can verify this in DevTools: click the favicon request in the Network tab and check the Response Headers.
The correct MIME types are:
image/x-icon for ICO files
image/png for PNG
image/svg+xml for SVG
On Apache, add AddType image/x-icon .ico to your .htaccess. On Nginx, use types { image/x-icon ico; } inside your server block. If you're on a managed host or CDN, check their documentation — some strip or override MIME types by default.
Root cause 4: SVG favicons with invalid markup
SVG favicons are increasingly common because they scale cleanly and support dark mode. But Chrome's SVG parser is unforgiving. A missing namespace, an unclosed tag, or a stray HTML entity will cause the entire file to be rejected — and Chrome falls back to the default globe.
Validate your SVG by opening it directly in a browser tab. If it renders as an image, the markup is fine. If you see raw XML or an error, fix the SVG before worrying about the favicon tag. Also confirm the SVG has xmlns='http://www.w3.org/2000/svg' on the root element.
Prevention: build a favicon stack Chrome can't ignore
The most reliable setup combines multiple formats so Chrome always has a valid fallback. A minimal, modern stack looks like this:
favicon.ico at the domain root (16x16 and 32x32 combined).
favicon.svg linked with type='image/svg+xml'.
apple-touch-icon.png at 180x180 for iOS.
A site.webmanifest for Android and PWA installs.
You can generate all of these from a single source image using Mzu favicondl. Once deployed, verify each file loads with a 200 status in the Network tab.
For a deeper walkthrough of Chrome-specific caching and localhost quirks, see our guide on favicon not showing in Chrome. And if you're not sure whether your favicon is even being served, run through the checks in our favicon audit guide.
What to do if nothing works
If you've cleared the cache, fixed the link tag, confirmed the MIME type, and Chrome still shows a blank tab, try these last steps:
Test in a Chrome Incognito window (extensions and profile cache are bypassed).
Test in another browser (Firefox or Edge) to confirm the file is served correctly.
Check for a service worker intercepting the favicon request and returning a stale response.
Look for a Content Security Policy header blocking img-src for your icon domain.
If the icon appears in Incognito but not your normal profile, the issue is 100% local cache — not your server. If it fails everywhere, the problem is in your HTML, file path, or server configuration.
Chrome not showing favicons for websites is almost always one of four things: a missing root favicon.ico, a misplaced or malformed link tag, a wrong MIME type, or a cached 404. Work through them in that order and you'll have your icon back in the tab before your coffee gets cold.
favicon.icoへのリクエストが404を返している場合、Chromeはデフォルトの地球儀を表示し続けます。200が返っているのにアイコンが更新されない場合は、キャッシュされた画像が問題です。通常、ハードリロードで解消します。それでもダメなら、chrome://settings/clearBrowserDataを開き、Cached images and filesを選択してクリアします。これでパスワードや履歴を消さずにChromeのfaviconキャッシュを消去できます。
Chrome을 열고 사이트에 접속했는데 탭에 아이콘 대신 기본 지구본이나 빈 사각형이 표시된다면, HTML을 확인하고 파일도 존재하는데도 Chrome이 계속 아이콘을 표시하지 않는 상황일 것입니다. 이는 개발자들이 가장 흔히 겪는 favicon 문제 중 하나입니다. 다행히도 대부분의 경우 해결 방법은 2분도 걸리지 않습니다.
빠른 해결: 강력 새로고침으로 강제 갱신하고 Network 탭 확인하기
코드를 건드리기 전에 가장 간단한 원인부터 배제하세요. Chrome이 이전 favicon의 캐시된 버전(또는 캐시된 404)을 제공하고 있을 수 있습니다. Chrome은 favicon을 매우 적극적으로 캐시하며, 때로는 며칠 동안 유지합니다.
Chrome에서 사이트를 엽니다.
DevTools를 엽니다(F12 또는 Cmd+Option+I).
Network 탭으로 이동하여 Disable cache를 체크합니다.
강력 새로고침(Ctrl+Shift+R 또는 Cmd+Shift+R)으로 페이지를 다시 로드합니다.
Network 필터 상자에 favicon을 입력합니다.
favicon.ico 요청이 404를 반환하는 경우 Chrome은 계속 기본 지구본을 표시합니다. 200이 반환되는데도 아이콘이 업데이트되지 않는다면 캐시된 이미지가 문제입니다. 강력 새로고침으로 보통 해결됩니다. 그래도 안 되면 chrome://settings/clearBrowserData를 열고 Cached images and files를 선택하여 지웁니다. 이렇게 하면 비밀번호나 방문 기록을 건드리지 않고 Chrome의 favicon 캐시만 지울 수 있습니다.
근본 원인 1: Chrome이 favicon.ico를 요청하는데 사이트에 파일이 없는 경우
<link rel='icon'> 태그를 작성한 적이 없어도 Chrome은 도메인 루트에서 /favicon.ico를 요청합니다. 이는 Internet Explorer 시절부터 이어진 레거시 동작이며 아직도 HTML 명세에 포함되어 있습니다. 해당 파일이 없으면 404가 발생하고 기본 지구본이 표시됩니다.
해결 방법은 간단합니다. 도메인 루트에 실제 favicon.ico를 두거나 <head>에 명시적인 link 태그를 추가하세요:
HTML 명세는 rel='icon'을 페이지에 아이콘을 연결하는 표준 방법으로 정의합니다. Chrome은 발견한 첫 번째 유효한 아이콘을 사용하지만, SVG와 ICO 폴백을 모두 제공하는 것이 가장 안전한 패턴입니다.
근본 원인 2: link 태그가 잘못된 위치에 있거나 구문 오류가 있는 경우
Chrome은 <head> 내부의 favicon link 태그만 읽습니다. 태그가 <body>에 들어간 경우(템플릿 파셜이나 CMS 인젝터에서 흔함) Chrome은 이를 조용히 무시합니다. 콘솔 오류도, 경고도 없이 그저 아이콘이 사라집니다.
다음과 같은 흔한 실수를 확인하세요:
<link> 태그에서 닫는 따옴표나 괄호가 누락됨.
rel='icon' 없이 rel='shortcut icon'만 사용함.
상대 경로가 잘못된 디렉터리를 가리킴(예: /blog/post/ 페이지에서 href='favicon.ico').
템플릿 버그로 인해 태그가 </head> 뒤에 위치함.
태그가 유효한지 확실하지 않다면 Chrome에서 페이지 소스 보기(Ctrl+U)를 열고 rel=을 검색하세요. 태그는 body 콘텐츠 앞, head 블록 안에 나타나야 합니다.
근본 원인 3: 파일이 잘못된 MIME 타입으로 제공되거나 손상된 경우
Chrome은 이미지 파일에 엄격합니다. 서버가 .ico 파일을 text/plain이나 application/octet-stream으로 반환하면 Chrome이 렌더링을 거부할 수 있습니다. DevTools에서 확인할 수 있습니다: Network 탭에서 favicon 요청을 클릭하고 Response Headers를 확인하세요.
올바른 MIME 타입은 다음과 같습니다:
ICO 파일: image/x-icon
PNG: image/png
SVG: image/svg+xml
Apache에서는 .htaccess에 AddType image/x-icon .ico를 추가하세요. Nginx에서는 서버 블록 내에 types { image/x-icon ico; }를 사용하세요. 관리형 호스팅이나 CDN을 사용 중이라면 해당 문서를 확인하세요. 일부는 기본적으로 MIME 타입을 제거하거나 재정의합니다.
근본 원인 4: 잘못된 마크업의 SVG favicon
SVG favicon은 깔끔하게 확장되고 다크 모드를 지원하기 때문에 점점 더 흔해지고 있습니다. 하지만 Chrome의 SVG 파서는 관대하지 않습니다. 네임스페이스 누락, 닫히지 않은 태그, 잘못된 HTML 엔티티 하나만 있어도 전체 파일이 거부되고 Chrome은 기본 지구본으로 대체합니다.
SVG를 브라우저 탭에서 직접 열어 유효성을 검사하세요. 이미지로 렌더링되면 마크업이 정상입니다. 원시 XML이나 오류가 보이면 favicon 태그를 걱정하기 전에 SVG를 수정하세요. 또한 SVG 루트 요소에 xmlns='http://www.w3.org/2000/svg'가 있는지 확인하세요.
예방: Chrome이 무시할 수 없는 favicon 스택 구축하기
가장 안정적인 설정은 여러 형식을 결합하여 Chrome이 항상 유효한 폴백을 갖도록 하는 것입니다. 최소한의 현대적인 스택은 다음과 같습니다:
도메인 루트에 favicon.ico(16x16 및 32x32 결합).
type='image/svg+xml'로 연결된 favicon.svg.
iOS용 180x180 apple-touch-icon.png.
Android 및 PWA 설치를 위한 site.webmanifest.
이 모든 파일은 Mzu favicondl을 사용하여 단일 소스 이미지에서 생성할 수 있습니다. 배포 후 Network 탭에서 각 파일이 200 상태로 로드되는지 확인하세요.
캐시를 지우고, link 태그를 수정하고, MIME 타입을 확인했는데도 Chrome이 여전히 빈 탭을 표시한다면 다음 마지막 단계를 시도해 보세요:
Chrome 시크릿 창에서 테스트합니다(확장 프로그램과 프로필 캐시가 우회됨).
다른 브라우저(Firefox 또는 Edge)에서 테스트하여 파일이 제대로 제공되는지 확인합니다.
서비스 워커가 favicon 요청을 가로채서 오래된 응답을 반환하는지 확인합니다.
아이콘 도메인에 대한 img-src를 차단하는 Content Security Policy 헤더가 있는지 확인합니다.
시크릿 창에서는 아이콘이 나타나지만 일반 프로필에서는 나타나지 않는다면 문제는 100% 로컬 캐시이며 서버 문제가 아닙니다. 모든 곳에서 실패한다면 문제는 HTML, 파일 경로 또는 서버 구성에 있습니다.
Chrome이 웹사이트의 favicon을 표시하지 않는 문제는 거의 항상 네 가지 중 하나입니다: 루트 favicon.ico 누락, 잘못 배치되거나 형식이 잘못된 link 태그, 잘못된 MIME 타입, 또는 캐시된 404. 이 순서대로 해결하면 커피가 식기 전에 탭에 아이콘을 되찾을 수 있습니다.
Abres Chrome, cargas tu sitio y la pestaña muestra un globo genérico o un cuadrado en blanco en lugar de tu icono. Revisas el HTML, el archivo existe, pero Chrome sigue negándose a mostrarlo. Esta es una de las quejas más comunes sobre favicons que escuchamos de los desarrolladores. La buena noticia: en la mayoría de los casos, la solución toma menos de dos minutos.
Solución rápida: fuerza una recarga completa y revisa la pestaña Network
Antes de tocar cualquier código, descarta la causa más simple: Chrome está sirviendo una versión en caché de tu favicon antiguo (o un 404 en caché). Chrome almacena los favicons en caché de forma agresiva, a veces durante días.
Abre tu sitio en Chrome.
Abre DevTools (F12 o Cmd+Option+I).
Ve a la pestaña Network y marca Disable cache.
Recarga la página con una recarga completa (Ctrl+Shift+R o Cmd+Shift+R).
En el cuadro de filtro de Network, escribe favicon.
Si ves una solicitud de favicon.ico que devuelve un 404, Chrome seguirá mostrando el globo predeterminado. Si ves un 200 pero el icono aún no se actualiza, la imagen en caché es el problema. Una recarga completa normalmente lo soluciona. Si no, abre chrome://settings/clearBrowserData, selecciona Cached images and files y borra. Eso elimina la caché de favicons de Chrome sin borrar tus contraseñas ni tu historial.
Causa raíz 1: Chrome solicita favicon.ico y tu sitio no tiene uno
Incluso si nunca escribiste una etiqueta <link rel='icon'>, Chrome seguirá solicitando /favicon.ico desde la raíz de tu dominio. Este es un comportamiento heredado que se remonta a Internet Explorer, y todavía está en la especificación HTML. Si ese archivo no existe, obtienes un 404 y el globo predeterminado.
La solución es simple: coloca un favicon.ico real en la raíz de tu dominio, o agrega una etiqueta de enlace explícita en tu <head>:
La especificación HTML define rel='icon' como la forma estándar de asociar un icono con una página. Chrome usará el primero válido que encuentre, pero proporcionar tanto un SVG como un ICO de respaldo es el patrón más seguro.
Causa raíz 2: la etiqueta link está en el lugar equivocado o tiene un error de sintaxis
Chrome solo lee las etiquetas de enlace de favicon dentro del <head>. Si tu etiqueta terminó en el <body> (común con parciales de plantillas o inyectores de CMS), Chrome la ignora silenciosamente. Sin error en consola, sin advertencia, solo un icono faltante.
Revisa estos errores comunes:
Falta una comilla de cierre o un corchete en la etiqueta <link>.
Usar rel='shortcut icon' sin incluir también rel='icon'.
Ruta relativa que resuelve al directorio incorrecto (por ejemplo, href='favicon.ico' en una página en /blog/post/).
Etiqueta colocada después de </head> debido a un error de plantilla.
Si no estás seguro de si tu etiqueta es válida, mira el código fuente de la página en Chrome (Ctrl+U) y busca rel=. La etiqueta debería aparecer dentro del bloque head, antes de cualquier contenido del body.
Causa raíz 3: el archivo se sirve con el tipo MIME incorrecto o está corrupto
Chrome es estricto con los archivos de imagen. Si tu servidor devuelve tu archivo .ico como text/plain o application/octet-stream, Chrome puede negarse a renderizarlo. Puedes verificar esto en DevTools: haz clic en la solicitud del favicon en la pestaña Network y revisa los Response Headers.
Los tipos MIME correctos son:
image/x-icon para archivos ICO
image/png para PNG
image/svg+xml para SVG
En Apache, agrega AddType image/x-icon .ico a tu .htaccess. En Nginx, usa types { image/x-icon ico; } dentro de tu bloque server. Si estás en un host gestionado o CDN, revisa su documentación; algunos eliminan o anulan los tipos MIME por defecto.
Causa raíz 4: favicons SVG con marcado inválido
Los favicons SVG son cada vez más comunes porque escalan limpiamente y admiten modo oscuro. Pero el analizador SVG de Chrome es implacable. Un namespace faltante, una etiqueta sin cerrar o una entidad HTML perdida harán que se rechace todo el archivo, y Chrome recurrirá al globo predeterminado.
Valida tu SVG abriéndolo directamente en una pestaña del navegador. Si se renderiza como imagen, el marcado está bien. Si ves XML sin procesar o un error, corrige el SVG antes de preocuparte por la etiqueta del favicon. También confirma que el SVG tenga xmlns='http://www.w3.org/2000/svg' en el elemento raíz.
Prevención: construye un stack de favicons que Chrome no pueda ignorar
La configuración más confiable combina múltiples formatos para que Chrome siempre tenga un respaldo válido. Un stack mínimo y moderno se ve así:
favicon.ico en la raíz del dominio (16x16 y 32x32 combinados).
favicon.svg enlazado con type='image/svg+xml'.
apple-touch-icon.png a 180x180 para iOS.
Un site.webmanifest para Android e instalaciones PWA.
Puedes generar todos estos desde una sola imagen fuente usando Mzu favicondl. Una vez desplegado, verifica que cada archivo cargue con un estado 200 en la pestaña Network.
Para un recorrido más profundo sobre el almacenamiento en caché específico de Chrome y las peculiaridades de localhost, consulta nuestra guía sobre favicon not showing in Chrome. Y si no estás seguro de si tu favicon siquiera se está sirviendo, realiza las comprobaciones de nuestra guía de auditoría de favicons.
Qué hacer si nada funciona
Si has borrado la caché, corregido la etiqueta link, confirmado el tipo MIME y Chrome sigue mostrando una pestaña en blanco, prueba estos últimos pasos:
Prueba en una ventana de incógnito de Chrome (se omiten las extensiones y la caché del perfil).
Prueba en otro navegador (Firefox o Edge) para confirmar que el archivo se sirve correctamente.
Busca un service worker que intercepte la solicitud del favicon y devuelva una respuesta obsoleta.
Busca un encabezado Content Security Policy que bloquee img-src para el dominio de tu icono.
Si el icono aparece en incógnito pero no en tu perfil normal, el problema es 100% caché local, no tu servidor. Si falla en todas partes, el problema está en tu HTML, la ruta del archivo o la configuración del servidor.
Que Chrome no muestre favicons para sitios web casi siempre es una de cuatro cosas: un favicon.ico raíz faltante, una etiqueta link mal colocada o malformada, un tipo MIME incorrecto o un 404 en caché. Resuélvelos en ese orden y tendrás tu icono de vuelta en la pestaña antes de que se enfríe tu café.
Generate a Chrome-Ready Favicon Stack
Upload one image, get ICO, SVG, PNG, Apple Touch, and manifest icons — all correctly sized and ready to deploy.