Yoast SEO’s PHP Upgrade Nag is Producing a Significant Increase in Sites Upgrading to PHP 7

Less than three weeks ago Yoast SEO version 4.5 was released with an ugly, non-dismissible notice for sites on PHP 5.2. The notice encourages the user to upgrade to PHP 7, explaining that it is faster and more secure. It includes links for getting started and example emails that users can send to their hosting companies.

In the 18 days since shipping the plugin with the upgrade nag, Yoast SEO creator Joost de Valk has seen a dramatic uptick in sites moving from old, unsupported versions to PHP 7. From December to March, PHP 5.2 usage among Yoast SEO users decreased from 1.9% to 1.7%, a modest drop over three months. After adding the nag on March 21, PHP 5.2 usage dropped from 1.7% to 1.3% for those using Yoast SEO version 4.5. PHP 5.3 usage is also steadily decreasing since de Valk began the campaign to educate his plugin’s users about the benefits of upgrading.

According to de Valk’s stats, 22.2% of Yoast SEO users are on version 4.5 of the plugin. He estimates 1,443,000 sites on 4.5 out of 6.5 million users.

“Assuming 0.5% updated their PHP versions, that’s 7K sites,” de Valk said. “And another 14-20k that updated from 5.3 to something more decent.”

Many developers are hesitant to implement a nag in their plugins, but Yoast SEO is one of the largest plugins to prove that an ugly, non-dismissible notice can be an effective tool for getting users to take action.

“One of the reasons I’m sharing is because I’d love others to join us,” de Valk said. “People don’t like nags, but we’ve had some truly great feedback from users who went from PHP 5.2 to 7 and were astonished by how fast their sites suddenly were. Negative feedback has been absolutely minimal.”

The Yoast SEO team created a project called WHIP that makes it easy for plugin and theme developers to add notices that will nudge their users to upgrade their software versions, starting with PHP. The project also includes a filter for linking to the WordPress.org recommended hosting page, as an alternative to the Yoast.com hosting overview.

De Valk said his team intends to push the notice to users on other PHP versions in the near future, starting with 5.3.

“We’ve got a release coming next week (4.6), in which we won’t do it yet,” de Valk said. “If all goes well and continues to be mellow, 5.3 will be ‘nagged’ as of 4.7, probably three weeks later.”


