How to Outrank Your Competitors’ SEO on The NEW WordPress.org Plugin Repository

Yesterday the new plugins directory was officially released replacing the old, “legacy” one. Many community members (including me) feel that most of the issues that were addressed during the feedback phase were unfortunately ignored, but one thing that was significantly improved for sure is the search.

New repository for plugins

It is still lacking way behind the search capabilities of designated search services like Addendio, but it’s much better than its predecessor.

The much-anticipated update to the plugins’ search is a HUGE thing. Not only does it obviously affect the WordPress.org repository search, it also changes the search in the WordPress Admin dashboard on ALL of the millions of WordPress sites out there (27% of the web).

Many developers in the WordPress community aren’t aware of the power of SEO in WordPress.org directory, but if you think about it, most of the traffic to your plugin’s or theme’s listing is coming from search. Here are the top 3 channels:

WordPress.org – people see the repository as a trusted collection of plugins & themes, many “plugin hunting expeditions” are starting right there. If you take a look at the screenshot of the new plugins repo homepage you’ll easily notice that the focus is the search. Just the header with the search is using about 40% of the fold.

WP Admin Dashboard – if someone already has WordPress installed, there’s nothing easier than just searching for plugins and themes directly from it. This search is based on the same search mechanism that WordPress.org is, so searching for a specific term will yield the same results on both locations:

WordPress.org repo search results

And the same search term: ‘Backup Plugin’ from within the WordPress admin dashboard:

Admin dashboard plugin search results

Google (and other search engines) – every time we have a problem we ask our good friend, Mr. Google, to help us out. Since WordPress.org is THE authority regarding all things WordPress, and it possesses a massive backlinks collection from high quality sites, searching anything related to WordPress on Google favors results from WordPress.org, by default. Hence, we are really back right to the same source again 🙂

Why should you care?

The answer is quite simple – if you have a plugin or theme listed under WordPress.org, undoubtedly, it’s your main user acquisition channel. If you want to get more users installing your software, luckily, you have full control over the marketing content you include in your readme.txt file. So instead of spending days, weeks, months on polishing features (although those are obviously important, too)… you can potentially spend less than a day optimizing your readme.txt file and get a very significant boost in traffic to your listing, which will directly increase your acquisition rate.

Unlike Google’s super-secret-proprietary search algorithm, the WordPress.org repository is an open-source project (and thanks to Daniel Iser who reminded me that yesterday and triggered this post about it). The new plugins repository is actually running on WordPress, therefore, as a derivative, it’s also licensed under the GPL. This gives us a unique opportunity to simply peek under the hood of the search logic and line up the key elements developers should focus on, to rank higher on the WP.org SERP (Search Engine Result Page).

Here’s the plugin repository’s source code, if you are interested: https://meta.trac.wordpress.org/browser/sites/trunk/wordpress.org/public_html/wp-content/plugins/

The new search engine is based on Elasticsearch, routed via a wrapper layer on Automattic’s wordpress.com. Which as a side note means that Automattic has a full visibility of all the searches on the repo (is anyone identifying a conflict of interests with all the .org data streamed directly over to WordPress.com, or is it just me?). I’m not going to dive deep in the technological part, but for those of you who are curious – just like most modern full-text search engines, Elasticsearch is also based on the open-source Apache Lucene project. The key differentiator of Elasticsearch is that it can be distributed on multiple servers and has a RESTful API.

So your partner in crime (that’s me), dove into the plugin repository’s search class and the Elasticsearch API documentation to turn that logic into actionable items.

I dove into the plugin repository’s search class and the Elasticsearch API documentation & came back with actionable items.

Elasticsearch is highly flexible and incorporates a bunch of mathematical formulas to weigh the different fields that are counted when a search takes place. So, having a BSc in Math and BSc in CS under my belt were a great foundation for understanding how the search works behind the scenes. I’m not going to detail the exact calculations, but I will tell you which fields and parameters matter most.

The New WordPress.org Search Algorithm Structure

The first phase of the algorithm pulls a collection of matching plugins, based on the following fields:

  • Title
  • Excerpt (short description)
  • Description (including FAQ, changelog, everything…)
  • Tags
  • Slug
  • Author name
  • Contributors names

From what I heard (never validated), those were also most of the fields that the legacy algorithm was relying on, prior to the Elasticsearch update.

