Yoast’s Black Friday Fumble

It’s Thursday afternoon. I’m having a quiet beer with Rob (cofounder of Block Lab) and Michael (founder of Visser Labs). We’re chatting about our WordPress plugins.

Michael: Are you doing anything for Black Friday?

Rob: Yeah, we’re running a sale. 25% off. You?

Michael: Yeah, I’ve got a discount too. But it’s hard to cut through the noise. I’m not sure how to tell people about it.

Rob: I agree. We’re on a list-post or two. It’s hard to advertise.

Me: Maybe we should put a notice in the WordPress admin dashboard! 😏

We all laugh.

Rob: 😂 That’s a terrible idea!

Imagine our surprise when the next morning, that’s exactly what Yoast, and some others, did in their plugins.

This is how your Dashboard might have looked this Black Friday.

The Fallout

The reaction from their users, and the WordPress community in general, was swift (and pretty nasty!).

Are you kidding me @yoast? An ad on literally every page of the WordPress dashboard? pic.twitter.com/rJDcHyt33H — Colin Newcomer (@ColinNewcomer) November 28, 2019

Shitty practices from plugin authors like this Dashboard ad from @yoast, will ensure that I never spend money in your store. This sort of crap shouldn’t be rewarded! pic.twitter.com/rBmMHn69u4 — Anthony Hortin ︽✵︽ (@maddisondesigns) November 29, 2019

Many others took to WordPress.org to express their outrage, leaving Yoast SEO 75+ 1 star reviews over 2 days.

Yoast once was a fantastic plugin. It’s since devolved into a collection of decent tools heavily overwhelmed by unnecessary bells, whistles, and upsales. Shyzer Absolutely outrageous to have intentionally spammed millions of dashboards… Yoast took the opportunity to betray the trust of millions of WordPress admins and owners. The Old Man The fact that this decision took place and code was written to make this happen, speaks volumes for the management and leadership of this plugin. Unfortunately, they cannot be trusted, especially in a professional environment. 9Xpi Spam the dashboard ? OK => DELETE ALL MY YOAST INSTALL IMMEDIATELY… locomint85

In the end, Marieke van de Rakt (CEO at Yoast) set things right. She issued an apology, and Yoast released an update removing the banner ad.

That BlackFridayBanner was not the best idea. We’re truly sorry for the annoyance and difficulties it may have caused. We did not think this through properly. If you want, you can update to a new version of our plugin without that banner. #blackfriday #neveragain #apologies — Marieke van de Rakt (@MariekeRakt) November 28, 2019

The question has to be asked: Who thought this was a good idea? And who approved it? A business the size of Yoast would have likely had a process something like this:

A Marketer suggested the idea A Product Manager approved it A Business Analyst defined how it should work A Designer designed it (questionable in this case) A Developer implemented it In this case, it was actually developed twice QA reviewed it

That’s six different people who all just went along with an objectively awful idea. Was there any internal conflict or discussion? We’ll never know.

I don’t think there’s any long-term repercussions here for Yoast. They made a mistake, they fixed it, they promised not to do it again. But with such a violent reaction from their users, it’s worth diving into why this hit a nerve.

Is This Allowed?

The free version of Yoast is run on 15% of the top 1 million websites. Not 15% of WordPress – 15% of the web. If the success of this ad outweighs the negative reaction, is there anything stopping Yoast from doing this again?

From the WordPress.org plugin guidelines:

Advertising within the WordPress dashboard should be avoided, as it is generally ineffective. Users normally only visit settings pages when they’re trying to solve a problem. Making it harder to use a plugin does not generally encourage a good review, and we recommend limiting any ads placed therein. Detailed Plugin Guidelines

So… not recommended, but not disallowed. Yoast couldn’t be delisted from WordPress.org as a result of ads.

Yoast’s Black-Friday-Faux-Pas is an exercise in extremes. Their bright yellow and cyan full-width banner, animated like it’s 1999, was displayed on every – single – page. Freemium plugins including a small up-sell ad on their settings page don’t cause this kind of uproar.

Is there a place for ads in WordPress? Maybe there is. Certainly a sustainable plugin ecosystem is good for everyone, and the Freemium model seems to be an effective one.

Ads Done Well

Of course, the offensiveness of advertising prominence will always be subjective. Here’s a few plugins that I believe do a great job of letting their free users know about a premium option.

Sidebar Ads

Advanced Custom Fields – everybody’s favourite custom meta plugin takes a very understated approach. You can’t even really call this one an ad, it’s so subtle (maybe a little too subtle?).

WP Migrate DB has a Pro ad in the sidebar. It only shows when you’re using the migration tool. Importantly, it outlines precisely how Pro improves on the Free version.

WP Migrate DB uses a formula that keeps things simple and unobtrusive: Call to Action > Value Statement > Social Proof. Mix and match to taste.

… but let’s not overdo it.

Sub-Menu Ads

Even though the sub-menu item is bright orange, it’s only visible when you’re using Wordfence.

Some plugins add an item to the menu. In these cases, a sub-menu item showing the availability of Pro might be acceptable.

The advantage here is that visually there’s no “Ad” in the plugin (similarly to ACF above), but information about Pro is available for users who might be interested.

This Block Lab screen is completely dedicated to advertising Pro, but is only shown if the user intentionally wants to learn about the product.

Ads Done Poorly

WPForms uses a lot of screen real estate to tease me with features I can’t use.

Contextual Ads

Contextual ads sound like a good idea in theory, but in practice can be borderline annoying. This is where you show users the features they could be using, if only they upgrade to Pro!

I imagine that it is possible for this type of advertising to be done tastefully, but it’s hard to find an example that doesn’t leave me feeling aggravated.

Yoast is famous for this brand of advertising. Who wants to use a tool that’s littered with bright yellow Calls to Action?

Onboarding Ads

This is the worst. I haven’t even had a chance to try your product yet – at least let me see what it’s all about before hitting me with an upgrade prompt!







This is why I don’t use WooCommerce.

WooCommerce literally tries to have me install 7 additional plugins during the onboarding process! Some of them may be free, but all of them lead to paid services. I haven’t even seen WooCommerce yet.

This is extremely heavy-handed, and in my opinion, a textbook example of advertising gone wrong.

But even Woo is not quite as bad as WordFence, which, upon activation, creates a takeover model which requires an email address, and then promotes Pro! Again, before anyone has had a chance to use their plugin.

If you don’t have one, you can purchase one now! 🙄

Advertising Guidelines for the WordPress Admin

There’s clearly a right way and a wrong way to advertise in the WordPress admin. If you, like Yoast, can’t figure out what counts as acceptable, here’s a handy guide:

1. Don’t advertise after plugin activation

Even if you’ve chosen to avoid the full-screen modal for your onboarding (👍), let your users at least interact with your product before hitting them with a Pro prompt.

2. Only advertise on pages created by your plugin

This includes post meta boxes, the Dashboard, and the Plugins list page.

3. No animations

I mean, that really should go without saying.

4. No teasers

“More features available in Pro” is fine.

Feature X is only available in Pro. Upgrade Now!

Feature Y is only available in Pro. Upgrade Now!

Feature Z is only available in Pro. Upgrade Now!

… is not fine.

5. Say it once

Don’t include more than one ad per page.

6. Advertise the product, not the sale

Introducing ads for limited time events is tacky. It’s also code bloat and will last forever in your version control.