How to change default logo of magento admin panel

There is no setting to change Magento's backend logo. If you want, you can change it by replacing at:

<magento_root>/pub/static/adminhtml/Magento/backend/en_US/images/magento-logo.svg

Note: Where <magento_root> is the path of your Magento installation.

Update: As @matinict said, above solution is not a permanent solution. So below is the correct approach.

First, you need to create a custom admin theme and then change the logo.

Steps are listed below:

  1. app/code/[VendorName]/[ModuleName]/registration.php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::MODULE,
    '[VendorName]_[ModuleName]',
    __DIR__
);
  1. app/code/[VendorName]/[ModuleName]/etc/module.xml
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Module/etc/module.xsd">
    <module name="[VendorName]_[ModuleName]" setup_version="1.0.0">
        <sequence>
            <module name="Magento_Theme"/>
        </sequence>
    </module>
</config>
  1. app/code/[VendorName]/[ModuleName]/etc/di.xml
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
    <type name="Magento\Theme\Model\View\Design">
        <arguments>
            <argument name="themes" xsi:type="array">
                <item name="adminhtml" xsi:type="string">[VendorName]/[themename]</item>
            </argument>
        </arguments>
    </type>
</config>
  1. app/design/adminhtml/[VendorName]/[themename]/registration.php
\Magento\Framework\Component\ComponentRegistrar::register(
    \Magento\Framework\Component\ComponentRegistrar::THEME,
    'adminhtml/[VendorName]/[themename]',
    __DIR__
);
  1. app/design/adminhtml/[VendorName]/[themename]/theme.xml
<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
    <title>Theme Title</title>
    <parent>Magento/backend</parent>
</theme>
  1. app/design/adminhtml/[VendorName]/[themename]/Magento_Backend/layout/admin_login.xml
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="admin-login" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <update handle="styles" />
    <body>
        <referenceBlock name="logo">
            <arguments>
                <argument name="logo_image_src" xsi:type="string">images/login-logo.svg</argument>
            </arguments>
        </referenceBlock>
    </body>
</page>
  1. Upload app/design/adminhtml/[VendorName]/[themename]/web/images/login-logo.svg

  2. app/design/adminhtml/[VendorName]/[themename]/Magento_Backend/layout/default.xml

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="header">
            <referenceBlock name="logo">
                <arguments>
                    <argument name="logo_img_width" xsi:type="number">300</argument> 
                    <argument name="logo_img_height" xsi:type="number">300</argument>
                    <argument name="show_part" xsi:type="string">logo</argument>
                    <argument name="edition" translate="true" xsi:type="string">Community Edition</argument>
                    <argument name="logo_image_src" xsi:type="string">images/menu-logo.svg</argument>
                </arguments>
            </referenceBlock>
        </referenceContainer>
    </body>
</page>
  1. Upload app/design/adminhtml/[VendorName]/[themename]/web/images/menu-logo.svg

  2. Magento CLI

php bin/magento setup:upgrade
php bin/magento setup:di:compile

Note: You can change the names of logo files in the configuration file if you want to use PNG files instead of SVG for the logo.

Note: Reference taken from Magento admin logo change!


Logo is coming up from magento2-base/setup/pub/images/magento-logo.svg .


in magento 2, changing logo in pub/static folder is not an appropriate option, to change Admin Section logo you need to create an admin theme :

Step 1 : create your theme folder: app/design/adminhtml/[Vendorname]/[Theme-name]/

Step 2 : create theme registration.php and theme.xml files within [Theme-name] folder.

content for registration.php

<?php
 \Magento\Framework\Component\ComponentRegistrar::register(
\Magento\Framework\Component\ComponentRegistrar::THEME,
'adminhtml/[Vendorname]/[Theme-name]',
__DIR__
);

content for theme.xml

<theme xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:Config/etc/theme.xsd">
<title>My Admin Theme</title>
<parent>Magento/backend</parent>
</theme>

Step 3 : Create folder Magento-Theme and layout: app/design/adminhtml/[Vendorname]/[Theme-name]/Magento_Theme/layout/

Step 4 : create default.xml with code below :

<?xml version="1.0"?>
<!--
/**
* Copyright © 2013-2017 Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="admin-1column" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<head>
    <title>Admin Title</title>
</head>
<body>        
    <referenceContainer name="header">
        <block class="Magento\Backend\Block\Page\Header" name="logo" before="-">
            <arguments>
                <argument name="show_part" xsi:type="string">logo</argument>
                <argument name="edition" translate="true" xsi:type="string">Community Edition</argument>
                <argument name="logo_image_src" xsi:type="string">images/my-logo.svg</argument>
                <argument name="logo_alt" xsi:type="string">My Admin  Panel</argument>
            </arguments>
        </block>            
    </referenceContainer>
</body>

Step 5 : upload your logo (my-logo.svg) in web/images folder:

upload path: app/design/adminhtml/[Vendorname]/[Theme-name]/web/images/

That's it.. Now upload your theme and run and clear cache "Flush Cache Storage"

Hope this will help !