The second phase of the new algorithm refines the result rankings based on:

  • Last update date
  • Compatibility with the latest core version
  • Number of active installs
  • % of resolved support tickets
  • Average rating

This is all new criteria that didn’t really matter before – so read it carefully!

Make Sure You Got All the Relevant Keywords Covered!

The new search requires ALL keywords to appear somewhere in your readme.txt file. So for example, if you have a plugin that does backups and you didn’t mention the word “images” anywhere in your readme.txt file’s content, then a user’s search in the .org repo for “backup images” will not include your plugin in the search results, at all!

Reference: https://meta.trac.wordpress.org/browser/sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/libs/site-search/jetpack-search.php#L794

Exact Phrases Are Ranked Higher

The new algorithm favors exact phrases more than just a match of all the keywords. So for example, if a user is searching for “star author ratings”, a plugin that has that exact phrase in the same field (e.g. description field) will outrank a plugin that has “star ratings” in one field and “author” in another (assuming that the rest of the fields are identical).

One strategy to tackle the long-tail search phrases is doing an in-depth keywords research for your plugin, focusing on phrases with at least three words. After you craft this list, do the following:

  1. Run the search in the plugin’s directory.
  2. Copy the slug of the plugin that was returned as the 1st result.
  3. Open the readme.txt file of that plugin by browsing to https://plugins.svn.wordpress.org/{slug}/trunk/readme.txt (replace {slug} with the slug from step #2).
  4. Search the readme file for the exact match of the search phrase. If you can’t find it – that’s great! Mark the phrase and move on to the next phrase.

After you have your list ready you can start incrementally squeezing those unique phrases into the changelog, which means that you’ll start ranking as one of the top plugins for those searches.

Subscribe and grab a free copy of our

WordPress Plugin Business Book

Exactly how to create a prosperous WordPress plugin business in the subscription economy.

Share with a friend

Enter your friend's email address. We'll only email them this book, scout's honor.

Thank you for sharing

Awesome - a copy of 'The WordPress Plugin Business Book' was just sent to . Want to help us spread the word even more? Go on, share the book with your friends and colleagues.

Thanks for subscribing!

- we just sent your copy of 'The WordPress Plugin Business Book' to .

Have a typo in your email? click here to edit the email address and send again.

Book Cover
Book Cover

The Age of The Power Slugs Is Over

Having a lucrative slug that matches a commonly searched phrase was a priceless real estate before the search algorithm change. The reason it was priceless is because of the way it worked: a plugin that had a slug such as “backup” was ranking 1st when users were searching for “backup”.

I raised that as an issue in a discussion about the directory’s search with Mika and Otto at the contributors day at Philly, two years ago. Anyways, this is no longer the case. The slug is now just another field in the search algorithm, together with others like the title, excerpt, description, and more. Moreover, it has less “power” than the others I mentioned.

Reference: https://meta.trac.wordpress.org/browser/sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/libs/site-search/jetpack-search.php#L774

The Plugin’s Title Has The Highest Impact

The title of your plugin weighs more than all the other fields that I mentioned in the 1st phase of the search algorithm. Even more than the slug. Therefore, make sure that your top 2-3 keywords are part of the title.

I know many developers think that the brand of the product should be the title of the plugin and that’s it, but that’s a big SEO mistake, and now it’s also backed up with the evidence. If you’d like to include the brand in the title – no problem! But start with the important keywords. For example, there’s a very popular backup plugin, titled “Duplicator”. The only reason it is ranked 5th when searching for “backup” is because results 1-4 have “backup” in their title.

backup results

Moreover, I would recommend using “WordPress” as part of the title. It might seem redundant when searching within the context of the repo, but it will increase your listing’s ranking on external search engines like Google since the title is embedded within an H1 header which is highly important for search engines.

So here’s my power formula for a high ranking plugin titles:
WordPress {functionality/description} Plugin – {brand}

Here are a few examples:

  • WordPress Gallery Plugin – AwesomeGallery
  • WordPress Backup Plugin – AwesomeBackup

When the plugin is an integration with another service here’s a slightly different naming template:
{serviceName} for WordPress Plugin – {brand}

Here are a few examples:

  • Google Search Console for WordPress Plugin – AwesomeSearch
  • SendGrid for WordPress Plugin – AwesomeEmails

Translations & Geo-Location

