Jetpack Is Promoting Paid Upgrades on Plugin Search Screen, WordPress Plugin Team Says it “May be a Violation” of Directory Guidelines

Yesterday the discussion surrounding Jetpack’s implementation of feature suggestions in the plugin search screen became heated after developers pointed out that Automattic is also using these suggestions to promote paid upgrades. You can test this by searching for “backups” where you find that Jetpack’s commercial offering takes the place of the first result, pushing all other results further down one slot.

The feature suggestions were added in versions 7.1 to inform users of an existing feature in Jetpack when they search for something similar. The Jetpack team said they developed it to solve a discovery problem, where users are quite often not familiar with all of Jetpack’s 45 modules and end up installing plugins to perform functionality that Jetpack already includes. A PR in the Jetpack repository has been merged to only show feature suggestions when the user’s plan supports it, so it looks like these promotions for commercial features will be removed in a future release of the plugin.

It’s not clear whether Automattic intentionally rolled out the feature suggestions in its current form (with paid upgrades included) to test the waters and gauge the community’s reaction, or if it is simply a mistake. The PR was marked as an enhancement, not a bug.

According to Plugin Team member Samuel “Otto” Wood, feature suggestions with paid upgrades included is “likely a violation” of the plugin directory’s guidelines.

“Promoting other plugins or premium upgrades in the same space would likely not be allowed, because it would be misleading or an incorrect place to put ‘advertising,’ Wood said. “Guidelines already say not to do that.”

I contacted the Plugin Team today and it seems the topic of feature suggestions on the plugin screen are still a matter of ongoing debate. The team would not officially confirm whether or not Jetpack is currently in violation.

“I can’t confirm that at this time,” Mika Epstein said. “It might be a violation, but it also may not be. Much of that comes down to intent.

“A case can be made that they’re promoting paid services for existing features, and is that different from an image-optimizer plugin promoting it’s own service which you’re already using? It’s not like they’re promoting separate plugins, so it’s in a very odd grey area for services.”

Epstein said the team is “still arguing the semantics internally about that one.”

Many people have asked why Jetpack has not been removed from the plugin directory for advertising its commercial offerings on the plugin screen. The Plugin Team’s official response is that if Jetpack is in violation, they reserve the right to make an exception and opt not to close it. Epstein, on behalf of the team, offered the following statement:

It falls under our 18th guideline:

We reserve the right to NOT close a plugin and grant exceptions.

Closing plugins is ALWAYS a tricky thing. We regularly warn, and do not close, larger plugins as closing them would have an adverse impact on the entire WordPress community. Closing plugins with 500,000 users can be more harmful than helpful, even when there are security problems. The more users a plugin gets, the more difficult it is to weigh the risks of closing versus not closing.

Maintaining the trust in larger plugins is as important as doing so with the directory as a whole. With so many outlets wanting to spin up FUD and blast outrage at everyone involved as their first reaction, we try to stem the tide a little and not act like the sky is falling all the time.

Jetpack has more than 5 million active installs. If it is found to be in violation of the guidelines, it is not likely to be removed due to the impact it would have on millions of WordPress users, not to mention the hosts who have it pre-installed on WordPress hosting plans.

The discussion regarding how WordPress can improve the implementation of feature suggestions on the plugin screen for all plugins is happening in a ticket on trac opened by Joost de Valk. This ticket does not debate whether or not feature suggestions are a good idea in general but rather focuses on how results can better communicate that a feature is already active or available. de Valk shared a screenshot of what the screen currently looks like when a user searches for a plugin for which they already have a match installed:

“The disabled ‘Active’ button there is not very useful, as it doesn’t provide any context as to why that button is disabled,” de Valk said. “I’d like to propose a change: let’s turn this into two separate groups of results, one that says ‘these plugins you already have installed might be able to help’ and then a second group below that with other plugins.”

Tim Hengeveld posted a mockup of what an implementation of that might look like:

The topic of feature suggestions on this screen is still highly controversial, despite the Plugin Team confirming that it is not breaking the guidelines (as long as plugins don’t promote paid upgrades). Plugin authors have worked for years towards better rankings on this screen by providing quality support and updates that translate into better ratings and more installs. Any mega plugin that offers multiple modules packed into one can easily usurp these rankings by suggesting its own features and having them automatically appear in that top slot. These features could even be broken down into multiple micro-modules so that there is always something to suggest.

