Remove dashboard widgets nobody reads
Disable Dashboard Widgets lets you turn off any widget on the WordPress dashboard, for every user, so it stops rendering entirely instead of being hidden one Screen Options click at a time.
- A toggle for every widget actually registered on your dashboard.
- Detects widgets added by plugins automatically, not just core ones.
- Removed for every user, not a personal Screen Options setting.
- Covers the Welcome Panel too, even though it isn't a normal widget.
Main area
Side area
What does Disable Dashboard Widgets do?
When the disable_dashboard_widgets module is active, TOWP_Disable_Dashboard_Widgets reads the dashboard's actual registered meta boxes on wp_dashboard_setup at priority 999, late enough to capture every widget WordPress core and every active plugin has added. That list, grouped by Main area and Side area, is what populates the settings screen; toggling a widget off calls remove_meta_box() for that specific box across every priority level, so it no longer renders for any user. The Welcome Panel, which isn't a meta box, gets handled separately through its own welcome_panel action.
Screen Options only hides a widget for one person, one time
The first screen anyone sees after logging in stays cluttered until every single person clears it themselves.
The dashboard fills with panels nobody reads
WordPress news, an activity feed, a quick-draft box, and one widget from nearly every active plugin all compete for space on the first screen anyone sees after logging in.
Hiding a widget is a personal, repeated task
WordPress's own Screen Options panel can hide a widget, but only for the user who clicks it, so every new team member starts back at the default, cluttered dashboard.
Remove it once, for everyone
The module turns hiding a dashboard widget from a personal habit into a site-wide decision made once.
A list built from the real dashboard
The available widgets come from the dashboard's own registered meta boxes, not a fixed list of guesses, so plugin-added widgets appear automatically.
Removed, not hidden per user
A disabled widget stops rendering for every account, instead of relying on each person's own Screen Options choice.
The Welcome Panel included
Since the Welcome Panel isn't a normal meta box, it gets its own dedicated removal path rather than being left out.
A cleanup list built from reality
Every capability below is present in the supplied PHP class and its settings registration.
Built from the live dashboard
The list of available widgets comes from $wp_meta_boxes['dashboard'], read at the point every core and plugin widget has already registered.
Main area and Side area
Widgets get grouped by the same layout areas WordPress itself uses for the dashboard, matching what's actually on screen.
remove_meta_box(), for every user
A disabled widget is removed from the dashboard's meta box registry, checked across every priority level, so it's gone for every account rather than one Screen Options preference.
Handled through its own hook
Because the Welcome Panel isn't a meta box, it's removed through the dedicated welcome_panel action instead of remove_meta_box().
A way to force the list to load
A dedicated AJAX action can trigger a full dashboard setup pass on demand, so the widget list populates immediately when the module is first enabled.
Saved on every dashboard load
The available-widgets list gets rebuilt every time the dashboard runs its setup, so it reflects newly installed or removed plugins automatically.
Where a cleaner dashboard helps most
The module supports every dashboard that's collected more widgets than it actually needs.
Trimming a cluttered first screen
Remove widgets that never get read, whether they came from WordPress core or a plugin, without asking every user to hide them individually.
Consistent onboarding
Give every new team member the same, already-tidied dashboard instead of the default clutter they'd otherwise have to clean up themselves.
Faster dashboards
Fewer widgets means fewer things being generated and rendered on the one screen everyone lands on after logging in.
A dashboard that stays tidy for everyone
The module combines an accurate discovery pass with permanent, site-wide removal.
One pass, direct removal
The verified implementation reuses data WordPress already assembled, rather than duplicating any of it.
One list build per dashboard load
The available-widgets list gets rebuilt once per dashboard visit, from data WordPress already assembled for the page itself.
No effect when nothing is disabled
If no widgets are toggled off, the module still records the list for settings but performs no removal at all.
Direct removal, not a display filter
Removing a widget happens once, directly on the meta box registry, rather than through a repeated visibility check on every render.
Sanitized IDs, a guarded refresh action
The code sanitizes every widget ID and protects the on-demand refresh action like any other AJAX call.
Administrator-only configuration
Only an administrator with access to TheOneWP settings can choose which dashboard widgets get disabled.
Widget IDs are sanitized
Every widget ID, both when building the list and when removing a widget, passes through sanitize_key() before use.
The refresh action is capability- and nonce-checked
The AJAX action that force-loads the widget list requires both the manage_options capability and a verified nonce.
A read-only discovery pass
Building the available-widgets list only reads the dashboard's existing meta boxes; it never adds, modifies, or triggers anything on its own.
Built around native WordPress dashboard APIs
The supplied code integrates through APIs present in WordPress core. No compatibility claim beyond the verified implementation is assumed.
wp_dashboard_setup, priority 999
Runs late enough that every core and plugin-added widget is already registered in $wp_meta_boxes before the list gets built.
A separate action, not a meta box
Removed through remove_action('welcome_panel', 'wp_welcome_panel') instead of the standard meta box removal path.
remove_meta_box()
Uses the same function WordPress core and other plugins use to remove their own dashboard widgets, checked across every context and priority.
TheOneWP versus common alternatives
Compare the verified Disable Dashboard Widgets implementation with WordPress's own per-user Screen Options.
| Capability | TheOneWP Disable Dashboard Widgets | Other common solutions |
|---|---|---|
| Discovering what's on the dashboard | A live list generated from the actual registered widgets | Usually a fixed list that misses plugin-added widgets |
| Removing a widget | Removed from the meta box registry for every user | WordPress's Screen Options hides it for one user only |
| The Welcome Panel | Handled explicitly through its own removal path | Often overlooked since it isn't a standard widget |
| Staying current | Rebuilt automatically as plugins change | A per-user setting has to be repeated by every new account |
| Administration | One list inside TheOneWP settings | Requires teaching every user to use Screen Options themselves |
Trim the dashboard in four steps
Start with the obviously unused core widgets, then work through what plugins have added.
Enable Disable Dashboard Widgets
Activate the module from the TheOneWP Backend settings tab.
Review the generated list
Check the Main area and Side area groups for widgets that don't serve this particular site.
Toggle off what isn't needed
Switch off entries one at a time, or several at once, based on what actually gets used.
Revisit after adding a new plugin
A newly installed plugin's dashboard widget appears automatically the next time the list refreshes.
Trim with real usage in mind
What's clutter on one site might be exactly what another team relies on daily.
Start with the obviously unused core widgets
WordPress Events and News and the Activity widget are common first candidates on sites that don't need either.
Check with new team members in mind
A tidied dashboard is most valuable for the people who'll see it for the first time, not just existing users.
Leave genuinely useful widgets alone
Site Health Status or Quick Draft might be exactly what a particular team relies on; disable based on actual use, not by default.
Recheck the list after major plugin changes
Removing or replacing a plugin can leave a stale toggle behind; the list rebuilds automatically, but it's worth a glance.
Avoid assumptions that cause confusion
The module's behaviour around the Welcome Panel and Screen Options is easy to misread at a glance.
Disabling a widget and forgetting why
A missing dashboard widget can look like a bug later if there's no note about why it was turned off.
Forgetting the Welcome Panel needs its own toggle
Since it isn't a normal meta box, it's listed and handled separately from the rest of the dashboard widgets.
Assuming Screen Options still controls it
Once a widget is disabled through this module, a user's own Screen Options choice for that widget no longer has any effect.
Disable Dashboard Widgets FAQ
These answers come directly from the verified class and its settings registration.
What does Disable Dashboard Widgets do?
It lets an administrator turn off individual dashboard widgets, WordPress's own or added by a plugin, so they stop rendering for every user.
Where does the list of available widgets come from?
From the dashboard's own registered meta boxes, read after every core and plugin widget has registered, so plugin-added widgets appear automatically.
Is a disabled widget hidden per user, like Screen Options?
No. It's removed from the dashboard's widget registry entirely, so it's gone for every account rather than just the one that hid it.
Does this cover the Welcome Panel too?
Yes. Since the Welcome Panel isn't a standard meta box, it gets handled through its own dedicated removal path.
What happens to the list if I install a new plugin?
The available-widgets list rebuilds on the next dashboard load, so a newly added widget appears the next time the settings screen loads.
Can I force the widget list to refresh immediately?
Yes. A dedicated action triggers a full dashboard setup pass on demand, populating the list right when the module is first enabled.
Does removing a widget change what a user can access elsewhere?
No. It only removes the dashboard widget itself; any underlying page or feature it linked to stays unaffected.
Can I tell which widgets are in the main area versus the side area?
Yes. The settings screen groups widgets by Main area and Side area, matching the actual dashboard layout.
Who can change which widgets are disabled?
Only an administrator with access to the TheOneWP settings screen.
Will a new user still see the widgets I've disabled?
No. Since removal isn't a per-user setting, a disabled widget stays off for every account, including new ones.
Stop asking every user to hide the same widgets.Remove them once, for good.
Use Disable Dashboard Widgets to turn off any widget, from WordPress core or a plugin, right from a list built from your own dashboard.