When running a search in a non-English WordPress.org version or within a non-English WP Admin, the algorithm considerations will mainly be based on the given translation of that plugin to that language. So for example, if a Russian user searches for “Рейтинг виджет” (which stands for “rating widget” in English) in ru.wordpress.org, since only one plugin has both of those keywords in their Russian translation, only this single plugin will appear in the results even though there are hundreds of rating plugins in the repo.

So translating your plugin’s internal strings is great for accessibility, but if you play this card right and focus some of your translation efforts towards the readme.txt marketing material, this could drive your SEO off the charts!

It’s important to mention that since many users are searching in English anyway, which means that the algorithm will probably not find a match for those tokens in the translated version, it also relies on the English translation, but with very small weight. This means that if the same Russian user is searching for “rating widget” in English, and for some reason, the phrase exists both in the Russian translation and in the English version of the fields, it can give you a little edge in rankings.

Bottom line – translations are now more important than ever!

Due to the new search algorithm – plugin translations are now more important than ever!

Reference: https://meta.trac.wordpress.org/browser/sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/libs/site-search/jetpack-search.php#L720

Author & Contributors… Also Matters!

It’s a little weird in my opinion, but that’s the way it works, and it can give you an edge. If you have a gallery plugin, and another plugin which I’ll call “competitor” has the exact same marketing material, same number of active installs and resolved tickets, you can potentially sign-up with a new WordPress.org user, use “gallery” as the username, and list that user as a contributor to your readme.txt file. Your plugin will outrank the competitor. Crazy – but that’s how the engine works.

Reference: https://meta.trac.wordpress.org/browser/sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/libs/site-search/jetpack-search.php#L835

Updating Frequency is Important, But Less Than Before

The plugin’s last update date matters, but you’ll only get penalized if you haven’t updated your plugin for 180 days. Therefore, make sure you release an update at least every six months.

Reference: https://meta.trac.wordpress.org/browser/sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/libs/site-search/jetpack-search.php#L941

One of the “tricks” for getting more users to install your plugin before the change was actually releasing frequent updates. The reason for that is because of tags. There are multiple locations in WordPress.org and also inside the plugins search in the WP Admin dashboard, where users were exposed to linkable tags(there were even more of those in the past). So for example, if your plugin had a widget and you added ‘widget’ as one of your tags in the readme.txt file, every time you would release a new version of the plugin users who clicked the widget tag (which was the most popular one) would see your plugin 1st. That’s because the tag results view was ordered by the last update in a descending order. These mechanics rewarded developers that were constantly releasing updates. So instead of developing for months and releasing a mega-version, the better practice was creating continuous incremental patches to the plugin. We were doing that for years in our plugins, and it worked great.

Long story short, the days of the tags are over. The default order of tags is now “relevancy” as the default search results order. Moreover, the ‘last update’ field was removed from the search results. Here’s an example for the “rating” tag:

https://wordpress.org/plugins/tags/rating/

As someone who has been “playing” in the plugin/apps/extensions marketplaces ecosystem since 2010, I had the chance to develop and market extensions for WordPress, Blogger, Shopify, WiX, Tumblr, Squarespace and Weebly. I was always highlighting how awesome the WordPress.org plugins repository is because it gives a chance for new and upcoming plugins to shine. All the other marketplaces were ranking new extensions based on active installs, number of reviews, and Avg. rating, which practically means that if the marketplace/repository is already well established and has a large inventory, it’s really hard to get any visibility.

WordPress had that unintentional tags mechanism that gave the new devs an opportunity as long as they keep releasing new versions. From the looks of it at the moment – those days are gone. I hope that the people who lead the WordPress.org plugins repo (Ahm… Samuel Wood aka Otto) read this and rethink changing the tags view back to the previous sorting, or maybe opening up a new category, because otherwise new plugins are basically going to be buried and won’t have any chance to get any organic exposure.

Compatibility with New WordPress Versions

The “Tested up to” readme.txt header that hints about the compatibility of your plugin with WordPress core latest version is now counted in the search rankings – but only for Major and Minor versions (core “patches” compatibility doesn’t affect the rankings). So if your plugin is tested up to 4.7.0 and the latest release is 4.7.3, you are not going to be penalized. But, if your plugin is only supported up to 4.6.x you will get a lower ranking score. So the call-to-action here is simply to test your plugin before every minor release and to update the “Tested up to” field in the readme.txt file.

Reference: https://meta.trac.wordpress.org/browser/sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/libs/site-search/jetpack-search.php#L963

Active Installs