Many in the WordPress development community are worried that plugin authors will move towards distributing their work as large suites of modules in order to take advantage of promoting their own features in the plugin search screen. This seems even more likely with block developers releasing massive collections of Gutenberg blocks. is at a crossroads here that may open the floodgates to plugin authors looking to leverage this screen to their own advantage. Jetpack’s move to suggest its own features on this screen, instead of opting for an admin notice or using its own dashboard, is going to have a major ripple effect throughout the plugin ecosystem that has the potential to change how plugins are packaged, distributed, and marketed.


21 responses to “Jetpack Is Promoting Paid Upgrades on Plugin Search Screen, WordPress Plugin Team Says it “May be a Violation” of Directory Guidelines”

  1. We are actively working on a new release of Jetpack which will remove the upgrade prompts and help make it more clear that these suggestions are from Jetpack and not the directory. It should be out today or tomorrow.

    As you reported above we have PR’s moving now and should see a release shortly. Our primary goal here is to help users and to prevent confusion, which is why I am excited to see Joost’s and other recommendations on how we can better communicate feature availability to users.

    We will gladly update Jetpack to accommodate or use a better solution when and if that becomes available. I think we have a lot to share on the matter as well. There are a great deal of users across the web that experience WordPress through curated installations, or are unfamiliar with the details of how plugins work. All too often users end up installing several plugins to solve a single problem because they are unfamiliar with what to do next, where settings live, what features are packaged in a plugin, etc… These feature hints help to solve this for them, and if it’s a catalyst for core solution then all the better.

    • I’m interested in reading a post that shares data or does a deep-dive into why this solution is necessary to solve the problem because I think Jetpack is the first plugin to manipulate the add new plugin screen in this way. At least that I know of.

      • @Jeff This line says a lot…

        “There are a great deal of users across the web that experience WordPress through curated installations, or are unfamiliar with the details of how plugins work.”

        Jetpack is being preinstalled on a bunch of major web hosts. Those are most likely the curated installations he’s referring to.

        Because Jetpack is being preinstalled most of these “curated installation” users have no clue what Jetpack is or what it can do.

        There are better ways to educate users than using the add new plugins page for marketing purposes.

    • This is not a user problem, it’s a marketing problem.

      By “curated” you must mean hosts that have pre-installed Jetpack so you haven’t actually had an opportunity to market Jetpack to those users because they already had it without knowing it so they obviously don’t fully understand what Jetpack can do.

      The goal with this is clearly to market Jetpack’s features and attempt to deter users from installing competing plugins.

      It’s gross.

      If this is the playing field WordPress will be played on going forward then other plugin developers will have no choice but to follow suit. Even if we don’t like it.

      • Agree!

        There are many ways to educate users. Jetpack already has admin notification, dashboard widgets, a dedicated admin menu with an admin page. That’s enough for it to show helpful info to users.

        What if other plugins do the same?

        And what if other plugins do not only for the plugin search result page, but other admin pages? Note that the way Jetpack does is very dodgy – via JavaScript!

        FYI: I remember a rule for all themes on .org that they can only add one button in the Customizer with the “Pro section” from Justin Tadlock. No JS-hijacking is allowed, no other ads/promotions/links are allowed! Why can Jetpack?

    • Our primary goal here is to help users and to prevent confusion

      Was the secondary goal to increase revenue by injecting disguised ads for commercial upgrades into search results to gain an advantage over potential competitors?

    • Jesse, all the responses I’m seeing from Automattic/JetPack have followed the same pattern for a month – – and aren’t taking on board what users and developers are saying (and what’s focussed upon in the article, above). This starts an arms race, and the users will be the victims.

      If Jetpack takes finds a loophole in the rules (and let’s take it that it is a loophole, rather than a direct violation) to do this, then it’s declaring open season for developers to plaster the dashboard with many more “helpful indications of features you possibly didn’t know about”. Those have always existed. But Jetpack, by doing this so prominently and by pushing other search results out of the view port, is failing to remember that “great power brings great responsibility”. Just because you *can*, doesn’t mean you *should*.

  2. The “intent” is very clear: squeeze everyone out and make Jetpack the Swiss-knife of WP.

    Growth hacking at its best.

    If I (or anyone else) were to try and pull off something like this, Otto’s hammer would be used instantly, without debate of “semantics”.

    Simply outrageous.

  3. I’m glad there was at least some pause. However well-intentioned, the dot org team should realize that it is not a good move. Let me illustrate:

    I have JetPack and iThemes Security installed. Both have security features. Perfectly normal. Who gets the #1 spot when I search for “security”?

    I would suggest that the friendliest thing the JetPack team could do is to totally disable the promotion injection until the dot org team adds a guideline for it. Otherwise you’ve forced the dot org team into reaction mode.

  4. “I can’t confirm that at this time,” Mika Epstein said. “It might be a violation, but it also may not be. Much of that comes down to intent.”

    If the plugin in question was named WP Acme Plugin by Regular Joe, I suspect it wouldn’t have sparked all this “doubting”. It would have been banned from the repository on the spot. Some plugins are more equal than others.

    • Mika has zero power. Absolutely all decision making is up to Samuel Wood, who is Automattic’s paid man on the inside making sure their products “never” (always) break the policies…

      Literally the “Docs” team collectively decided to convert the Codex to a new format and Wood shut it down in 30 seconds; all of the participation on the website is a charade, really, and his go-to response is always, “This is a privately-owned website”.

      Every single hypocrisy, scandal, or violation perpetrated by Automattic is propelled by Wood’s efforts.

      He shuts down any controversial discussions, he closes any Trac tickets that might challenge their stranglehold, and he bans any users that dare question anything or point out inconsistencies.

      This is why no *serious* company participates on the website. The future of WordPress is decentralization…

      • Seriously? How amazingly diabolical of me. 🙄

        I have no idea what you’re referring to with the docs team, but they’ve been moving stuff off the codex for ages now, and are continuing to do so just fine, as far as I know. If they need assistance, then they know where to go for it.

  5. Debate? They are violating rules and in previous comment said they will continue to violate rules with the new update. Put the foot down .org. Show the community that A8M does not get special treatment.

  6. This is an obvious violation of the guidelines and the quotes in the article sums up the attitude and double standard that exists within the WordPress ecosystem.

    I’m sure many (myself included) wouldn’t care if this was the norm and everyone could do it. The fact that Automattic gets special treatment though isn’t fair and doesn’t create an equal playing field for developers to promote their plugins/services.

    The intent is obvious here. You can’t accidentally add a sponsored placement in the add plugin screen.

  7. The loophole being taken advantage of here is that JetPack is basically an agglomeration of 45 separate plugins. If you install it for one of the features, then effectively you now also have 44 other inactive plugins installed.

    JetPack is using that fact as the way to get its features top in the search result. It’s a very subtle technical distinction. AFAICT, it’s within the precise letter of the guidelines. But on my understanding, the plugin directory team have always – quite rightly – looked to apply the general principles behind the exact letter, understanding that the letter of the law is not necessarily perfect and may need modifying, or applying on a case-by-case basis.

    In my view, here the principle should mean that JetPack shouldn’t be allowed to do this. Just because it’s structured as a mega-bundle of 45-plugins-in-one shouldn’t mean that it gets special privileges over another plugin author who instead structured his 45 features into 45 separate plugins.


    What do you do when the rules aren’t totally clear? You updated it.

    Does jetpack is still in violation now?

  9. “Jetpack has more than 5 million active installs. “ = Too big to fail…

    One of the ways how to fight against the monopoly is to break down large corporation into pieces.

    I propose an addition to rules:

    – Plugin should serve purpose in 1 (one) specific area.

    This way you still can have big plugins as SEO and Security Suits, because they serve that particular area, but you will not have such behemoths as Jetpack. Jetpack would have to decide 1 particular area of service/improvement it offers and other modules would have to be offered as separate plugins, serving their particular area.

  10. In legal circles there’s a difference between a violation and a “willful violation.”

    If the plugin administrators cannot even agree that there is a violation, then certainly there isn’t a willful violation.

    I’m surprised that the article asserts “many” are asking why Jetpack has not been pulled. That’s farcical at best. Even if it did violate, the notion that all violations result in a death sentence is ridiculous. “Zero tolerance” is something that should have been left to rot in the public schools of the 1990s [spoiler alert – it hasn’t].


Subscribe Via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

%d bloggers like this: