완벽하다고 생각했던 HTML을 W3C 유효성 검사기에 돌렸을 때 파비콘 태그 때문에 기이한 경고를 받은 적이 있으신가요? 유효성 검사기는 <link rel='shortcut icon' href='/favicon.ico'> 태그를 유효하지 않다고 표시합니다. 아마도 오래된 튜토리얼이나 레거시 코드베이스에서 그 스니펫을 복사했을 것입니다. 오늘날 link rel shortcut icon 설명을 명확히 이해하는 것은 프론트엔드 개발자의 통과의례와도 같습니다. 왜 이 특정한 속성 조합이 존재하는지, 브라우저가 이를 어떻게 해석하는지, 그리고 2026년에 왜 그 절반을 지워야 하는지 파헤쳐 보겠습니다.
Shortcut Icon의 탄생 비화
이 혼란을 이해하려면 Internet Explorer 5 시절로 거슬러 올라가야 합니다. 1999년, 마이크로소프트는 사이트 아이콘이라는 개념을 도입했습니다. 사용자가 웹사이트 북마크(Windows에서는 이를 "바로가기(shortcut)"라고 불렀습니다)를 바탕화면에 저장할 때 사용자 지정 그래픽을 표시할 수 있는 방법을 원했기 때문입니다. 그래서 마이크로소프트 엔지니어들은 급하게 shortcut icon이라는 관계 유형을 만들어냈습니다.
이는 전적으로 마이크로소프트의 독자적인 확장 기능이었으며, 당시 공식 HTML 사양의 일부가 아니었습니다. 하지만 모든 웹마스터가 IE 주소창과 즐겨찾기 메뉴에 자신의 커스텀 아이콘을 띄우고 싶어 했기 때문에 이 방식은 빠르게 채택되었습니다. 수년 동안 이 비공식적인 방법이 사이트 아이콘을 선언하는 절대적인 표준으로 자리 잡았습니다.
브라우저가 Rel 속성을 파싱하는 실제 방법
여기서부터 기술적인 파싱의 흥미로운 부분이 시작됩니다. HTML에서 rel 속성은 "관계(relationship)"를 의미하며, 현재 문서와 연결된 리소스 간의 관계를 정의합니다. 가장 중요한 점은 rel 속성이 공백으로 구분된 값의 목록을 허용한다는 것입니다.
최신 브라우저가 rel='shortcut icon'을 읽을 때, "shortcut icon"이라는 단일 관계를 보는 것이 아닙니다. 다음과 같은 두 개의 독립적인 관계로 인식합니다.
- shortcut: 표준에서 인정하지 않는 레거시 링크 유형.
- icon: 파비콘을 위한 공식 HTML 표준 링크 유형.
HTML 사양은 "icon"을 유효한 관계로 정의합니다. 이는 브라우저에게 "이 이미지를 UI 아이콘으로 사용하라"고 지시합니다. 하지만 "shortcut"은 최신 HTML에서 완전히 무의미합니다. 등록된 링크 유형이 아닙니다. 두 단어를 모두 사용하면 최신 브라우저는 단순히 "shortcut"을 무시하고 "icon"만 처리합니다. W3C 유효성 검사기가 오류를 발생시키는 이유는 사양에 존재하지 않는 관계 유형을 선언했기 때문입니다.
"Shortcut"만 사용하면 어떻게 될까요?
만약 <link rel='shortcut' href='/favicon.ico'>라고 작성한다면, 거의 모든 브라우저에서 아이콘 로드에 실패할 것입니다. "shortcut"은 인식되는 아이콘 관계가 아니기 때문에 Chrome과 Safari는 해당 파일을 완전히 무시합니다. 마법은 항상 그 옆에 있던 "icon"이라는 단어에서 나왔던 것입니다. 개발자들이 20년 동안 "shortcut icon"을 타이핑했지만 실제로는 뒷부분만 일을 하고 있었다는 사실은 웹 역사상 가장 재미있는 기행 중 하나입니다.
실제 사례와 최신 표준
오늘날 GitHub나 Stripe의 소스 코드를 살펴보세요. 파비콘 선언 근처 어디에서도 "shortcut"이라는 단어를 찾을 수 없을 것입니다. 그들은 깔끔하고 표준적인 태그를 사용합니다. GitHub는 최신 SVG 아이콘과 대체용 PNG를 제공하며 전적으로 표준 rel='icon' 속성에 의존합니다. IE5 시절의 레거시 핵에 매달리는 것은 문서 헤드에 불필요한 바이트만 추가할 뿐이라는 것을 그들은 알고 있습니다.
2026년 모범 사례
레거시 문법 사용을 중단하세요. 2026년에 사이트를 구축한다면 기본 파비콘 태그는 다음과 같아야 합니다.
<link rel='icon' href='/favicon.ico' sizes='32x32'>"shortcut"이라는 단어가 없는 것을 확인하세요. 이 깔끔한 문법은 Chrome, Firefox, Safari, Edge를 포함한 모든 최신 브라우저에서 완벽하게 지원됩니다. 구형 브라우저에 대해 걱정할 필요도 없습니다. 이미 수명을 다한 IE11조차도 파일이 유효한 ICO 형식이기만 하면 표준 rel='icon' 문법을 지원했습니다. 레거시 컨테이너 형식에 대해 다시 알아보고 싶다면 ICO 파일 형식 가이드를 확인하세요.
SEO 및 성능에 미치는 영향
유효하지 않은 rel 속성이 있다고 해서 Google 순위가 직접적으로 떨어지는 것은 아니지만, 검색 엔진은 검색 결과에 사이트 아이콘을 표시하기 위해 문서 헤드를 파싱합니다. Google의 공식 문서에서도 개발자에게 rel='icon'을 사용할 것을 명시적으로 요구합니다. 검색 엔진 봇에게 유효하지 않은 레거시 마크업을 제공하는 것은 불필요한 위험입니다. <head> 태그의 1바이트 1바이트가 중요합니다. 더 이상 사용되지 않는 속성을 제거하면 그 차이가 미세하더라도 파싱 속도가 빨라집니다.
올바른 아이콘 스택 구축하기
오늘날 완벽한 아이콘 스택에는 단일 ICO 파일 이상의 것이 필요합니다. 다크 모드용 SVG, iOS용 Apple Touch Icon, Android용 웹 매니페스트가 필요합니다. 이 태그들을 수동으로 작성하는 것은 번거롭고 오류가 발생하기 쉽습니다.
이것이 바로 우리가 Mzu favicondl을 만든 이유입니다. 어떤 레거시 속성을 유지할지 추측하는 대신, 로고를 업로드하기만 하면 도구가 유효성 검사기를 통과하는 정확한 파비콘 HTML 코드를 생성해 줍니다. "shortcut icon" 값은 초기 웹의 유령입니다. Internet Explorer가 시장을 지배했을 때는 제 역할을 다했지만, 최신 코드베이스에는 더 이상 설 자리가 없습니다. "shortcut"을 버리고 표준 HTML을 수용하여 마크업을 깔끔하게 유지하세요.