How to use .ico favicons correctly in Discourse multisite? Google shows different favicons for main site and forum despite same upload

Hi all,

I’m managing a Discourse multisite setup with many sites on the same server. For branding consistency, I want to use .ico favicons (32x32) for both the main job sites and their forums.

I’ve uploaded the same .ico favicon to both the main sites and forums — however, when I check Google search results:

  • The main sites show a 16x16 favicon icon (PNG or .ico?), as expected.
  • The forums show a larger 26x26 PNG icon, even though the favicon is the same .ico file.

I suspect Discourse is injecting its default PNG favicon separately, which might cause Google and browsers to pick different favicon versions between main site and forum.

My questions:

  1. How can I properly use .ico favicon files in Discourse?
  2. How can I fully override or disable the default Discourse PNG favicon so only my .ico favicon is used?
  3. Could this favicon inconsistency affect SEO or Google search results? How to fix it?
  4. Any best practices to ensure consistent favicon display across all multisite forums and main sites?

I’m also looking for a solution a multisite discourse setup.

Thanks for your help!

1 Like

Good question, I have this issue as well!

1 Like

Still looking for help or advice. :eyes:
Thanks!

It works correctly on our hosting.

Can you post the actual site hostnames, indicating which is the multisite root and which is the multisite guest so we can look?

1 Like

@supermathie
Thank you for your response!
I appreciate the suggestion and the clarification on the root and guest sites.

multisite root is forum.getnursingjobs.com and one of guest site is forum.getchefjobs.com
Any suggestion would be

For Discourse sites, the icon is determined by page contents (a link element in head):

○ → curl -s https://forum.getnursingjobs.com/ | htmlq 'link[rel=icon]'
<link href="https://forum.getnursingjobs.com/uploads/default/optimized/1X/931ed11ccda2b78d1b427939901795ee6d2d4b50_2_32x32.png" rel="icon" type="image/png">

○ → curl -s https://forum.getchefjobs.com/ | htmlq 'link[rel=icon]'
<link href="https://forum.getchefjobs.com/uploads/chef/optimized/1X/931ed11ccda2b78d1b427939901795ee6d2d4b50_2_32x32.png" rel="icon" type="image/png">

And those files ( and respectively) are both 32×32 PNGs are expected:

○ → curl -s https://forum.getnursingjobs.com/uploads/default/optimized/1X/931ed11ccda2b78d1b427939901795ee6d2d4b50_2_32x32.png | file -
/dev/stdin: PNG image data, 32 x 32, 8-bit/color RGBA, non-interlaced

○ → curl -s https://forum.getchefjobs.com/uploads/chef/optimized/1X/931ed11ccda2b78d1b427939901795ee6d2d4b50_2_32x32.png | file -
/dev/stdin: PNG image data, 32 x 32, 8-bit/color RGBA, non-interlaced

Presumably this is what you intended?

I assume that by “main site” you mean e.g. www.getnursingjobs.com; that site has an icon () that is also a 32×32 PNG:

○ → curl -s https://www.getnursingjobs.com/favicon.ico | file -
/dev/stdin: PNG image data, 32 x 32, 8-bit colormap, non-interlaced

All I see are 32×32 PNGs, so everything looks good to me. If the problem for you is that Google is serving up results with icons of different sizes, they’re generating those for you and you have no control over that. But It looks like the only change they’re making is rendering the icons at a different size (in my case, 18x18) even though the icon they’re showing for your site is still a 32×32 PNG:

To me, everything looks fine.

1 Like

Thank you so much for the detailed and thorough analysis, @supermathie . I really appreciate you taking the time to look into this and provide such a clear explanation. Your breakdown was very helpful.

1 Like