Plugins with over 1,000,000 active installs will get the highest rank for that search component. While plugins with fewer downloads (99.9% of the plugins) will compete on search rankings, based on who has more installs.

Unfortunately, this means that if you are starting a new plugin in an already popular category such as backups, prepare to be ranked somewhere after the 20th page of the search results when people search for a “backup” plugin.

Reference: https://meta.trac.wordpress.org/browser/sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/libs/site-search/jetpack-search.php#L973

Update: Greg Brown, the engineer that developed the search of the new plugins’ directory pinged me on PostStatus Slack with a fresh update. They solved a bug in their algorithm, so now more active installs mean a higher boost on that search criteria.

Answering Support Tickets

The percentage of answered support tickets on WordPress.org is now a part of the search algorithm. On the one hand, it’s a good way to incentivize developers to answer more tickets. On the other hand, many plugins host their support outside of the WordPress.org repository (for various good reasons), and they will now officially be penalized by the repository for that. This is one of the things that I think should be reconsidered, due to the great arguments presented by many plugin developers like James Laws from Ninja-Forms, in favor of 1:1 email support.

Another interesting point is if you have a new plugin released to the repo, as long as you don’t have any support tickets submitted the algorithm will default that criteria as if you have only answered 50% of your support tickets…

So the quick tip here is to ask a friend to start a ticket right after the plugin is live and to quickly resolve it to get to 100%.

Reference: https://meta.trac.wordpress.org/browser/sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/libs/site-search/jetpack-search.php#L991

A Plugin’s Average Rating Means a LOT

If before the new search we all knew that ratings are important for the decision making when users were on the hunt for a plugin and wanted to get one with a decent reputation, now it’s incorporated deeply in the search results and even factored with a HUGE impact on your rankings. More than the active installs and the other criteria that I mentioned earlier, in phase II of the algorithm.

Also, if your plugin is fresh out of the oven, make sure to get at least one quick 5-star review! (tip: you can do it yourself) If you don’t, the search algorithm will treat your plugin as if it has an average rate of 2.5 stars. That’s a really-really low rate.

Reference: https://meta.trac.wordpress.org/browser/sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/libs/site-search/jetpack-search.php#L1000

Search Updates Frequency

I’m not sure how often the plugins directory is being indexed by the Elasticsearch, but presuming that the data is reindexed on changes (that’s the logical way) from what I’ve found in the code, WordPress.org caches the results from the service for 10 minutes. So if you push a change to your readme.txt, you’ll need to wait at least 10 minutes to see any change in the search rankings.

Reference: https://meta.trac.wordpress.org/browser/sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/libs/site-search/jetpack-search.php#L290

What Should Be Your Focus First?

There are only two parameters in the new search that you don’t have direct control over – active installs and the average rate. The good news is that even if you are in your early stages, and still have a very small user base – the average rate has a higher search impact than the number of active installs. So make sure you keep your users happy and also apply a mechanism for increasing your 5-star reviews.

If I would need to rate the importance of the different components involved in the new search (that you have control over), here’s the full list starting with the most important:

  1. Title
  2. Excerpt (short description)
  3. Description (including FAQ, changelog, everything…)
  4. Tags
  5. Slug
  6. Author name
  7. Contributors names
  8. Translations
  9. Releasing an update every 180 days
  10. Tested up to (Compatibility with latest core version)
  11. Resolving support tickets

Here’s a list of the different components involved in the new search (that you have control over), by order of importance.

All of those algorithm parameters and criteria are under YOUR control! So do your keywords research, optimize your readme.txt marketing content, and rank higher. I know that coding new cool features may be more fun 🙂 but this can have a way bigger impact on your growth at the end of the day.

If you take action on this today, you can start observing an immediate growth in your downloads/installs tomorrow. Oh, and btw – if you do want to visually see your SEO tweaks affect your plugin’s growth in real-time (WordPress.org doesn’t show active installs over time), check out Freemius Insights. Here’s an example of an effective growth chart from the Freemius dashboard showcasing a growth in acquisition after an SEO optimization done by Ahmad Awais on one of his plugins:

Have fun SEO-ing!

