Set both from Appearance → Editor → Design → Site Identity in the WordPress block editor (or Appearance → Customize → Site Identity on older/classic themes). Upload a logo around 300x100px for the header and a square icon at least 512x512px for the favicon. No plugin needed for either one.
Setting the site logo
Most current themes are block themes, which move site-wide settings into the Site Editor:
- Open
wp-admin → Appearance → Editor. - Click Design → Site Identity (or click directly on the logo placeholder in a template that includes a Site Logo block).
- Click Choose logo or the logo block, then upload your file.
- Save.
If your theme is a classic (non-block) theme, the same setting lives at Appearance → Customize → Site Identity instead. Either way, you're setting the same underlying option, so it appears wherever your theme's header template references the site logo.
A few practical notes on the image itself:
- Use a PNG or SVG with a transparent background if your header isn't solid white.
- WordPress stores the original upload and crops/scales display sizes automatically. Upload at roughly 2x the size your theme displays it, so it stays sharp on high-DPI screens.
- Keep the file reasonably small. A logo saved at several megabytes adds needless weight to every page load. Run it through a compressor before uploading if your export came out large.
Setting the favicon
The favicon (site icon) is a separate setting from the logo, though the upload flow looks similar:
- In the Site Editor:
Appearance → Editor → Design → Site Identity → Site Icon. - On Customizer themes:
Appearance → Customize → Site Identity → Site Icon. - Upload a square image, minimum 512x512px. WordPress needs the extra resolution because the same file gets scaled down for browser tabs, bookmarks, and home-screen icons on mobile.
A logo that isn't square doesn't work well here; crop to a square mark or icon version of your brand first. If you don't have one, a simplified icon or initial usually reads better at 16x16px in a browser tab than a shrunk full logo does.
If you're using a page builder
Elementor, Divi, and similar builders sometimes add their own header widget with a separate logo upload. If you set the logo in Site Identity but your header still shows the old one (or nothing), check the builder's header template for a hardcoded logo widget and update it there too. The Site Identity logo and a page-builder header logo are two different settings unless the builder is specifically pulling from the WordPress site logo option.
When you don't need a plugin
Site Identity covers logo and favicon for the vast majority of sites. You'd only reach for a plugin if you need different favicons per device type beyond what WordPress generates, or a dedicated brand-assets manager for a multi-site setup. For a single site, that's added complexity for no real gain, and every active plugin is one more thing that can slow the site down or conflict with an update. If your site already feels sluggish, work through My WordPress site is slow before adding anything new.
Test on staging first if you're mid-redesign
Swapping a logo and favicon is low-risk on its own. But if it's part of a larger rebrand touching your header template, colors, or theme, do that work on a staging copy first so visitors don't see a half-finished header while you iterate - you can create one from WordPress Toolkit on your hosting service page. See Using WordPress staging for the full workflow. Nightly backups already run on your account, but take a fresh one before any theme-level change anyway, since a broken header during checkout hours is worse than one during quiet hours.