How to Add Favicons in cPanel, Plesk & Shared Hosting
Published November 28, 2025 · Updated June 9, 2026
Upload your favicon files into your web root (public_html or httpdocs) so they load at /favicon.ico, then add four link tags. cPanel, Plesk & FTP steps.
Upload your favicon files into your site’s web root — the folder that maps to your domain’s top level, usually public_html on cPanel or httpdocs on Plesk. Once they’re there, they’re reachable at https://yoursite.com/favicon.ico, which is exactly where browsers look. Then add four <link> tags to your page <head>. That’s the whole job, whether you use a control panel’s file manager or an FTP client like FileZilla.
In one line: drop the files in your web root, confirm /favicon.ico loads, then paste four tags into <head>.
The mistake that wastes the most time isn’t uploading — it’s uploading to the wrong folder, then wondering why the browser still shows a blank icon. Get the web root right and everything else falls into place.
The files to upload
Generate the modern set first, from one 512×512 source. You’ll be uploading six files:
favicon.ico— multi-size (min 32×32), the legacy and desktop-tab fallback browsers auto-requestfavicon.svg— the primary, resolution-independent iconapple-touch-icon.png— 180×180, opaque, ~20px padding for iOS home screensicon-192.pngandicon-512.png— PWA icons (purposeany)icon-512-maskable.png— 512×512 Android adaptive icon (purposemaskable)site.webmanifest— the web app manifest that lists the PWA icons
FaviconBuilder generates that whole set plus the copy-paste HTML and manifest from one upload — free, no account, and the image never leaves your browser. (How to create a favicon from a logo →)
Confirm your web root first
Every host has one folder that serves your domain’s top level. Files there are reachable at the root of your URL — https://yoursite.com/filename. That’s where favicons belong, because browsers request /favicon.ico from the root automatically.
The default folder name depends on your control panel:
| Hosting setup | Web root folder |
|---|---|
| cPanel (primary domain) | public_html |
| cPanel (addon domain) | public_html/addon-domain.com/ |
| Plesk | httpdocs |
| DirectAdmin | public_html (under domains/yoursite.com/) |
| Generic FTP host | public_html, httpdocs, www, or htdocs |
If you’re not sure which folder is correct, the fastest test is to upload favicon.ico, then visit https://yoursite.com/favicon.ico in a browser. If the icon loads, that folder is your web root. If you get a 404, the file is in the wrong place.
Uploading via cPanel File Manager
- Log into cPanel and open File Manager.
- Open
public_html(orpublic_html/addon-domain.com/for an addon domain). - Click Upload and select all six favicon files plus
site.webmanifest. Keep them at the top level of the web root — don’t nest them in an/images/subfolder. - If cPanel asks to overwrite existing files, confirm it.
- Visit
https://yoursite.com/favicon.icoto verify it loads directly.
Uploading via Plesk File Manager
- Log into Plesk and go to Websites & Domains → File Manager.
- Open the
httpdocsdirectory for the correct domain. - Drag the favicon files in, or use the Upload button.
- Leave permissions at the default (644 for files is typical for public assets).
- Visit
https://yoursite.com/favicon.icoto confirm it serves.
If you manage several subscriptions, double-check you’re editing the right domain before uploading.
Uploading via FTP or SFTP (FileZilla)
When your host only offers FTP/SFTP, or you’d rather not use the panel, an FTP client does the same job:
- Open FileZilla and enter the host, username, password, and port from your hosting panel (use SFTP on port 22 where offered).
- Connect, then in the right-hand pane open the web root — usually
public_htmlorhttpdocs. - Drag the six favicon files and
site.webmanifestfrom the left pane into the web root. - Wait for the transfer queue to finish.
- Visit
https://yoursite.com/favicon.icoto confirm the upload.
Files go live the moment the transfer completes — there’s no build step on a shared host.
Add the four link tags
Uploading the files isn’t enough on its own. Add these four tags to the <head> of every page (the SVG and ICO are the workhorses, the Apple touch icon covers iOS, and the manifest carries the PWA sizes):
<link rel="icon" href="/favicon.ico" sizes="32x32">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
Never use rel="shortcut icon" — it was never a valid relation, and the four tags above replace any long per-size list you’ve seen in older tutorials. (Step-by-step: add a favicon in HTML → · Full tag-by-tag reference →)
Verify by visiting /favicon.ico directly
The single most useful check is to open each file’s URL in the browser, bypassing your HTML entirely:
https://yoursite.com/favicon.icohttps://yoursite.com/favicon.svghttps://yoursite.com/site.webmanifest
If those load, the files are on the server in the right place and your only remaining job is the HTML tags. If any returns a 404, the file is in the wrong folder or misnamed. This separates an upload problem from a markup problem in seconds.
MIME types: usually automatic, occasionally not
Most servers already serve .ico, .png, and .svg with the correct content type, so you can skip this section unless something misbehaves. The two extensions that sometimes need a manual rule:
.svgshould serve asimage/svg+xml. If your SVG favicon downloads as text instead of rendering, the MIME type is wrong..webmanifestshould serve asapplication/manifest+json. A missing rule here can stop a PWA from installing.
Add these in cPanel under MIME Types, or in Plesk under the domain’s Hosting Settings / Apache & nginx controls. On servers you can’t configure that way, an .htaccess rule works:
AddType image/svg+xml .svg
AddType application/manifest+json .webmanifest
Caching and CDN: the usual reason it “doesn’t work”
Favicons are cached harder than almost any other asset — by the browser, by the host’s own cache layer (LiteSpeed, Varnish), and by any CDN in front of your site (Cloudflare, Fastly). After uploading a new or changed icon, the file can be live on the server while visitors still see the old one.
When that happens, purge the CDN cache and any host-side cache, then do a hard refresh (Cmd+Shift+R / Ctrl+Shift+R). If it still won’t update, the full diagnostic flow is in Favicon Not Showing? How to Check & Fix It.
Static hosts (Netlify, Vercel, Cloudflare Pages)
If you’re not on traditional shared hosting, the idea is identical — only the folder name changes. Drop the favicon files into the directory that gets published to the site root:
- Netlify — your publish directory (often
dist,build, orpublic). - Vercel — the
public/folder for most frameworks; files there are served from the root. - Cloudflare Pages — your build output directory.
In every case the files end up at https://yoursite.com/favicon.ico, and the same four <link> tags apply. There’s no MIME tweaking needed — these platforms set the right content types for you.
Summary
Hosting a favicon comes down to one rule: put the files where the URL root points.
- Find your web root —
public_htmlon cPanel,httpdocson Plesk, the publish directory on static hosts. - Upload all six files plus
site.webmanifestat the top level, via File Manager or FileZilla. - Verify by visiting
https://yoursite.com/favicon.icodirectly. - Add the four
<link>tags to your<head>— norel="shortcut icon". - Set
.svgand.webmanifestMIME types only if the browser refuses them, and purge caches if the old icon lingers.
Continue reading:
Frequently asked questions
Where do I upload my favicon files?
Into your site's web root — the folder that maps to your domain's top level. On cPanel that's usually public_html; on Plesk it's httpdocs. Files placed there are reachable at https://yoursite.com/favicon.ico, which is exactly where browsers look.
How do I find my web root folder?
On cPanel open File Manager and look for public_html (addon domains live in subfolders under it). On Plesk it's httpdocs under Websites & Domains. The simplest test: upload favicon.ico, then visit https://yoursite.com/favicon.ico — if it loads, you found the right folder.
How do I upload a favicon over FTP?
Connect with an FTP/SFTP client like FileZilla using the host, username, and password from your hosting panel. Open the web root (often public_html or httpdocs), then drag your favicon files into it. They go live as soon as the transfer finishes.
Why does my favicon still not show after uploading?
Almost always caching. Browsers and CDNs hold favicons aggressively, so a hard refresh or a CDN purge usually fixes it. Confirm the file itself works by visiting /favicon.ico directly — see the not-showing guide if it still won't appear.
Do I need to set MIME types for favicons?
Usually no — servers already serve .ico and .png correctly. The two that sometimes need a rule are .svg (image/svg+xml) and .webmanifest (application/manifest+json). Add those in your panel's MIME-type settings if the browser refuses to load them.