Create Your Favicon
Generate a multi-resolution favicon.ico file for your website in seconds.
Drag and drop your image here
or click to browse
Need inspiration? Try one of these samples:






Framework-Specific Instructions
Next.js Instructions
How to add a favicon to your Next.js project
App Router (Next.js 13+)
In the App Router, simply place your favicon.ico
file in the app/
directory:
my-nextjs-app/
├── app/
│ ├── favicon.ico <-- Place here
│ ├── layout.tsx
│ └── page.tsx
└── ...
Next.js will automatically serve this file at the root of your site. You can also use the Metadata API for more control:
// app/layout.tsx
import type { Metadata } from 'next'
export const metadata: Metadata = {
title: 'My Website',
description: 'My website description',
icons: {
icon: '/favicon.ico',
// You can also specify additional icons:
// apple: '/apple-icon.png',
},
}
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="en">
<body>{children}</body>
</html>
)
}
Pages Router (Next.js 12 and earlier)
In the Pages Router, place your favicon.ico
file in the public/
directory:
my-nextjs-app/
├── public/
│ ├── favicon.ico <-- Place here
│ └── ...
├── pages/
│ ├── _app.js
│ └── index.js
└── ...
You can also use the Head
component from next/head
to add the favicon link:
// pages/_app.js
import Head from 'next/head'
function MyApp({ Component, pageProps }) {
return (
<>
<Head>
<link rel="icon" href="/favicon.ico" sizes="any" />
</Head>
<Component {...pageProps} />
</>
)
}
Next.js automatically serves static files from the
public
directory (Pages Router) or the app
directory (App Router) at the root of your application.