81 responses to “Yoast SEO’s PHP Upgrade Nag is Producing a Significant Increase in Sites Upgrading to PHP 7”

  1. I commend Yoast’s efforts to not just nag site owners, but to educate them on how they benefit from upgrading to PHP7. WordPress, in the larger sense, has an obesity problem.
    The average size of a web page is running well above 2MB (in 2011 the average mobile web page was 370KB or less). Add easy access to kitchen sink themes, plugins that add significant amounts of code, and low expectations on bringing coding standards in line with today’s progressive web application requirements with continued support for unsupported versions of PHP, ancient browsers, and supporting libraries, and you get a sense of the problem.
    The solutions begins with educating users on what they are missing out on. Then and only then will they make smarter choices about who they host with and what they use to build a WordPress site with.
    Overcoming objections, excuses, and sometimes downright laziness helps no interested party, not WordPress as a product, not hosting companies who deliver the sites, and certainly not the users who constantly wondering why their homepage takes 20 seconds to load. Yoast is taking a step to combat one part of the issue head on.
    I don’t like nag messages either, and they can be abused. But it’s worth it if we’re moving the best practices bar higher. Some will dismiss these efforts as “butting in,” but we should all do our part to make the user experience better and safer when we can.

      • Why would a php7 site be noticeably faster if you do the most basic optimization of using an object cache?

        Even without object cache, PHP core speed improvement are not the bottle neck in any DB driven app like wordpress, and anyway the major PHP speed improvements came with PHP 5.6 so people being nagged to upgrade from that release will see zero improvement.

        • PHP 5.6 (or was it 5.5?) integrated opcode caching into php core which eliminated the need of parsing php files for every request and reduced the amount of memory required for php application in a web server enviroment.

          PHP 7.0 have improved the parsing speed but if the generated opcode is cached the parsing is not done at all and therefor in the real life you will not notice any improvement in a webserver enviroment.

          People that use PHP in a command line enviroment will experience a great speedup because in that enviroment files are being parsed on every request.

          Anyway, the major bottleneck in wordpress sites is DB access. DB access speed (or slowdown) eclipses any thing you do on the PHP side. You might have the fastest PHP code but with slow DB access your site will be slow.

          The answer most people have to that is page caching. With page caching which is done right, (via nginx or apache 2.6+ caching directives) you are not going to even run any PHP code. If you use some inferior solution like W3TC, there is some wordpress booting involve but again if you use opcode caching it is just super fast whatever php version you use.

          The other answer to the DB slowdown is object caching. Here there is some actually improvement that might be gained from faster PHP, but you usually can not do object caching in a shared hosting enviroment, and where available most people employ it as an addition to page caching which was discussed above.

          So Here is a challenge, you are welcome to prove me wrong and show actual speed improvement numbers that are relevant to wordpress, with a core theme. Check it with with three scenarios – no caching, page caching, object caching based on APCu and object caching based on mecache (memcache is slower than APCu therefor it will be interesting to see the difference).

          Sorry for not bothering to do the tests myself, but you made the claims, you need to show they are actually true.

        • @mark k. there are tons of resources out there showing the improvements of php7 over the previous versions. its not just the improved opcache, many calls were rewritten, structures were improved ( see array code for example ). If you don’t wont be bothered to do your own tests, don’t hag the rest of the people with your suppositions.

          I, for one, I applaud the efforts yoast team is doing in improving the safety and awareness of their users. walk the walk, they say.

  2. I think a more important question is how is Yoast getting these PHP stats.

    Is Yoast SEO plugin calling home with the server info. Is that mentioned in a privacy policy beforehand? What other data is being collected?

        • Sorry Jeff, but how exactly will that help? Yoast asked for information **all** plugin and theme authors want to know, and ask for it, but only he got it.

          The method which I assume was by email is obviously not scalable and if every author in the repositories asked for such an info just once a year, there will have to be a dedicated person just to answer them.

          So this whole issue is not about yoast having fun with annoying his users. They are grown man and can switch to other plugins, The only issue is about transparency from the wordpress.org team. If they feel like bending the rules to promote PHP upgrades, that is cool, just let everybody that wish know they can participate. If they want to release the PHP version usage for plugin authors, let all the other plugin authors know they can apply to get it.

    • Okay. The data from the WordPress Users must be minimal like that:
      – phpinfo about the version
      – which pluigns does a wp install running (active or deactivated?)
      This will give you an overview about the wp users with the plugins and the php-version. This is incredible.
      I really heard this the first time of my wp life.

      In Germany it is illegal to send data to another non-german driven host if the complete IP is included. We must mask the IP, if we do that. For example: 123.123.xxx.

      So. Where can i get an concrete information about the hole data, which is sending to wp.org. @jeff chandler: Your article is not clear enough.

      p.s. to yoast: Your automatically activated onpage.org “feature” is sending data to onpage.org, too?
      Which concrete data? Isn’t this illegal in german, too?

  3. Keeping Yoast out of the conversation php 7 is way better for wordpress in overall performance and security hands down. You can php 5.6 all you want but not upgrading to conform to what wordpress calls better standards for the software is just cheating yourself and clients if you have them.

  4. Yoast and his team made what WP should have done years ago. Period. What do you think why it was allowed? Because even WP plugin team is aware of that they just did not dare the same thing with the lamest excuses.

    So stop weaning and complaining here! Do not forget the fact: you can uninstall this plugin anytime free of any costs and go back to the stone age using PHP 5.2 or even further if you want. Just enjoy all the security issues and even babies hacking your sites.

  5. In the for what it’s worth department, I upgraded my sites from PHP 5.6 to PHP 7 because of the conversation generated by Yoast’s plugin nag. It came to my attention via the previous Tavern article.

    I host with WP Engine and my highest traffic site is also running WP Rocket and Autoptimize. So I considered the site reasonably fast, though I admittedly didn’t put too much effort in fine tuning things.

    That said, upgrading to PHP 7 cut my page load times in half. Needless to say, I was surprised to see that much improvement. That much speed increase will likely directly affect the bottom line of our nonprofit which sees the overwhelming majority of its income come though the site. So I appreciate the controversy that brought the issue to my attention.

    The rule of law is important for any community like the WordPress community. Therefore rules should not be discarded lightly or the community will fall apart.

    At the same time, wisdom dictates that rules should be bent, or even outright broken, in those rare instances when a rule makes no sense or prevents an overwhelmingly desirable outcome for many people. If not then the rule keepers become soulless bureaucratic tyrants like the worst imaginable government agency because, “the rules!”

    In this case we’re talking about something in the grey area at worst. The only cost is the feelings of some developers who observe that it doesn’t seem fair. Yet because of this decision we will see literally millions of sites benefit before it’s over. That’s a huge boost to the WordPress community overall.

    So even if it we stipulate that yep, this is a flat out rule violation. It’s still the right decision. It’s not about favored developers, though there are precious few plugins with the reach and ability to make the impact that Yoast’s has in this area. Instead this “exception” is about a (nearly) no cost way to benefit millions in the WordPress community. It’s a no-brainer. And thank you!

    • All good points, but based on an assumption that WP Engine, WP Rocket, and Autoptimize were all already making your site significantly faster. If I were running your site, I’d certainly want to revisit that assumption.

      As mark k. states above, the biggest impediment to a fast site is not the version of PHP being run, but the database. So, if you noticed that much of an increase in speed just by bumping up your version of PHP, something on your site has likely not been doing its job. If that has been true so far, it probably remains true now.

    • There is no right vs wrong decision. Calculate future-proofing reqs at the strat phase–well before getting stuck. Then scale per needed. Never rely on 3rd party software telling you what you need. You should already know–and prep/trigger when the time is good. If a piece of software alerts you of incompatibilities, then that software should be removed until you’re realigned. Start with Host, not Yoast.

    • We don’t have “rules”, we have “guidelines”. When I first wrote them almost 7 years ago, I named them such for a very specific reason. Everything is acceptable depending on circumstances. If you work with us, then things can get done. That’s how it works. Community, working together to accomplish shared goals.

      Given that the notice is limited and specific for a purpose, we allowed it. They asked and we answered, and indeed, provided feedback. That’s how things work when you ask and have goals in mind and are willing to try new things. Nothing is ever fixed.

    • Most of those PHP 7 gains would be in the WP-admin on the back-end, if your already using page caching on the site. Since PHP and WP is never being hit, but the static caching is being served to viewers of the site.

  6. I did this in a light version in my plugin. I discovered this by accident using some php code what did not work with on php 5.2 and discovered I had multiple users who were running php 5.2.

    And I also discovered that oh proud wp.org endorsed host Bluehost was actually showing customers in their settings that they were running 5.6 when they actually ran on 5.2!

    My message is dismiss-able however but it reappears after a hour if they do not upgrade and my plugin did not fully load. I could use different code to make it work but I figured I am doing people a favor by telling them that everything below 5.6 is End Of Life anyway. And I can use anonymous functions in my code now that came in 5.3. I thought about requiring 5.6 but then went with 5.3.

    I could do another message encourage people below 5.6 to upgrade without actually require them to.


Subscribe Via Email

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

%d bloggers like this: