WordPress dashboard cleanup

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.
Dashboard CleanupDisable Dashboard Widgets

Main area

Welcome Panel
Site Health Status
At a Glance
Activity

Side area

WordPress Events and News
3 widgets removedGone for every user, not just yours.
Active
Quick answer

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.

The "hide it and it comes back" problem

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.

A dedicated WordPress solution

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.

Verified feature set

A cleanup list built from reality

Every capability below is present in the supplied PHP class and its settings registration.

Grouping

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.

Main areaSide area
Removal method

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.

remove_meta_boxEvery priority checked
Welcome Panel

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().

welcome_panel actionNot a meta box
On-demand refresh

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.

wp_dashboard_setupAJAX refresh
Always current

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.

Auto-refreshedNo manual rescan
Practical use cases

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.

Operational benefits

A dashboard that stays tidy for everyone

The module combines an accurate discovery pass with permanent, site-wide removal.

Consistent for the whole teamNobody has to rediscover Screen Options and repeat the same cleanup on their own account.
Actually gone, not just hidden for one personSince removal happens before the widget renders, there's no per-user setting to reset or forget.
No guessing what's thereThe settings list mirrors the real dashboard, so nothing needs identifying by digging through a plugin's source code.
Covers the one exception, tooThe Welcome Panel gets the same treatment as every other widget, even though WordPress registers it differently under the hood.
Performance behaviour

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.

Security implementation

Sanitized IDs, a guarded refresh action

The code sanitizes every widget ID and protects the on-demand refresh action like any other AJAX call.

01

Administrator-only configuration

Only an administrator with access to TheOneWP settings can choose which dashboard widgets get disabled.

02

Widget IDs are sanitized

Every widget ID, both when building the list and when removing a widget, passes through sanitize_key() before use.

03

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.

04

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.

Verified compatibility

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.

Discovery hook

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.

wp_dashboard_setupPriority 999
Welcome Panel

A separate action, not a meta box

Removed through remove_action('welcome_panel', 'wp_welcome_panel') instead of the standard meta box removal path.

welcome_panelremove_action
Removal API

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.

remove_meta_boxNative WordPress API
Solution comparison

TheOneWP versus common alternatives

Compare the verified Disable Dashboard Widgets implementation with WordPress's own per-user Screen Options.

CapabilityTheOneWP Disable Dashboard WidgetsOther common solutions
Discovering what's on the dashboard A live list generated from the actual registered widgetsUsually a fixed list that misses plugin-added widgets
Removing a widget Removed from the meta box registry for every userWordPress's Screen Options hides it for one user only
The Welcome Panel Handled explicitly through its own removal pathOften overlooked since it isn't a standard widget
Staying current Rebuilt automatically as plugins changeA per-user setting has to be repeated by every new account
Administration One list inside TheOneWP settingsRequires teaching every user to use Screen Options themselves
Recommended workflow

Trim the dashboard in four steps

Start with the obviously unused core widgets, then work through what plugins have added.

01

Enable Disable Dashboard Widgets

Activate the module from the TheOneWP Backend settings tab.

02

Review the generated list

Check the Main area and Side area groups for widgets that don't serve this particular site.

03

Toggle off what isn't needed

Switch off entries one at a time, or several at once, based on what actually gets used.

04

Revisit after adding a new plugin

A newly installed plugin's dashboard widget appears automatically the next time the list refreshes.

Best practices

Trim with real usage in mind

What's clutter on one site might be exactly what another team relies on daily.

01

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.

02

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.

03

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.

04

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.

Common mistakes

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.

Frequently asked questions

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.