Troubleshooting
The browser still shows the old icon
Browsers cache favicons hard — harder than almost anything else, and outside the normal page cache. Check the generated file directly, at the URL shown on the Fav screen. If that file is correct, the problem is the browser cache. A private window shows the real icon.
No tags appear on the page
Work through these in order:
- Is the set enabled, with a source image? The Fav screen says so at the top.
- Has it been generated? After a fresh deploy the settings are there but the files are not.
The Fav screen shows a warning. Run
php craft fav/favicons/generate. - Does the page already link to an icon? With
skipPagesWithIconson, Fav leaves that page alone. View the source and search forrel="icon". Remove the template's own icon tags, or turn the setting off. - Is the response HTML? Fav only touches responses served as
text/html. - Is
autoInjectoff? Then the tags only appear where a template calls{{ craft.fav.tags() }}.
The PNGs are blank
The source is an SVG and the server uses GD, which cannot rasterise SVG. Fav refuses this and says so on the screen. Upload a PNG, or ask your host for Imagick.
A colour keeps turning white
A colour must be a hex value. #0e2a47, 0e2a47 and #abc are all accepted and normalised.
Anything else is replaced with white rather than reaching the icons.
The icons 404 on production
The web root is probably not writable there, so the icons are in storage/fav/ and served
through Craft at /fav/file/…. Check that nothing in front of Craft — a CDN rule, a server block
for /fav/ — is answering those URLs before Craft sees them.
Two manifests on the page
A PWA plugin is adding its own. Turn Fav's web manifest off for that site.
Where are the logs?
In Craft's own logs — storage/logs/web-*.log, or console-*.log for the console commands —
under the fav category. Every generation failure is logged with the reason.