Short answer: to white label the WordPress admin, you rebrand four areas: the login page, the admin bar, the dashboard footer, and the default dashboard widgets. You can do it for free with a few functions.php snippets, or use a white label plugin that turns each of those into a toggle so it scales across client sites.
Now the longer version, because the details are where people get stuck.
Every time I hand a site to a client, the same thing bothers me. They log in and see WordPress branding everywhere: the W logo in the corner, "Howdy" at the top, "Thank you for creating with WordPress" in the footer, and a dashboard stuffed with news widgets they will never read. It does not feel like their site, and it does not look like something an agency built.
So I settled on a repeatable process. Some sites get a few lines of PHP. Longer client lists get a plugin. Here is both, so you can pick what fits.
What white labeling the WordPress admin actually covers
A proper white label setup touches four surfaces:
Login page. Your logo, your link, your colors instead of the WordPress mark.
Admin bar. The top toolbar and its WordPress logo.
Footer. The "Thank you for creating with WordPress" line and the version number.
Dashboard. The welcome panel, WordPress news feed, and clutter widgets.
Get those four right and you have covered about 90 percent of the job. If you want the full agency playbook behind each one, I wrote a complete guide to white label WordPress that goes deeper.
Method 1: white label WordPress with code
Add these to your theme's functions.php, or better, a small must-use plugin so switching themes does not wipe them.
Rebrand the login page
<?php
add_action( 'login_enqueue_scripts', function () {
?>
<style>
#login h1 a {
background-image: url('<?php echo esc_url( get_stylesheet_directory_uri() . '/assets/agency-logo.png' ); ?>');
background-size: contain;
width: 320px;
height: 80px;
}
</style>
<?php
} );
// Point the logo link at the site instead of wordpress.org, and fix the tooltip.
add_filter( 'login_headerurl', fn() => home_url() );
add_filter( 'login_headertext', fn() => get_bloginfo( 'name' ) );
Remove the WordPress logo from the admin bar
php
add_action( 'admin_bar_menu', function ( $bar ) {
$bar->remove_node( 'wp-logo' );
}, 999 );
I broke down the admin bar options, including per-role control, in this post on removing the WordPress logo from the admin bar.
Replace the footer text and hide the version
<?php
add_filter( 'admin_footer_text', fn() => 'Built and maintained by Your Agency' );
add_filter( 'update_footer', '__return_empty_string', 11 );
Clean up the dashboard
php
add_action( 'wp_dashboard_setup', function () {
remove_meta_box( 'dashboard_primary', 'dashboard', 'side' ); // WordPress news
remove_meta_box( 'dashboard_quick_press', 'dashboard', 'side' );
} );
// Remove the welcome panel too.
remove_action( 'welcome_panel', 'wp_welcome_panel' );
That gives you a fully white labeled admin with no plugins. It is fast and you own every line.
The catch shows up at scale. Every client site needs this code maintained, your logo path has to exist on each install, and the moment a client wants per-role branding or a styled login template, the snippets start to sprawl. That is when a plugin earns its place.
Method 2: white label WordPress with a plugin (no code)
When I run more than a couple of client sites, I use the White Label module in WP Adminify instead of maintaining snippets everywhere. Everything above becomes a setting: upload the login logo, choose a login template, remove the admin bar logo, rewrite the footer, hide the version, and switch off dashboard widgets, all per user role.
The real time saver is per-role control plus the ready login templates, which are tedious to hand code and keep consistent across a dozen installs. The feature breakdown lives on the WP Adminify White Label module page.
I build WP Adminify, so I am biased. If you want to compare before you commit, I put together an honest roundup of the best white label WordPress plugins that covers the code-only route, WP Adminify, and the main alternatives.
Which method should you choose?
One or two sites and comfortable in PHP: use the snippets. No dependencies, full control.
Multiple client sites, or you need per-role branding and login templates: a plugin pays for itself in saved maintenance time within the first month.
Either path lands in the same place. Your client logs in and sees your brand instead of WordPress.
Frequently Asked Questions
Can you white label WordPress without a plugin?
- Yes. A few functions.php filters cover the login logo, admin bar logo, footer text, and dashboard widgets, as shown above. A plugin becomes worthwhile once you manage several sites or need per-role rules.
Is white labeling the WordPress admin allowed?
- Yes. You are restyling and rebranding the admin interface for your own installs. You are not redistributing WordPress under a new name, so it stays within the GPL.
What is the best way to white label multiple client sites?
- Use a plugin with per-role settings so the branding applies consistently and survives theme changes. Hand-maintained snippets across many sites drift out of sync fast.
Does white labeling affect WordPress updates or security?
- No. These changes touch the admin UI only. Core updates, plugins, and security behave exactly as before.
Conclusion
If you white label your client sites a different way, share it in the comments. I am always looking for a cleaner approach.
Top comments (0)