24 comments

  1. So many things to care off. Specially resolved support tickets shouldn’t be be counted. Since most of plugins are free with free support. Often devs don’t reply back repeated questions. Because some foolish people don’t even try to find solutions online.

     
  2. Nice post! What recommendations do you have for ranking newly released plugins for competitive keywords with these new changes?

    I just released a new eCommerce plugin, but since all the results are now sorted by active installs. I am hardly getting any downloads on it.

     
    1. That’s one of the things that I mentioned in the article, unfortunately, it’s harder to be seen with a new plugin via organic search. Try taking advantage of long tale exact phrases, it’s covered in the “Exact Phrases Are Ranked Higher” section.

       
      1. Hi Vova,

        Thanks for the reply. Why do you recommend using the changelog specifically?

        “After you have your list ready you can start incrementally squeezing those unique phrases into the changelog”.

         
        1. If it makes sense to put everything in your marketing description section, then it’s better. The reason I mentioned the changelog is because it’s indexed as part of the search mechanism and it doesn’t interfere with the user experience when reading the description section.

           
  3. As always I really enjoy your in-depth articles.

    I released a new version of Content Aware Sidebars yesterday, so timing couldn’t have been better. Previously I’d pulled out screenshots and FAQ and linked to my own site, but with the new design I think those are must haves – not only for SEO purposes.

    What I don’t really understand is why the author and contributor names count in the ranking, even more than keeping the plugin up-to-date. And having the changelog count is just asking for keyword stuffing in there, but from a technical viewpoint I understand why it’s included.

    And with the new design, the Featured section doesn’t make any sense – it’s pretty much just a duplicated Popular section, but pretty much only with Automattic products.

    Time (and Freemius) will tell if my SEO improvements pay off 🙂

     
  4. Your suggestions baffled me Vova! I would never expect someone that much experienced to suggest such evil things to do on WordPress.org.

    Business people are already manipulating the open source communities. I would request you to not promote such heinous acts like asking friends to review and create support tickets just to manipulate the search algorithm.

    I am a big admirer of you and been following you since 2015. I would be glad if you recommend standard practices that would help the users, not just the businesses only. I expect WordPress.org to be a place of trust. Not a place full of sellers who want to make it into a marketplace.

     
    1. Hey Sekander, first of all – happy you are enjoying to read my content since 2015!

      I’m not encouraging anyone to manipulate the review nor support tickets; I gave tips on how to not get penalized by the search algorithm when your plugin still don’t have any reviews or support tickets. Besides, I didn’t reveal any national secrets – anyone can check the search code. I think that it actually raised some valid points that driven healthy discussions in the WordPress community about how the weaknesses of the algorithm can be sealed. And just to wrap my response, I’m sure that other plugin authors (marketing oriented) already did this research, so by revealing the search logic to the public I leveled up the available knowledge that every plugin developer in the community have regarding the directory’s SEO, instead of keeping it only in a small group of privileged authors.

       
  5. Hey, Vova!

    This is an incredible piece.

    I salute your willingness to dive deep and dig such important info.

    P.S. I hope that people keep it civil after reading this post, I mean — you know what I mean.
    P.P.S. Thanks for sharing the tweet 🙂

     
  6. ANOTHER TIP: When you set plugin compatibility with WordPress versions, you should never use a Minor WordPress version! Always use the Major WordPress version.

    When the “Tested up to” field in the plugin file has a minor version (lets say 4.7.2), the repo will display 4.7.2 as compatible WP version, even if the latest WordPress version is 4.7.3.

    But if you set the “Tested up to” to a major version (lets say 4.7), the repo will display 4.7.3 as the compatible WP version.

    When you set a major version, the plugin repo is automatically uses the latest minor version in that branch!

    This is a time saving tip because you don’t need to update your plugins readme on every new minor WordPress released. only on major releases.

     
  7. Hey Vova,
    Thanks for written such an incredible piece. I was reviewing a few plugins from the repository the other day and found glitches in features like the “Read More” button. Looking forward to how the core team will address these concerns after getting such a massive response from the community. But it seems you’ve done an extensive research while penning down this post.

     
  8. Excellent piece of article, I am wondering why I never followed you before. Your insights tool and the way you share your research on WordPress products helps WP entrepreneurs a lot.

    Cheers!

     
  9. Hey, Vova,
    Excellent stuff!! What an amazing post i got to read! Learned so many new strategies from your post. Many many thanks for sharing a great informative post. I think many people like me will be helpful if they read your entire post.

     
  10. I followed your steps and I am seeing better rankings But I am still far behind my competitor Plugin. Translated to different language may help more. Thank you for the tips.

     

Leave a Reply

Your email address will not be published. Required fields are marked *