TLDR: Admin notices are here to stay.
Yesterday I posted a simple tweet of a screenshot of the dashboard of my WordPress admin interface. Before we get started, I’m not really angry about it. I’m sitting here chillin’ with my best friend blasting the Spanish music she hates. I’m having a ball. So let’s do this.
Back to the tweet:
I was immediately warned by Twitter friend John Locke that my tweet might be met with silly arguments that it’s perfectly okay to have dozens of notices in the WordPress admin.
I’m looking forward to these ridiculous arguments because they have obviously never met my argumentative nature, but this is not the post you’re looking for if you wish me to dispel all of the propaganda regarding admin notices. I’m just here to tell it like it is.
Within a few hours, SliceWP’s Mihai Iova weighed in, and rightfully so.
I like SliceWP. So I had no reason to disparage them. I didn’t notice their admin notice until it was pointed out to me. Which kinda made my point. It was actually a legit warning in a sea of useless ones.
So let’s dive in…
Why Admin Notices Exist
Admin notices are around for when something happens. A post is deleted. A crappy comment is marked as spam. A plugin was updated. An error occurred. Stuff like that. It’s there to alert us that something has happened.
That’s pretty much it. Next heading.
Who is to Blame for Spammy Admin Notices?
TLDR: we all are.
WP Tavern has an article begging the question… Are plugin authors to blame for spammy admin notices? Short answer? Yes.
Now are theme authors on the hook (pun very much intended) too? Yep.
What about third-party plugin/theme authors? Yep and so much yep.
How about hosts? Yes there as well.
The admin notification dilemma is a grave we dug ourselves, and users for years have put up with it. Who is to blame for spammy admin notices? All of us.
What can be done about Spammy Admin Notices?
TLDR: nothing really.
WP Tavern wrote another enticing article… Is WP Notify the silver bullet to solve the admin notice dilemma? Short answer? No.
Let’s use WordPress “notifications” as an example and let’s ask some rhetorical questions assuming there are no admin notices:
- How many WordPress plugins need updating?
- How many comments are pending?
- Does one of your third-party plugins/themes need an update?
If you are to just look at the admin toolbar, the answer to the first two questions is: you have no idea. The updates are grouped together. And they do not factor in translations. So that number alone is just an alert that, “Hey, you have some stuff to update. Click me.”
Regarding comments… raise your hands if you have logged into a client’s site and saw a ton of pending comments. As a dev or support person, it is not your job to be the client’s community manager. So you look at the number and sigh.
And third-party plugins/themes? Since there’s not really a standard on how to integrate with WP’s update mechanism, third-parties do their best. Hopefully, their update shows on the updates screen. Hopefully, they also show up on the plugin or theme page. It’s really anybody’s guess what the third-party might do with regards to updates.
So back to the original question. Will WP Notify solve the admin notice dilemma? No. Even Facebook and Twitter still have not gotten notifications right. Why would WordPress be any different? As long as there’s a hook, there’s a way. And even if there’s no hook, well, devs will still find a way.
Admin notices are a mile-long train barreling at full speed towards some unknown target. You can’t stop the train all at once. And even if done gradually, there will always be one or two “bad” actors who jump off and don’t care.
The sad fact is: admin notices, legit, spammy, whatever non-objective term you’d like to use, are here to stay. Welcome to WordPress.
Can’t we take away “the hook?”
Can we take away the mechanism which allows plugin/theme authors to hook into the admin notice system? Well, assuming WP is willing to break backward’s compatibility, sure. But, and I’m going to hell for saying this again, if there’s a hook there’s a way.
Output buffering, JS injection and DOM manipulation, or simply using a different hook to put the notice in a different spot are all work-arounds if admin notices are all of the sudden not allowed.
But there are “guidelines”
Yep. And even certain actors on .org get away with displaying a notice on every screen. Should notices only go on the plugin screen? Sure, in an ideal world. But what about the theme screen? There’s not really one good place to put a notice there. So what does a theme author do? They use the customizer.
You can put all of the guidelines you like in place. This will not stop third-party plugins/themes. So without them on board, having a guideline is useless.
Just Dismiss Them Then
You have to be kidding me, right? Let’s take the average support person. You’re logging into 15-20 WordPress sites a day trying to troubleshoot an issue. You really think we’re going to dismiss or perform action on every notice? Hell no. It’s not that we’re lazy. We just know how fruitless it is to go through the dismissal process.
What does it take behind the scenes to hide a notice?
- Some notice dismissals are cookie-based. Yay. So if you log into the site with another browser or computer, you still see the notice.
- Some notice dismissals are option-based. Cool. This we can dismiss. Hopefully we’ll never see them again. But I doubt it.
- Some notices dismissals are user meta based. Yay! But what about the other users?
- Some notices dismissals are time-based. Woot. But now there’s a transient or cron process that will magically show them again later. Fan-fucking-tastic.
- Some notices will not go away until a certain action is taken: cache clearing, updating an asset, database update, license renewals… blah, I could go on and on.
I’m sure there are other scenarios. The point I’m trying to make is that dismissals are unreliable.
Then Stop Using Said Plugin/Theme
This is another stupid argument. Plugins/themes on .org are free. But to sustain this “freeness”, that author needs to make money. The days where someone can release something for free on .org as a hobby and sustain themselves are long gone. People need money to survive. And a stupid star rating doesn’t pay the bills.
Upsells are and have been inevitable since even before WordPress’s inception. Don’t try telling me not to use an asset. Notices are the cost of doing business.
Okay, then stop bitching and ignore the notices…
Exactly. That’s exactly what I do.
Hopefully you were around in the “banner ad” days of the Internet. In a way, it still exists. But let’s be clear what a lot of admin notices are: banner ads.
There’s this lovely term called banner blindness. According to the article I just linked to, in 2013, the click-through-rate of banner ads was one percent. So let’s make the leap that banner blindness has made its way into WordPress core. If one “notice” has a 1% click-through rate, add several more notices and watch that click-through-rate plummet. Every notice is now competing with each other. And users like me don’t give a shit. I log in, scroll, and get to what I was trying to accomplish.
But there are legit warnings…
Yep, and guess what? I don’t see them. Notices have gotten so spammy that our subconscious is trained to block them. If it looks like an ad, we just mentally skip it.
So that one legit warning is lost in a sea of uselessness. This has now turned from a spam issue into a security one.
Take away ratings then…
Sure, there are some plugins/themes that beg for ratings. Perhaps the problem isn’t the ratings? Perhaps it’s the fact that WordPress Core makes it insanely hard for a user to leave a rating on a plugin or theme. Don’t be too hard on WordPress for this though. Even the iOS App Store has this problem, and users already have an App Store account.
Taking away ratings will not solve this problem.
Fine then, what’s the solution?
There isn’t one.
I love to be proven wrong, and I sincerely hope someone reads this and builds an “ad blocker” type plugin that blocks all 50,000+ plugins, themes, and third-parties from leaving unwanted admin notices. Ah, there’s the rub. The third-parties. Let’s not forget about them. They cost money, their source isn’t always public, and you can code a solution one day, and they can turn around and undo your solution the next. It’ll be a game of whack-a-mole, and guess what… they have money and you don’t.
Admin notices are here to stay. And everyone is to blame. Cheers.