DEV Community

Cover image for The WordPress welcome panel doesn't go away when you dismiss it - here's how to actually remove it (site-wide)
Lucas Fenwick
Lucas Fenwick

Posted on

The WordPress welcome panel doesn't go away when you dismiss it - here's how to actually remove it (site-wide)

Every fresh WordPress dashboard opens with the same thing on top: a big "Welcome to WordPress! Learn more about the 7.0 version" panel, spanning the full width, above your posts and orders. There's a Dismiss link, you click it, it disappears. Job done — except it isn't.

The Dismiss action writes a show_welcome_panel flag to your user meta. It's per-account. So on a multi-user site, or a build you're handing to a client, every other user still opens to the welcome panel. And the built-in Screen Options "Welcome" checkbox has the same limitation — it's your preference, not the site's.

The developer fix is to unhook it:

add_action('load-index.php', function () {
    remove_action('welcome_panel', 'wp_welcome_panel');
});
Enter fullscreen mode Exit fullscreen mode

This removes the welcome panel for everyone, which is what you actually want. But it's a snippet you drop into a mu-plugin and re-add on every install — and it only handles the welcome panel. The other default widgets each need their own line:

add_action('wp_dashboard_setup', function () {
    remove_meta_box('dashboard_primary', 'dashboard', 'side');     // Events & News
    remove_meta_box('dashboard_quick_press', 'dashboard', 'side'); // Quick Draft
    remove_meta_box('dashboard_right_now', 'dashboard', 'normal'); // At a Glance
    remove_meta_box('dashboard_activity', 'dashboard', 'normal');  // Activity
});
Enter fullscreen mode Exit fullscreen mode

I tested the settings-panel version with WP Adminify Pro instead. Short demo below (20s).

What the welcome panel actually costs on a real site:

  • Every user account opens to WordPress's onboarding banner, not the site's work
  • Clients see a stock "Welcome to WordPress" message on the dashboard you built them
  • Dismiss is per-user, so you can't fix it once for everyone from the UI

What changed after enabling Remove Unwanted Dashboard Widgets in Adminify Pro:

  • One toggle under Productivity, then uncheck Welcome — gone site-wide for every user
  • Same panel lists the other defaults (Events & News, Quick Draft, At a Glance, Activity) — uncheck what you don't use
  • Survives WordPress updates, no snippet to maintain across sites
  • Dashboard opens straight to Site Health / WooCommerce Setup / At a Glance

Short demo

Step-by-step doc: https://wpadminify.com/docs/adminify/productivity/remove-unwanted-dashboard-widgets

How do you handle the welcome panel + default widgets on client sites — a mu-plugin, remove_action snippets, or an admin plugin?

Top comments (0)