ANSWER

Quick answer

Serve SVG as image/svg+xml, PNG as image/png, ICO as image/vnd.microsoft.icon or a compatible image/x-icon response, and the web app manifest as application/manifest+json. The filename alone does not establish the media type.

Last verified
July 31, 2026
Evidence
Primary documentation plus transparent editorial analysis
Primary sources
3
FACTS

Favicon MIME Types for ICO, SVG, PNG and Manifests: key distinctions

FileExpected Content-Type
favicon.icoimage/vnd.microsoft.icon
favicon.svgimage/svg+xml
favicon.pngimage/png
site.webmanifestapplication/manifest+json
01

Use types that describe the bytes

Serve SVG as image/svg+xml, PNG as image/png, ICO as image/vnd.microsoft.icon or a compatible image/x-icon response, and the web app manifest as application/manifest+json. The filename alone does not establish the media type.

Keep link type attributes consistent with the response. Incorrect declarations can confuse candidate selection and make diagnostics harder even when a tolerant browser still renders the image.

Connected next stepSafari Pinned Tab Icons, SVG Masks and Touch Icons for the closest prerequisite or comparison.

02

Detect the 200 HTML failure

Single-page application rewrites and custom error handlers often return the HTML shell for a missing icon with status 200. Check the response Content-Type and inspect the first bytes rather than treating status alone as success.

Exclude root icon and manifest paths from catch-all rewrites. Static files should be served before application fallback routing.

Connected next stepFavicon Security: SVG Uploads, SSRF and Tracking for the next connected implementation decision.

03

Account for nosniff and proxies

X-Content-Type-Options: nosniff reduces reliance on type guessing, which makes accurate response metadata more important. CDNs and object storage can override or infer types during upload.

Verify the final custom hostname after every proxy, CDN and rewrite layer. A correct local development response does not prove the edge response.

Connected next stepOpen the most relevant production tool and verify the decision with a working output.

04

Create a release check

Request the rendered head, resolve each icon URL, follow redirects and compare declared type, response Content-Type, decoded format and dimensions. Validate manifest icon URLs relative to the manifest URL.

Fail deployment when an icon returns HTML, an unsupported redirect, mismatched bytes, a non-square image or an unexpected MIME type.

TOOLS

Apply this guide with the relevant tools

Use the smallest tool that verifies the specific decision described above. Each destination keeps the source format, deployment evidence, or platform purpose explicit.

DOWNLOADABLE EVIDENCE

Review the headings, sources, implementation artifact, and update record for this guide as structured JSON.

Download guide evidence ↓
Evidence scope
Guide
Favicon MIME Types for ICO, SVG, PNG and Manifests
Coverage
Client behavior can change by browser, operating system, platform version, cache state and deployment configuration. Unperformed manual observations are not claimed.
Q&A

Questions, answered

What MIME type should favicon.ico use?+

Serve image/vnd.microsoft.icon when possible; image/x-icon remains a common compatible response.

Why does my favicon return text/html?+

A rewrite or error handler is probably serving the application page instead of the missing static image.