Concrete CMS 9 · Updated 2026-09-03
There is no single "logo setting" in Concrete. The logo's source depends on how your theme builds its header, and there are three common cases.
Most Concrete 9 themes put the header in a global area and expect you to place the Top Navigation Bar block in it. That block has its own logo setting: edit the block, upload or pick an image from the file manager, and choose whether to show the logo, the site name, or both.
This is the case to hope for. Nothing about it requires touching code, and the change applies everywhere the global area appears.
Some themes, Cast among them, render the site name as a wordmark rather than assuming you have a logo file. To change the text, change the site name under System & Settings; the header follows.
Older themes sometimes reference an image inside the theme folder. Replacing that file works, but the change is lost the next time the theme updates. The durable fix is to override the header element from your application folder instead of editing the theme in place: copy the theme's elements/header.php to application/themes/<theme>/elements/header.php and edit the copy. Concrete looks in the application folder first, so your version wins and the packaged theme stays upgradeable.
The browser-tab icon is not part of the theme. Set it under System & Settings → Basics → Bookmark Icons. Themes that also ship a favicon are overriding it, which is why yours may not change.