Free · No sign-up · Runs on your server

Generate Perfect Favicons from Any Image

Turn your images into professional favicons with support for SVG, PNG, JPG and every major format. Download a complete favicon package with every size you need for flawless display on all devices and browsers.

Lightning Fast· SVG Support· Multiple Formats

Upload your image

Drag & drop an image or click to browse. We generate every favicon size you need.

Drop your image here

or click to browse files

Choose File
PNGJPGGIFWEBPBMPSVGICO≤10MB
Generating your favicon package…
Sorry, that file could not be processed. Please use a square PNG, JPG, GIF, WebP, BMP or SVG under 10 MB.
favicon preview

Your favicon package is ready

ZIP with ICO, PNG, Apple touch icon, Android icons and web manifest.

Download favicon package

Everything You Need for Perfect Favicons

One professional favicon generator with all the tools and formats you need to create crisp icons that work everywhere.

Lightning Fast

Process images in seconds with an optimized conversion engine. No waiting, no delays.

SVG Support

Full support for SVG files with clean optimization and scaling for perfect results.

All Devices

Generate favicons for desktop, mobile, tablets and PWAs with every required size.

Complete Package

Download everything: ICO, PNG files, Apple touch icons and a web manifest.

Multiple Formats

Support for PNG, JPG, GIF, WebP, BMP and SVG — convert from any popular format.

Ready to Use

Get HTML snippets and installation instructions for immediate implementation.

Cross-Browser

Flawless compatibility with Chrome, Firefox, Safari, Edge and all modern browsers.

High Quality

Advanced image processing keeps favicons crisp and clear at every size.

Professional

Generate the industry-standard favicon package used by top websites worldwide.

8+
Supported Formats
6
Favicon Sizes
100%
Browser Compatible
0s
Processing Time

Easy Installation Guide

Follow these simple steps to add your new favicons to your website.

1

Download the Favicon Package

Use the generator above to create and download your complete favicon package as a ZIP file.

2

Extract the Files

Extract everything from the ZIP into your website’s root directory (the same folder as index.html).

3

Add the HTML Code

Copy the HTML code below and paste it inside the <head> section of your pages.

4

Test Your Favicons

Deploy your site and confirm the favicon shows in browser tabs, bookmarks and on mobile.

Integration Code for Your Framework

Pick your stack and copy the ready-to-paste code. Files live in your site root (or app/ for the Next.js App Router).

index.html
<link rel="icon" href="/favicon.ico" sizes="any">
<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">
// app/layout.tsx
// 1. Drop these files into app/ (Next.js auto-detects them):
//    - favicon.ico, icon.png, icon.svg, apple-icon.png
// 2. For extra PNG sizes + a manifest, declare them here:
import type { Metadata } from 'next'
import './globals.css'

export const metadata: Metadata = {
  icons: {
    icon: [
      { url: '/favicon.ico', sizes: 'any' },
      { url: '/favicon-32x32.png', sizes: '32x32', type: 'image/png' },
      { url: '/favicon-16x16.png', sizes: '16x16', type: 'image/png' },
      { url: '/favicon.svg', type: 'image/svg+xml' },
    ],
    apple: ['/apple-touch-icon.png'],
  },
  manifest: '/site.webmanifest',
}

export default function RootLayout({ children }) {
  return (
    <html lang="en"><body>{children}</body></html>
  )
}
// pages/_document.tsx
import { Html, Head, Main, NextScript } from 'next/document'

export default function Document() {
  return (
    <Html>
      <Head>
        <link rel="icon" href="/favicon.ico" sizes="any" />
        <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" />
      </Head>
      <body><Main /><NextScript /></body>
    </Html>
  )
}
// Vue (public/index.html) — put files in public/
<link rel="icon" href="/favicon.ico" sizes="any">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">

// Nuxt 3 (nuxt.config.ts)
export default defineNuxtConfig({
  app: {
    head: {
      link: [
        { rel: 'icon', href: '/favicon.ico', sizes: 'any' },
        { rel: 'icon', type: 'image/png', sizes: '32x32', href: '/favicon-32x32.png' },
        { rel: 'apple-touch-icon', sizes: '180x180', href: '/apple-touch-icon.png' },
        { rel: 'manifest', href: '/site.webmanifest' },
      ],
    },
  },
})
// 1. npm i gatsby-plugin-manifest
// 2. gatsby-config.js — point icon at a 512x512 PNG
module.exports = {
  plugins: [
    {
      resolve: 'gatsby-plugin-manifest',
      options: {
        name: 'Your App Name',
        short_name: 'App',
        start_url: '/',
        display: 'standalone',
        icon: 'src/images/android-chrome-512x512.png',
      },
    },
  ],
}

// Also copy favicon.ico to the static/ folder for the browser fallback.
// src/app.html — files live in static/
<!doctype html>
<html lang="en">
  <head>
    <link rel="icon" href="/favicon.ico" sizes="any" />
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png" />
    <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
    <link rel="manifest" href="/site.webmanifest" />
    %sveltekit.head%
  </head>
  <body data-sveltekit-preload-data="hover">
    <div style="display:contents">%sveltekit.body%</div>
  </body>
</html>
Where do the files go? Drop favicon.ico, icon.png and apple-icon.png straight into the app/ folder. Next.js detects them automatically — no manual link tags required.
site.webmanifest
{
  "name": "Your App Name",
  "short_name": "App",
  "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"
}

Files Included

Your favicon package contains the following files.

favicon.icofavicon-16x16.pngfavicon-32x32.pngapple-touch-icon.pngandroid-chrome-192x192.pngandroid-chrome-512x512.pngfavicon.svgsite.webmanifest

Pro Tips

  • Keep every favicon file in your website root for the best compatibility.
  • Hard-refresh (or clear the cache) after updating favicons to see the change at once.
  • Test your favicon across devices and browsers to make sure it renders correctly.

Frequently Asked Questions

Answers to common questions about favicon generation and implementation.

Which image formats are supported?
You can upload PNG, JPG, GIF, WebP, BMP or SVG files. For the sharpest result start with a square image of at least 512×512 pixels. Files up to 10 MB are accepted.
How big should the original image be?
A square source image of 512×512 or larger is ideal. The generator scales it down cleanly, so a large crisp source gives the best-looking small icons.
Do you support SVG favicons?
Yes. SVG files are kept as a vector favicon.svg for crisp rendering on modern browsers, and are also rasterized into every PNG and ICO size for older browsers.
Which favicon sizes are generated?
The package includes 16×16 and 32×32 PNG, a multi-resolution favicon.ico, a 180×180 Apple touch icon, and 192×192 and 512×512 Android/PWA icons, plus a web manifest.
How do I add the favicon to my website?
Extract the ZIP into your site root and paste the provided HTML snippet into the <head> of your pages. Full instructions and framework code are shown above.