How to Remove WordPress Admin Notices Without Breaking Anything
Plugin upsells, review requests and three different renewal banners. Your dashboard should not look like a billboard, but silencing it blindly hides the warnings that matter.
On this page
To remove WordPress admin notices without losing the ones that matter, do not delete them. Capture them. Every notice, whether a critical update failure or a plugin’s Black Friday banner, goes through the same hook, so anything that blanket-hides them hides both. The working pattern is a notice inbox: notices are collected off the screen, you read them when you choose, and you mute or snooze the ones that are noise. Here is why the quick fixes fail and how the inbox approach works.
Why your dashboard fills up
WordPress gives plugins one place to speak to you: the admin notices area at the top of every screen. Core uses it for real warnings, such as a failed update or a missing PHP extension. Plugins use it for whatever they like: licence renewals, review requests, upsells, “connect your account” prompts and seasonal discounts.
The directory guidelines ask plugin authors to keep nags dismissible and limited, but enforcement is light, and many premium plugins are not in the directory at all. With fifteen plugins installed, a stack of five or six notices on every page is normal.
The quick fixes and why they backfire
CSS that hides .notice. One line in a custom CSS plugin and the dashboard is clean. It is also blind. Update failures, permission problems and security warnings use the same markup. You find out something went wrong weeks later.
remove_all_actions(‘admin_notices’). A snippet in functions.php that strips the hook. Same problem, plus it can break plugins that rely on the hook running for their own settings pages.
Dismissing each one. This works when the plugin author stored your dismissal. Many do not, or they reset it with every update so you see the banner again. You are clicking the same X every month.
Deleting the plugin. Sometimes the right answer. Often not, because the plugin is doing a job and only its marketing is the problem.
The safe pattern: capture into an inbox
Instead of hiding notices, intercept them before they render and store them. Then show a small count somewhere quiet and let the admin open the inbox when they want. That gives you:
- Nothing lost. A critical core warning still exists, it is just in the inbox instead of across the top of every screen.
- Mute per notice. The review request from one plugin is muted forever. The licence warning from another stays visible.
- Snooze. A notice you will deal with next week can be hidden for a day or seven days and comes back on its own.
- Source and classification. See which plugin produced it and whether it looks like an error, a warning or marketing.
DevDome Admin Cleaner works this way. Captured notices land in a Notice Inbox with source, classification and mute status; you hide them for yourself or for all administrators, or snooze for one or seven days. There is also an Auto-hide option for notices added after page load, which is how some plugins sneak banners past simple filters. No account is needed. We make it, so take the recommendation with that in mind; the inbox pattern is the point.
Hide for yourself, not for everyone, by default
A detail that matters when you are not the only administrator. If you hide a notice for all admins, your colleague or client never sees the licence warning either. The safer default is per-user hiding, with all-administrators as a deliberate choice for notices you have checked. Editors, authors and shop managers are unaffected either way; they only ever saw the notices their role allowed.
Do the rest of the cleanup while you are there
Notices are the loudest clutter, not the only clutter. The same ten minutes can also remove:
- Dashboard widgets you never read: WordPress News, Quick Draft, the plugin-added “get started” boxes.
- Toolbar items from plugins, SEO scores and cache buttons you do not use.
- Footer text and version lines.
- Notice rows inside the plugins list, which are the same nags in a different place.
If you hand sites to clients, a Client Mode that hides selected menu items for chosen roles without changing their permissions is the final step. They see a simpler admin; they can still do everything their role allows.
What a captured notice should tell you
The inbox is only useful if each entry carries enough to decide without reopening the plugin. Four fields do it: the source, meaning which plugin or core printed it; a classification, error, warning or marketing, read from the notice’s own markup and words; the first sentence or so of the text, enough to recognise it; and its status, new, muted or snoozed until a date. With those, a glance at the list separates “licence expires in three days” from “rate us five stars” without reading either in full. A count badge somewhere quiet, rather than a banner, is the right amount of prompting.
Snooze versus mute
The two actions solve different problems and a good manager offers both. Mute is for notices that will never need action: review requests, upsells, announcements of a plugin’s sibling products. Muted means gone for good, even if the plugin re-creates the notice with a new identifier after an update. Snooze is for notices that will need action but not today: a licence renewal due next month, a recommended setting you want to read about on Friday. Snoozed notices come back on their own, which is the point; a mute used where a snooze was needed is how a real renewal gets missed. One day and seven days cover almost every case.
A monthly habit
Open the inbox once a month. Most of it will be marketing you already muted. The useful part is the notice that keeps coming back: a plugin that cannot connect, a licence that expired, a PHP version warning. Those are small jobs that become big ones if they sit for a year.
Clean dashboards are not about aesthetics. They are about seeing the one warning that matters on a page that is not shouting about nine things that do not.
Related reading: How to Clean Up the WordPress Media Library Without Breaking Pages.
Disclosure: DevDome publishes this blog and makes the products it mentions. We describe what they do rather than promise results.
Key takeaways
- Admin notices are a single WordPress hook that plugins use for everything from critical errors to discount banners, so there is no built-in way to keep one and drop the other.
- Hiding notices with CSS or a blanket remove_all_actions call also hides real warnings like failed updates and licence problems.
- The safe pattern is capture, not delete: notices go to an inbox where you can read, mute or snooze them.
- Hide for yourself or for all administrators separately, so a client or colleague is not left blind.
- Review the inbox once a month. A notice that keeps coming back is usually something worth fixing.
Sources
- WordPress Developer Resources: admin_notices hook : the hook every notice goes through and the recommended markup
- WordPress.org plugin guidelines : guideline 11 on admin nags and dismissible notices
- WordPress Developer Resources: wp_admin_notice() : the core function for printing notices since WordPress 6.4
Links last checked October 17, 2026.
Frequently asked questions
Can I turn off admin notices in WordPress settings?
No. WordPress has no setting for it. Notices are printed by any plugin or theme that hooks admin_notices, and core uses the same hook for its own warnings. You need a plugin or custom code to manage them.
Is it safe to add a CSS rule that hides .notice?
It works and it is risky. The same class is used for update failures, permission errors and security warnings. You will not see those either. Capture and review is the safer pattern.
Why do some notices come back after I dismiss them?
The dismiss button only works if the plugin author stored your choice. Many do not, or reset it on every update. A notice manager that remembers what you muted fixes that regardless of the plugin.
Will hiding notices affect other users?
Only if you choose to. A good notice manager hides for you alone by default and offers an all-administrators option. Editors and authors keep seeing whatever their role normally sees.