Add a Favicon to WordPress
A WordPress favicon is the Site Icon: upload one square image of at least 512 by 512 pixels and WordPress generates the tab, bookmark and home-screen sizes itself. Since WordPress 6.5 the setting lives in Settings, General; older versions keep it in the Customizer under Site Identity.
For WordPress owners in India who want the browser-tab and bookmark icon set correctly the first time.
knowledge
- Read time
- 6 min
- Sections
- 9
- Updated
- 14 Nov 2026
- Written by
- WebJi® team
Last editorial update: 15 November 2026.
What a favicon is in WordPress: the Site Icon
In WordPress the favicon is managed as the Site Icon: one square upload that WordPress automatically turns into every size a browser or phone needs — the tab icon, the bookmark icon and the home-screen tile. There is no separate 16×16 file to prepare and no code required on a standard install; WordPress writes the derivatives into your uploads folder and prints the correct <link> tags in the page head.
- Site Icon — the WordPress setting that stores the master image and generates the sizes.
- Favicon — the general browser name for the tab and bookmark picture.
- Apple touch icon — the 180×180 version a phone uses when someone saves your site to the home screen.
WordPress has carried the Site Icon setting since version 4.3, so every supported install has the field somewhere — only its address has moved between releases, which is why guides disagree. Since WordPress 6.5 the home of the setting is Settings → General; older versions keep it in the Customizer.
Prepare the square image before you upload
The WordPress requirement is one line: a square image with height and width of at least 512 pixels, in PNG format ideally. Below that, the uploader refuses the file or the frame keeps the default WordPress logo. Beyond the raw size, favicon design has its own physics — a wide banner cropped to a square becomes an unreadable strip, and no setting repairs that after upload.
- Size: at least 512×512 pixels — WordPress needs this for the phone home-screen tile.
- Shape: exactly 1:1; PNG with a transparent background or a flat JPG.
- Content: a mark that fills the frame — no wordmarks, no taglines.
- Colours: two at most; detail that reads at poster size turns to mud at 32 pixels.
Name the file recognisably — favicon-512.png — and upload it through wp-admin rather than dropping it into a folder by hand, because the Site Icon flow goes through the Media Library.
How to set the favicon via Settings → General
On WordPress 6.5 and later, open Settings → General in wp-admin, scroll to Site Icon, click Choose a Site Icon, and upload the square file — that single upload is the whole job. On versions between 4.3 and 6.4 the same field lives in the Customizer under Appearance → Customize → Site Identity.
- In wp-admin, open Settings → General (WordPress 6.5+) and find the Site Icon frame.
- Click Choose a Site Icon — or the existing image, if you are replacing one.
- Upload the square file or pick it from the Media Library, then confirm.
- Crop to the square if the crop tool opens; skip it when the image is already 1:1.
- Save, then hard-refresh the site — the new icon should sit in the browser tab.
If the image uploads but the frame keeps the WordPress logo, the file was smaller than 512 pixels on a side. And if Appearance → Customize is missing entirely, you are on a block theme — use the General Settings route above, which works on every theme type.
Two other routes: the Site Editor shortcut and the child-theme method
Block themes offer a shortcut — edit the header in the Site Editor, select the Site Logo block, and switch on "Use as site icon" — and when a theme strips every setting screen out, a child theme can print the icon tags itself. The child-theme route keeps the parent theme untouched so a theme update cannot wipe your change; it is also the method when you want full control over which files are referenced.
- In File Manager, open
wp-content/themesand find (or create) your child theme folder — the child theme guide covers creation. - Open the child theme's
functions.php. - Add a small function hooked to
wp_headthat prints a link tag:add_action( 'wp_head', function () { echo '<link rel="icon" href="' . esc_url( get_stylesheet_directory_uri() . '/favicon-32x32.png' ) . '" sizes="32x32">'; } ); - Upload
favicon-32x32.png(and an 180×180 apple-touch version) besidefunctions.php. - Save, reload the site, and check the page source for your tag with the child theme path.
A PHP error after saving means a missing semicolon or quote in the snippet — restore the previous functions.php from File Manager and retry. The account this runs on is ordinary WordPress hosting; no special server feature is needed.
Why the old favicon still shows after you changed it
The new file can be live while your tab keeps the old icon, because three caches hold favicons stubbornly: the browser, the caching plugin or CDN, and the search index. Clear them in that order and stop as soon as the tab changes.
- Open the site in a private window first — if the new icon appears there, only your own browser cache is stale.
- Purge the caching plugin, then the CDN, if one sits in front of the site; every layer is listed in how to clear the WordPress cache.
- Hard-refresh the tab: Ctrl+F5 on Windows, Cmd+Shift+R on a Mac.
Search results are the slowest of the three: Google keeps showing the icon it already has until it recrawls the page, so a change can take days to appear beside your listing. That lag is normal and needs no fix.
How to confirm the icon is actually live
Read the page source: a working Site Icon adds link tags pointing at files inside wp-content/uploads — sizes such as 32×32 and 192×192, plus an apple-touch-icon at 180×180. The source tells you which of the three failure modes you are in.
- No icon tags at all — the Site Icon was never saved; redo the upload.
- Tags point at an old filename — a cache is still serving the previous page; purge it.
- Tags point at files that return 404 — the generated image was deleted from the Media Library; re-upload.
Load the homepage, press Ctrl+U (or prepend view-source: to the address), search for rel="icon", and open one of the listed file URLs — the image should load, not 404.
Frequently asked questions
What size should a WordPress favicon be?
Square, at least 512 pixels wide and tall — that is the official Site Icon requirement. PNG is the recommended format. WordPress generates the smaller sizes (32×32, 192×192, and a 180×180 apple-touch-icon) from that one upload, so you never prepare them by hand.
Where is the Site Icon setting on a block theme?
In Settings → General, the same as everywhere else since WordPress 6.5. Block themes additionally let you turn on "Use as site icon" on the Site Logo block inside the Site Editor, which reuses your logo image as the favicon in one click.
My favicon changed but the tab has not. What is wrong?
Usually nothing — favicon caches are aggressive. Test in a private window first; if the new icon shows there, only your browser cache is stale. Then purge any caching plugin and CDN, and hard-refresh. Search-result icons lag further because Google refreshes them on recrawl, sometimes days later.
Can I just upload a 16×16 .ico file instead?
You can hand-code <link rel="icon"> tags to a 16×16 .ico in a child theme, but the Site Icon route is better: one 512×512 upload covers every size browsers and phones request today, and the setting survives theme changes. The manual route only earns its keep when a theme hides all settings screens.
Does a favicon affect SEO?
Not as a ranking factor, but it affects how your listing looks: Google can show the favicon beside mobile search results, so a crisp square icon improves recognition there. A missing or blurry icon costs branding, not rankings.
Last editorial update: 15 November 2026. Site Icon behaviour — minimum 512×512 px, available since WordPress 4.3, moved to Settings → General in WordPress 6.5 — per the official WordPress documentation.
Ready to get started with WebJi®?
Join 12,000+ businesses across India and overseas. INR pricing, 18% GST shown before payment and 24/7 email support in Hindi and English — average first reply under 60 minutes.