Every six months or so, there’s a new uproar in the community about WordPress dashboard spam. Typically, some plugin crosses a line with an irritating upsell banner, and the dam just bursts. This time around, it was actually the opposite. Developer Stanislav Khromov released a sort of ad blocker for your WordPress dashboard, specifically meant to target those annoying upsells and notices that clutter up the backend area of WordPress.
Meanwhile, Justin Tadlock at WPTavern highlighted something even more insidious: upsells inside the block editor itself. Making these ads worse than normal, the example offers a fake, greyed-out feature that’s only functional if a user upgrades to Pro. To be fair, Yoast has been doing something similar for quite some time; not in the sidebar, but down in their meta box. If you try to add additional key phrases or preview your social sharing info, you’ll see a big orange button for Yoast Premium.
The truth is, I probably don’t want Yoast Premium and neither do my clients. I don’t need the Accessibility Toolbar “Pro” and I don’t plan to speed up my site with whatever new feature Jetpack is offering. If I want the Social Icons Widget by WPZOOM PRO, I’ll let you know. And why is One Click Accessibility telling me that I’ll love Elementor and should try it out? Why is one plugin including an ad for another plugin?!?
Here’s the thing — WordPress users like us have been riding the ‘free and open-source’ software wave for a long time. We really do need to get comfortable paying for plugins or accepting what we get for free. I completely understand that. Developers need to eat, and if the freemium business model bothers you that much then just pay for your plugins or write the functionality yourself. When you use Spotify for free, they jam ads in your face too. For now, we’re lucky plugin developers aren’t going full Google on us and freely harvesting the data from our sites.
On the other hand, my top concern is what’s good for the WordPress ecosystem long-term. This is a major optics problem that affects all of us as developers, freelancers, agency owners, and users of WordPress. My personal experience comes from the freelancer/agency perspective. Ultimately, I am responsible for what WordPress looks and feels like to my clients, from mom-and-pop business owners to marketing agencies and CMOs. When I hand them the keys to a website, I want it to look clean, professional, high-quality, and safe to use. I don’t want it to look like a bus stop bench or modern-day Times Square. I don’t want there to be a ton of notices and popups, email opt-ins and upsells, requests for reviews, or anonymous data tracking. That reflects poorly on WordPress as our choice of CMS and ultimately on us as agencies and plugin developers.
There has to be a middle ground here. Most of my end clients that log into their WordPress sites have no idea if they’re using a free or paid plugin, they don’t understand why you might want anonymous tracking data, they have no reason to be on your mailing list, and they had better not ‘try out Elementor’ on the live site I just built for them.
I firmly believe that the old admin_notices hook should really be off-limits from anything not directly related to the actions the user is currently taking, like modifying a post or updating a setting. Everything else could be tucked away in a notifications panel, waiting to be seen if the user is seeking it out. This feels like a pretty common UI at this point, with even WordPress.com offering it for their users. So why isn’t this in core?
I think the single best hope for this situation is a change to WordPress core, most likely from the WP Notify project. WP Notify is a feature plugin “which aims to create a new (better) way to manage and deliver notifications to the relevant audience.” A feature plugin means it’s being built separately as a plugin, with plans to evaluate it later to be included in WordPress. This means that WP Notify is in that same Catch-22 we find most feature plugins in these days: the project may never be formally ‘blessed’ for inclusion, so there aren’t many contributors. But with fewer contributors, it has less of a chance of making it all the way to core.
WP Notify builds off of an earlier proposal for a Notifications API, something that would bundle not just admin notices, but also system alerts like emails, and be extensible enough for you to connect your WordPress notifications to a Slack channel or push notifications system. While that project never took off, I’m optimistic that WP Notify could be coming around at the right time. While it does fall outside of the Gutenberg roadmap, I think something like it will be necessary, especially for Gutenberg Phase 3 – Collaboration. Being able to log in and see a notification that another user modified my post or that my comment was approved? That would be great. And if I have to mark a few upsell notices as “read”, at least they’re not taking up precious screen real estate. It’s a nice thought.
In a future article, I’m planning to dig deeper into the WP Notify project. Heck, we’ve pretty much built that feature for clients half a dozen times by now. I’m going to try to actually contribute some code to it and then document the process. Stay tuned.