In this post I explain why Yoast SEO will soon warn people whose website runs on an older, unsupported, version of PHP to upgrade their PHP version. We’re doing this mainly to improve the security and speed of those websites.

This post is long, but I’ll explain:

  • what the problem is;
  • why we want to fix it;
  • why we burden the user with it;
  • and how web hosts can work with us.

PHP? Versions? What are you talking about?

WordPress, (like Yoast SEO), is built in large part in a programming language called PHP. This language, as WordPress itself, has gradually improved over time. Web developers all over the world are enjoying the new features that newer versions of PHP have brought. Also, more importantly, everyone all over the world enjoys the increased security these new versions bring. Unfortunately, WordPress developers do not get to join in.

Compared to WordPress, PHP has a rather aggressive update path. PHP 5.6 will receive security patches for just under two more years, but nothing else, and no other PHP 5 version receives security updates. PHP 7 is the future (and boy is it nice and fast).

Ever since July 2011, the minimum PHP required for WordPress is PHP version 5.2. Here at Yoast, we think it’s time for WordPress to move that requirement up to PHP 5.6.

Why do you care so much?

At Yoast we care about a lot of things, but two things in a very particular order: user happiness first, developer happiness second. A user is happy when he or she has a fast, easy to install, secure content management system like WordPress to build a site in. A developer is happy when he or she can use a modern language and modern tooling to build software with.

Security

The single most important reason for us to want to increase the minimum requirement is security: PHP versions 5.2 through to 5.5, while still actively in use on millions of sites, no longer get security updates. Some Linux branches and web hosts still backport security fixes from newer PHP versions to older versions, but that’s not something we, as a community, should rely on.

This security concern is not a theoretical concern. We have seen time and time again that the number one reason sites get hacked is because of outdated software. The last release of PHP 5.2 is 6 years old, and several major security issues have been found in it since. WordPress has automatic updates for security updates built-in for exactly this reason. Why would we push people to update WordPress and its plugins regularly, but let the PHP version fall behind?

Speed

Another big issue is speed. WordPress is sometimes said to be slow, but it actually doesn’t have to be slow at all. If it’s running on old versions of PHP however it is, most certainly, slow. PHP 5.2 is more than 100% slower than PHP 5.6, and a whopping 400% slower than PHP 7 (source). If you’re getting a bad reputation because you’re allowing old stuff to stay around, maybe we shouldn’t allow the old stuff to stay around so much?

Modern programming language

PHP 5.2, which was released November 2nd 2006, is no longer a modern language. This makes developers unhappy because they’re missing many of the cool features every other modern language has.

As WordPress is gaining popularity, something else is happening because of this: more and more developers are turning their back on WordPress because it’s moving too slowly. Developing themes or plugins for WordPress, where PHP 5.2 is required, is a hassle and thus not as much fun. This is becoming a problem: we’re literally losing good developers. Those developers could benefit the entire community, but we’re missing out because we’re not getting with the times. Over time, losing developers means other products will move faster, and WordPress will lose marketshare.

Why isn’t WordPress simply upping the requirements to PHP 5.6?

There is a long and ongoing discussion in the WordPress community about upping the requirements for PHP to 5.6. The problem lies therein, that for a user, upgrading their PHP version is non-trivial in a lot of cases. It’s not something we want to burden a user with. So we’ve been waiting and waiting for web hosts to do their work. We’ve been waiting, literally, for years. Unfortunately, it turns out, not all web hosts are created equal. Not all of them pro-actively upgrade their customers to newer PHP versions.

As I type this, the WordPress stats page says 5.6% of websites is using PHP 5.2, 15.6% is using PHP 5.3, 23% is using PHP 5.4 and 15.4% is using PHP 5.5. That means almost 60% of WordPress installs is running on an unsupported version of PHP. So much for web hosts doing their work.

Because web hosts are not upgrading PHP, we have decided to start pushing this from within plugins.

Why don’t web hosts update PHP?

When you’ve seen all the above, you’re probably wondering why web hosts don’t pro-actively update their customers PHP versions. Well the good news is: lots of them do. If you’re on one of those hosts, and you’re running PHP 5.6 or higher: good on you! Other hosts though, seem to be intent on doing as little as possible while still keeping the customer.

We’ve heard all sorts of reasons from hosts to not want to upgrade PHP. The only one we understand to a certain extent is that they don’t want to break your site. Some software running on the same server as your site may not support newer PHP versions, probably because that software needs to be upgraded too. But in all honesty: you shouldn’t have to worry about that. We think a host should upgrade your PHP for you.

What is Yoast going to do?

Combined, all of the above reasons make us very intent on moving WordPress forward. Unfortunately, we don’t have the power to decide on minimum requirements. So we’ve decided to throw our weight behind this in a different way.

As of Yoast SEO 4.5 we will start showing a notice on the WordPress dashboard to administrators of sites running on PHP 5.2.  This notice will be big, ugly, and non-dismissible. In this notice we will explain why the administrator should upgrade the PHP version of the site.

If a web host integrates with our project, which we’ve called WHIP, the host can add some information about how to upgrade right within the notice. See the Github repo for info about how to integrate.

The notice will also encourage people to contact their host if they don’t know how to upgrade their PHP. Yes, this could be painful for some hosts. This notice is deliberately intended to make them work.

As a last resort, if a users host does not cooperate, we recommend the user to change to better hosting. We will provide a link to a page we’re building right now here at Yoast, with hosts that we’ve vetted. When we say we’ve vetted them, we mean it: we have verified that Yoast SEO works well on their servers and that they put new customers on modern PHP versions. The page isn’t ready yet, but it’ll be cool and we will not be using affiliate links on that page. This isn’t about money.

Does this stop with PHP 5.2?

This most probably does not stop with PHP 5.2. We will release it and watch closely what’s happening. If it works, we will start pushing the same notice for PHP 5.3 a few weeks later, and so on. We fully intend to see if we can get the minimum version up to 5.6.

I’m a theme / plugin developer, can I join?

You can of course join this endeavour! Our WHIP package is open source and very easy to implement. Put it in your code following the instructions on the repository and you too will be part of this move forward! Of course your feedback is highly appreciated on that repository too.

For developers that want to integrate WHIP into their plugin, we will make it possible to link to the WordPress.org hosting page. Those hosts are all PHP7 ready too.

Why are you telling us now?

We’re telling you all this now because we fully hope that we have to show this notice to as few people as possible. Upgrade your PHP versions. If you’re a host, integrate with our messaging system and start proactively upgrading your customers PHP versions. With 6.5 million active installs of Yoast SEO, you’re bound to have a lot of customers that are going to start asking for help. You might as well get started.

Once your website starts growing and you continue writing blog posts, you’ll eventually end up with archive pages. These archive pages can be based on taxonomies, categories, custom post types and even dates. WordPress has built-in support for these archive pages, however there are some small drawbacks. In this post, I’ll explain to you how you can use these archive pages in a better way and ensure they actually add value to your blog.

Default archive pages

WordPress supports automatic creation of archive pages. This ensures that you don’t have to think about making them by hand. Sadly, these pages tend to only consist of a list of posts based on a category / taxonomy / post type without any further introduction. This means that your visitors are left stranded on a page without much explanation about what they’re looking at. The chances of your visitors finding what it is they’re looking for are terribly slim in this case and usually visitors will decide to leave that page immediately.

A simple solution to this problem: Add an “introduction” of some sorts to the page. A clear header can already greatly help out your visitors, but for extra important pages we recommend adding a description as well to better highlight the content that can be found on that archive page.

Before avidly writing these introductions, lets ensure they are properly displayed on the pages.

Learn how to structure your site well with our Site structure training! »

Site structure training$ 99 - Buy now » Info

Adding the introduction

Category, tag and custom taxonomy archives

If you want to add an introduction to a category, tag or custom taxonomy archive, you can easily create a custom template file to override the default ones. For example, you can create a `category.php` file in your theme to override the default template file. If you want more information on how the templating hierarchy works in WordPress, just look at this infographic before continuing.

In your newly created `category.php` template file, add the following snippet above the WordPress loop:

if ( ! get_query_var( 'paged' ) ) {
  echo wpautop( term_description() );
}

If you want to support shortcodes, try this instead:

if ( ! get_query_var( 'paged' ) ) {
  echo wpautop( apply_filters( 'the_content', term_description() ) );
}

The above code takes the title and description that you added in the WordPress backend for the category and displays it on the category archive page. This method also applies to tag and custom taxonomy archives.

If you use the Genesis theme, you won’t have to do any of the above alterations. Luckily, Genesis already has built-in support for this type of thing, so it’s as easy as ticking two checkboxes in the theme settings.

Genesis Archive Settings

Or if that doesn’t work, you can just add this to your Genesis child theme’s functions.php:

function yoast_term_archive_intro() {
 if ( ( ! is_category() && ! is_tag() && ! is_tax() ) || get_query_var( 'paged' ) ) {
   return;
 }

 echo '<h1 class="entry-title">' . single_term_title('', false) . '</h1>';
 echo '<div class="entry-content">' . wpautop( term_description() ) . '</div>';
}

add_action( 'genesis_before_loop', 'yoast_term_archive_intro', 20 );

Of course, you are free to expand the above function to add some more CSS classes to further style the output.

Custom Post Type archives

Altering custom post type archives is a bit trickier than overriding default tags, categories and taxonomies. You can add a new file called `archive-{posttype}.php` where you replace the `{posttype}` portion with the name of your custom post type. By then adding the following code to said file, you can achieve a similar result:

if ( ! get_query_var( 'paged' ) ) {
  $post_type = get_post_type_object( get_post_type() );
  echo '<h1>' . $post_type->labels->name . '</h1>';
}

Now for the hard part. Because custom post types don’t have any type of form in the WordPress backend, it is impossible to easily add a description to these custom types nor is there a recommended way of storing the data. One method you can use when you use a child theme in Genesis, is by expanding the `functions.php` file with the following code:

function yoast_cpt_intro() {
  if ( ! is_post_type_archive() || get_query_var( 'paged' ) ) {
    return;
  }

  $post_type = get_post_type();
  
  if ( genesis_get_option( $post_type . '-title', 'child-settings' ) ) {
    echo '<h1>' . genesis_get_option( $post_type . '-title', 'child-settings' ) . '</h1>';
    echo wpautop( genesis_get_option( $post_type . '-intro', 'child-settings' ) );
  }
}

add_action( 'genesis_before_loop', 'yoast_cpt_intro', 20 );

As you may have noticed, the code example uses two custom genesis options: `$post_type . ‘-title’` and `$post_type . ‘-intro’`. These can be defined in your Genesis child theme. You can read how to do that over here.

Preventing duplicate content issues

To avoid duplicate content issues, the previous code snippets make use of a simple check to ensure we’re not on a paginated page. The `get_query_var( ‘paged’ )` function call determines whether or not we’re on a paginated page.
If it detects the query variable `paged`, we can assume that this page is one in a series of multiple pages and thus should not display the description.

Since the introduction of rel=”next” and rel=”previous”, websites that have paginated archives and whom have properly implemented the `rel=”next”` and `rel=”previous”` attributes, will be receiving more visitors on the first page in the series. Nevertheless, you should not solely rely on this, but use it in conjunction with the `get_query_var( ‘paged’ )` option.

Styling the archive introduction text

To ensure that people actually read the introduction text, it’s very important to add proper styling to the page. After all, these introductions need to be made with humans in mind first, SEO second. Don’t fall in the trap of styling it the same way as your posts as this might result in visitors not understanding that the text is actually something entirely different from your content. A good example can be seen in the following screenshot:

Conclusion

Based on the information shared in this post, you should be able to make clear archive pages that help your visitors understand the content they are looking at. Additionally, you should be able to create these archive pages for custom post types. We look forward to seeing some of your beautifully styled archive pages.

Read more: ‘Site structure: the ultimate guide’ »

In the past we received a lot questions regarding optimizing your WordPress SEO URL / permalink structure. Questions ranging from whether you should have the category in your permalink structure to the length of your slugs. In this post, we’ll address some of these questions and attempt to give you a better understanding of your permalink structure.

The ideal WordPress SEO URL structure

At Yoast, we recommend using a simple and clear permalink structure. Ending your URL with the post name is the preferred method and optionally you can prefix the post name with the category, which results in one of the two following permalink structures:

/%postname%/

And with the category prefixed:

/%category%/%postname%/

For an added bonus, we recommend adding your main keyword somewhere in the post’s name. When checking out the snippet preview in our plugin, you’ll see your keyword emphasized in the URL if it’s been detected in your slug (see image below).

What about using dates?

Using dates in your URL never had many benefits. When you add dates to your permalink structure, you automatically ‘date’ your posts. People will naturally look for posts with a more recent date, assuming that they contain the best information. However, sometimes older post can hold very valuable information, but won’t get the same amount of clicks due to their age.

Should I use the category in my permalink structure?

If your domain name is nice and short and you use short, yet descriptive category names, you can easily include a category in your permalink structure which can benefit your website, but beware: if you end up with a lengthy slug and category name, it will make sharing the URL more difficult and won’t have much added value in Google.

If you decide to use categories in your permalink structure, make sure that you only select one category per post. For some more information regarding using categories in your permalink structure, I advise you to watch the following video by Matt Cutts.

Optimize your site for search & social media and keep it optimized with Yoast SEO Premium »

Yoast SEO for WordPress pluginBuy now » Info

Should I add .html to my permalink structure?

In terms of SEO and ranking, there is little benefit to keeping the .html extension present in your URLs. However, in the video below, Matt explains that there might be some other advantages to keeping the file extensions present in your permalink structure.

The discussion whether or not you should forcibly add .html (or any other extension) can be ended very quickly: Don’t do it. It won’t help you and if you add certain extensions such as .exe, it can actually hurt your rankings.

My blog is in Google News. Don’t I need numbers in the URL?

The short answer here is: no. Back in the day, Google News required you to use a three digit number in your URLs in order to be included in the News index. A way around this was to have a separate XML sitemap. However, since September 2015, both the three digit unique number and XML sitemap are no longer required.

Should my focus keyword always be the first keyword in the URL?

It might help slightly, but if your focus keyword is present in the first few words, you’ll be fine. Matt explains this at great length in the following video.

How many words should I use in my slug?

In this interview with Matt Cutts, Matt mentions the following regarding the length of your slug:

If you can make your title four- or five-words long – and it is pretty natural. If you have got a three, four or five words in your URL, that can be perfectly normal. As it gets a little longer, then it starts to look a little worse. Now, our algorithms typically will just weight those words less and just not give you as much credit.

Should you change your URL structure for better SEO?

You might expect that the answer to this question would be a simple yes. However, if you’ve been blogging for a while, you might not want to make any drastic decisions. Have you been using dates in your permalink structure for the past few years? Then it might be wise to not switch to a structure without them. If you only just started then switching won’t cause you much harm and might even be a huge beneficial step.
However, if you’re still using the “old style” urls (?p=) then it’d be wise to switch regardless of how long you’ve been blogging. This will greatly improve your blog’s potential to be found in Google’s search results.

If you do decide to get rid of dates in your permalink structure, you can add the following redirect to your .htaccess file (if you’re on Apache) to ensure that the old URL (/yyyy/mm/dd/%postname%/) points to the new one:

RedirectMatch 301 /d{4}/d{2}/d{2}/(.*) https://yoast.com/$1

For Nginx, you can use the following snippet in your site configuration:

location ~ /d{4}/d{2}/d{2}/(.*) {
rewrite ^(.*)$ https://yoast.com/$1 permanent;
}

The perfect WordPress SEO URL

Overall, permalink structures won’t differ much from website to website if done correctly. We advise that you make sure your permalink structure is properly set before avidly writing posts. If you do decide to change your permalink structure over time, make sure you properly redirect users from the old structure to the new one.

Read more: ‘How to change your WordPress permalink structure’ »

WordPress in itself is a decent system but plugins can really take it to the next level. Adding top WordPress plugins can make WordPress into the Swiss Army Knife of websites: just pull out whatever functionality you need for your specific site!

Top WordPress plugins

Many people have asked us for our list of top WordPress plugins. Of course, we’ve written quite a few WordPress plugins ourselves, but the list of great WordPress plugins is much larger than that. In the article below, we list the top WordPress plugins we use ourselves, on this site or other sites we build, analyze & optimize. This list changes over time; this is probably not the last time we updated it. Note: we listed the plugins in random order.

Let’s go.

WP Rocket

It makes the sites you build perform to your expectations, instead of slowly crawling. And yes, I think every site should be cached to get the maximum performance for each and every user, not just when you start hitting social sites. We recommend using WP Rocket for that.

On a side note: we really like WP Rocket, but if your site is hosted by a great company like SiteGround (like ours is) caching and more speed optimization is taken care of. This eliminates the need for a caching plugin.

Google Analytics by Monster Insights

Since we sold our Google Analytics for WordPress plugin to Monster Insights, they have actively developed and improved what we feel is the best plugin for adding and analyzing Google Analytics data right in your WordPress dashboard. Please check out Google Analytics by Monster Insights for yourself.

Nested Pages

If your site grows larger and larger, you might start to feel the need to move around some pages. A decent site structure helps Google to crawl your site in the most efficient way. Nested Pages uses a nice drag-and-drop interface to maintain that site structure.

Optimize your site for search & social media and keep it optimized with Yoast SEO Premium »

Yoast SEO for WordPress pluginBuy now » Info

AMP

We predict a vast increase in the number of sites that are built solely in AMP as a replacement for your regular website. It probably takes some years, but bottom line is that AMP makes your website more user-focused and faster. Prepare your website with this plugins: AMP.

BlogVault

Not having a backup isn’t an option if you rely on your website for your business. For Yoast SEO Care, we rely on Blogvault to create backups of every site we address. For your website, BlogVault creates incremental backups, so your site won’t be overloaded.

Sucuri WAF

It’s no secret that we really like Sucuri’s security solutions for WordPress. Awesome security monitoring and great service. At least install their Sucuri Scanner plugin. But I recommend checking Sucuri WAF and other products and decide what works best for you.

WP Google Authenticator

I wouldn’t even overthink adding this plugin to your WordPress site. It’s no hassle and will add an extra layer of security to your website. An alternative could be Rublon, which works in a similar manner, but we usually use WP Google Authenticator.

Login Lockdown

For an extra layer of security, we recommend installing a plugin like Login Lockdown, that prevents automated login requests from firing a gazillion login attempts. If some IP range does a surplus of attempts, the login function is disabled for all requests from that range. For more details, check Login Lockdown in the plugin repo.

Any image compression plugin

Yes, I would like to name just one. But the truth is that it depends on your website what plugin works best. We have used Smush, tried EWWW. Kraken.io has a plugin and ShortPixel has one. And has anyone tried the premium Imagify? I would really like to see a comparison for these plugins from an independent, image-heavy website. For now: pick one and use it.

Ninja Forms or Gravity Forms

Both are great plugins to create drag-and-drop forms. Both provide an option for conditional logic and are really easy to use. If you have a form on your website, and any website that has a contact page should have a form, I recommend using Gravity Forms or Ninja Forms.

Better Search Replace

Sometimes you need to do a search and replace in your database in order to make things work right, like after a domain migration. There are more plugins that can help you do a search and replace in your database, but we have used Better Search Replace and found it very helpful. As database actions shouldn’t be taken lightly, I recommend always performing a so-called dry run before doing the actual replacement. This plugin allows for that dry run.

No, we’re not leaving our own main plugin out here. Simply because you really need it.

Yoast SEO plugin for WordPress

We believe this is the best SEO plugin out there, in our own humble opinion of course. Install it on all your websites, simply because it takes care of all the SEO hassle and guides your editors into better writing.

To date, this is the only SEO plugin that is developed by SEO experts, where all the others are made by friendly people that are first and foremost software developers. We stay on top of any changes in SEO and make sure these changes are implemented in the way we optimize your website. That is why we feel our Yoast SEO for WordPress plugin should definitely be in this list of top WordPress plugins.

Read more: ‘5 handy WordPress plugins for your blog’ »

If you own a local business, you want to dominate the local search results of your niche. But how do you write content that’ll pop up in those local search results? On what aspects should you focus? In this post, I’ll give tips you can use in order to set up your very own local SEO content strategy.

Local SEO is for local businesses

When you’re aiming to rank for local search results, you want people in a specific neighborhood, village or town to find and visit your website. In most cases, your goal is not to sell directly through your website. Instead, your website probably invites people to come to your store, to your practice or to hire you for your skills. Websites focusing on a local audience are different from those focusing on a national or global audience. In most cases, when visitors are interested in your services, you’ll have a face-to-face interaction with them. Your competitors are the other local entrepreneurs in your specific niche. Perhaps you actually know your competitors.

Keyword research

Which local queries do your audience use when searching for your type of business? You should get inside the heads of your audience and figure out what they’re searching for. For most local search queries, people will actually use the name of the town or village when searching for something. For instance, they’ll type in [hairdresser Amsterdam] or [therapist New Hampshire]. But even if people do not use a local term in their search query, Google will probably recognize their query as a local search intent. Searching for [dentist] in my hometown Wijchen will give me similar (but not identical) results as searching for [dentist Wijchen]. Google will give search results based on your location, if they recognize a query as a local search intent. This also counts for near me searches.

Keyword research can be hard. But since you, as a local entrepreneur, regularly meet with your audience, you have a big advantage. Ask them about their search behavior! Ask your favorite customers what they were searching for when they first visited your website. Or what they would be searching for if they’d be looking for your type of business. That’s valuable information. Don’t stop there, though! Think about other search terms as well (as you might be missing out on an audience).

Read more: ‘Ultimate guide to keyword research’ »

Write ‘local’ headlines

Make sure that the snippet of your web page that Google shows in the search results is optimized for local SEO. You want to do that because Google will know you’re focusing on a local audience, but you also want to do that because your audience will recognize you as a local business.

Your audience is searching for that hairdresser nearby, the bakery around the corner, or that carpenter that’ll come to their house. They’ll click on those results that indicate that they are situated in their proximity. That’s important for local search. Make sure your snippet is clear about where your business is. Make sure the title of your posts and pages is clear about that. Use the Yoast SEO snippet preview to see what your snippet will (probably) look like in the search results.

Make an awesome first impression

Once you’ve convinced people to click on your snippet in the search results, you should convince them to stay on your website (and to not click away). A high bounce rate will eventually result in lower rankings, so you want to make an awesome first impression. When you’re a therapist, a doctor, a hairdresser or a carpenter, you basically have to sell yourself. People want to know who they are dealing with. A good picture is key in making a strong first impression. Your website should reflect your business. If you have a practice or a physical shop, make sure to publish some high quality optimized photos of your business – and perhaps your employees – on your website. Videos are also a great way to present your business to the audience.

Write about your business!

To rank in the local search results, you want to write content related to your local business. A blog is a great content strategy, also for local SEO. Write about what you know! If you’re a carpenter, you should write about your projects. If you’re a dentist, you should write about the most common problems concerning teeth. If you’re a florist, write about your beautiful bouquets! Write about your customers too! If people are exceptionally satisfied, they should surely be able to leave a review on your website. But perhaps their story could also be told in a blog post. Writing about local events is also a great content strategy for local SEO.

In any local SEO content strategy, you should make sure that your blog posts relate to your local community. And of course, optimize your post for the keywords you came up with in your keyword research.

Keep reading: ‘5 tips to get inspiration for your blog’ »

Facebook

Facebook should definitely be part of your local SEO content strategy. People connect with others from all over the world but are most prone to connect with people in close proximity. We interact most with people we also see in real life. If you have a local business, you can benefit from this.

Make sure to keep your local audience informed with lots of Facebook posts. If you can write about your customers (of course check with them first!) that’ll increase chances your audience will share and engage with your posts.

Advertising on Facebook could also be truly profitable. You can narrow down your advertisements to a specific (local) audience. That could be a great method, as costs for local advertisements on Facebook aren’t very high.

Read on: ‘How to optimize your Facebook reach’ »

And: the Yoast Local SEO plugin

Last, but not least: the Yoast Local SEO plugin makes implementing your SEO strategy easier. The local SEO plugin covers all kinds of technical things, like schema.org for local business, you need to be doing in order to rank in the local search results. On top of that, it will help you set up excellent local landing pages, and will allow you to add functionalities you’ll need as a local business, like a store locator, to your website.

Read more: ‘Improve your small business SEO today!’ »

In our quest to speak more of the world’s languages, we’ve now added our mother tongue: Yoast SEO 4.2 premium supports Dutch in its entirety. Our Dutch users can now use all of our innovative features, like Insights and Internal linking suggestions, in their own language. More languages will follow soon.

Optimize your site for search & social media and keep it optimized with Yoast SEO Premium »

Yoast SEO for WordPress pluginBuy now » Info

Insights into more languages

As you might know, the release of Yoast SEO 4.0 saw the introduction of our new Internal linking feature. At that time, this revolutionary tool that helps you build an effective site structure quickly was only available in the English language. Just a couple of weeks ago, we added support for the language of our neighbors to the east: German. Now it’s time for Dutch, the language we know so well.

The text analysis tools of Yoast SEO checks the content of your posts and pages. It actively gives you advice on what to improve. The readability analysis gives you an idea how readable your post is for a regular person. Following the green bullet paradigm, you can see directly if your text is too hard to read. Or if it is littered with passive voice or uses too many words in a paragraph.

To give you correct insights into your writings, we need to fully understand a language. This process takes time, and we’re slowly, but surely adding new languages. After Dutch in Yoast SEO 4.2 premium, it is time to work on support for prominent words and link suggestions in Spanish. Looking past that, we’d like to add support for French.

If you’d like to read up on how we developed the internal linking suggestions tool and the big part language plays, we’d like to recommend this post by our linguist Irene. You can read more about the philosophy behind it in this post by our CTO Omar.

What else is new

Besides adding a new language, we’ve fixed a couple of bugs and made some necessary enhancements. We’ve moved the translations from translate.yoast.com to translate.wordpress.org. To tighten things up, we’ve made sure the settings page and left sidebar are more responsive, so they should accurately scale. In addition to that, we’ve cleaned up the meta box a little and enhanced the styling of the featured image warning screen.

As always, we hope you enjoy this new release. If you need more information, please find the complete changelog on wordpress.org.

Read more: ‘Why you should use Yoast internal linking’ »

Every WordPress website owner occasionally stumbles upon a problem that could probably be fixed in a heartbeat with a handy WordPress plugin. That’s what makes WordPress great, right? I recall a friend of mine asking about the possibility of an answering machine on his website. There’s a plugin for that. Need to add testimonials in an orderly way? There’s a plugin for that as well.

Plugins range from large, like our Yoast SEO plugin (which every website needs) to really small, with almost Hello Dolly-like impact. No matter what the size, plugins can come in really handy, especially when you’re not a developer or you lack the capacity. In this post, I’ll go over a number of plugins that really saved my day in the past!

Optimize your site for search & social media and keep it optimized with Yoast SEO Premium »

Yoast SEO for WordPress pluginBuy now » Info

Auto Post Thumb Pro

Especially webmasters that have had their sites for ages will recognize this issue: a lot of themes you can find in the WordPress theme repo just look a lot better with a post thumbnail, but not all of your posts have that thumbnail. It doesn’t matter if your theme allows for a list of recent posts or if it includes excerpts on your archive pages, chances are that they will include post thumbnails. That just looks so nice, right?

The legacy of your old posts without a thumbnail makes that the alignment of a collection of posts (f.i. in a widget) looks off. It looks messy. In comes Auto Post Thumb Pro. When I wanted to repost Instagram images on a website, this plugin made sure there was a thumbnail for every post. And (re)generated thumbnails for every older post. After installing this plugin, I can use any theme I wanted to use that displayed these thumbnails on (almost) every page.

By the way, if you are looking for a new theme for your blog, I can recommend Anders Noren’s themes. I’ve used a few and really like the clean designs and easy-to-use setup.

Easy Custom Auto Excerpt

One of the things we come across in our SEO consultancy is duplicate content caused by displaying entire posts on taxonomy pages (like category pages). WordPress has plenty of ways to display excerpts instead of full posts. Usually, one of the requirements is using a <!-- more --> tag in your posts. Include that tag by clicking the icon in the Insert More tag | Handy WordPress pluginsimage, located at the styling options on the Edit pages in WordPress. If you feel that that’s too much of a hassle, the Easy Custom Auto Excerpt plugin will help you out. It’s one of those plugins that you install, configure and forget about, simply because it works.

The Easy Custom Auto Excerpt plugin allows you to automate that more tag by, for instance, adding it after a number of characters or after the first (or first two) paragraphs. It allows you to do some basic tweaking of how that excerpt looks like (alignment of the thumbnail for instance). In the premium version, you can also fine tune the Read more button – a feature that convinced me to purchase a license – and disable excerpts for certain post types (like posts that just contain an awesome photo). Of course, this depends on the type of blog/site that you have. Go see for yourself how this handy WordPress plugin can help you out.

Responsive Lightbox

What to say about this handy WordPress plugin? If you’re a bit like me, you installed, removed and re-installed your share of lightbox plugins. The horror! They either don’t work out of the box, add fancy stuff to that pop-up or simply ignore your galleries. And how about those previous/next buttons that are too small to click. Not to start about how crappy things look on a mobile device, right?

Responsive Lightbox | Handy WordPress plugin

I found Responsive Lightbox to be a nice solution. If you are sick and tired of your current lightbox plugin, install this plugin and see for yourself.

Simple Custom CSS

Sometimes you want to do just a little design tweak and not worry about it being overwritten the next time you update your theme. You have two options:

  • Create a child theme, which might be a bit of a hassle for that tiny little tweak, or
  • simply add some lines of CSS code via this little plugin: Simple Custom CSS.

It does just that. I really like it. There are more handy WordPress plugins that do this, but I found this one to be both the less bloated (I just want to add CSS, not learn CSS) and the one that works without the constant need to add !important to my declarations.

Yoast Comment Hacks

Last but not least, I’d like to add this little gem Joost developed: Yoast Comment Hacks. If you have a WordPress blog and receive a lot of comments, use this plugin to add some smart extras to your comment maintenance toolkit. Among others, it allows you to thank first-time commenters by redirecting them to a thank you page. It also allows you to set a minimum comment length, for instance. Go check for yourself how this little handy WordPress plugin can make maintaining your comments just a bit easier!

I’d love to hear about your favorite handy WordPress plugins in the comments!

Imagine, you created a website a few years ago. It’s still out there, but you didn’t make any changes or updates ever since. So, your site probably needs a major – SEO – update. If you have a static website, you might consider to move your site to a CMS, like WordPress. What’s the best choice? I’ll help you out and explain in which case it would be better to start all over using WordPress.

In this Ask Yoast, we’ll answer a question from Richard Millstein:

“My website was created 10 years ago in HTML, it needs a major SEO update and has other issues. I think it would be better to start over using WordPress. What do you think?”

Check out the video or read the answer below!

Optimize your site for search & social media and keep it optimized with Yoast SEO Premium »

Yoast SEO for WordPress pluginBuy now » Info

Major SEO update

Read this transcript to learn more about choosing a CMS or not, when your website needs a major SEO update:

“Well, you get plus points for using WordPress, of course, no questions asked. Also, if your website was created 10 years ago and not much has happened to it since, then, you really need to think about, “Okay, what will I do once I re-create it? “Will I not do anything with it again for 10 years or will I keep updating it?”

If you want to keep updating it, then yes, you should really go for WordPress, because that makes that an awful lot easier. Of course, with WordPress you also get Yoast SEO and a lot of other advantages or things that you don’t have to build, that will work automatically for you. So, yes, you should probably do that.

The funny thing is, the output from WordPress will still be HTML, so you could probably get your theme of your site to look like your old site very easily. If you just hire someone to copy that into a WordPress theme and maybe do some optimizations as they do that. So, it could be a very simple job on Upwork or some other rental site, where you just go in and say “Hey I want you to change this theme to a WordPress theme and then input my content in it.” That could be a very simple job for someone and might save you an awful lot of time.

Good luck!”

Ask Yoast

In the series Ask Yoast we answer SEO questions from followers! Need help with SEO? Let us help you out! Send your question to ask@yoast.com.

Read more: ‘WordPress SEO’ »

A few weeks ago, we added Yoast internal linking to Yoast SEO Premium for English. We released the same feature for German earlier this week. In this post, I’ll explain how the earlier released Insights laid the groundwork for this feature, how we compose the list of linking suggestions, and why Yoast internal linking is currently only available for a limited set of languages.

So what does the internal linking tool do? While working on your post, our internal linking tool will give you suggestions on which posts you could consider linking to because they are about related topics. Linking to these posts will help you create a better site structure.

Insights

To know which posts we should show in the Yoast internal linking meta box, we first need to find out what all your posts are about. For this, we use the data we’ve already gathered for the Insights box, that you’ll find beneath the content analysis:

insights in yoast seo premium

But how do we get to this list of five words and word combinations? Let’s take a look at the steps we take when we analyze a post for its most prominent words.

Optimize your site for search & social media and keep it optimized with Yoast SEO Premium »

Yoast SEO for WordPress pluginBuy now » Info

Step 1: Getting all relevant single words

First, we want to know which relevant 100 single words are most frequently used in the post. We therefore start by making a list with all words from the text. Next, we remove words like ‘the’, ‘you’ and ‘to’ from this list. Articles, pronouns, prepositions and other function words are simply too widely used to be truly relevant to a text. If we wouldn’t filter out words like these, all posts would end up with roughly the same prominent words. Once we’ve removed all function words, we save the 100 most frequent single words and move on to the word combinations.

Step 2: Getting all relevant word combinations

Combinations of two or more words are often more relevant and information-rich than single words, because they are more specific. That is why we also look for the most relevant two to five-word combinations. We filter these combinations as well, because combinations like ‘headlines to be’ and ‘to rank and your’ are useless. We only want to keep meaningful combinations like ‘optimize your site structure’ and ‘writing clickbait titles’.

Step 3: Filtering on word density

Once we’ve retrieved and filtered all one to five-word combinations, we filter out everything with a word density of over 0.03. This means we remove all combinations from the list that comprise over 3% of the entire text. The rationale behind this is that words that are too frequent are seldom genuinely relevant, because they tend to be non-specific. This also serves as an extra safety net to catch all function words that we might have forgotten to remove during the previous steps.

Step 4: Calculating relevance scores

The final step is calculating which words and word combinations are most relevant to the post. Based on trial and error, we came up with a formula that uses the frequency, length and percentage of relevant words of the word combinations that does just this.

Length bonus

We start with determining the length bonus. As shown in the table below, the longer a combination is, the higher is the length bonus it receives. This means longer, more specific word combinations will eventually get a higher relevance score than shorter, less specific combinations.

Word combination length Length bonus
Single word 0
Two-word combination 3
Three-word combination 7
Four-word combination 12
Five-word combination 15

Relevant word proportion

We also calculate which proportion of each word combination is on the list of the 100 most frequent words. This is the list we drew up during Step 1. For example, if one word of a four-word combination is also in the top 100 frequent words, the calculated proportion would be 0.25. The idea behind this is that the more relevant words a combination contains, the more relevant the combination probably is.

Multiplier

Next, we calculate the so-called multiplier using the following formula: 1 + relevant word proportion * length bonus. For a four-word combination with a relevant word proportion of 0.25, this would result in a multiplier of  1 + 0.25 * 12 = 4.

Relevance score

Finally, we calculate the actual relevance score by multiplying the number of occurrences of each word combination by its multiplier. If the four-word combination of the above example would have a frequency of 3, its relevance score would be 3 * 4 = 12. Once we’ve calculated all relevance scores, we sort the words and word combinations from the highest to the lowest relevance. To keep the Insights box clear of clutter, we only show the top 5. However, we save a maximum of 100 words and word combinations for further use. 

Optimize your site for search & social media and keep it optimized with Yoast SEO Premium »

Yoast SEO for WordPress pluginBuy now » Info

Yoast internal linking

Once we have collected the most prominent words for all your posts, it’s time to compare them. To do this we take the top 20 prominent words of each post. However, for the sake of simplicity, I will illustrate the process with only five prominent words per blog.

Imagine you’re writing a post about Twitter Analytics. You’ve also written posts about Twitter Cards, homepage SEO and Instagram Analytics. You can find the top 5 prominent words from these blogs in the table below.

Twitter Analytics Twitter cards homepage SEO Instagram Analytics
Twitter Analytics Twitter cards homepage SEO Instagram Analytics
Twitter Twitter business name or brand Instagram
analytics Twitter account homepage followers
Twitter analytics dashboard account optimize your homepage analytics
Twitter cards data site name engagement rate

The more overlapping prominent words a post has with the current post, the higher its position will be in the list. Because the post about Instagram Analytics shares the prominent word ‘analytics’ with your post about Twitter Analytics, that post will show up in the linking suggestions. However, the blogs about Twitter Analytics and Twitter Cards have two overlapping prominent words: ‘Twitter Cards’ and ‘Twitter’. As a result, the post about Twitter Cards will end up higher in the list. Lastly, the post about homepage SEO doesn’t have any prominent words in common with the post about Twitter Analytics. For that reason we won’t suggest it to you.

We’ve decided to limit the number of suggested posts to twenty, because we don’t want to overwhelm you. Only the twenty posts that share the most prominent words with your post will be shown in the meta box. Check out what the result looks like in this video!

Language support

Now that we’ve built the above framework, we stand before the time-consuming task of making the linking suggestions available for languages other than English and German. Not only do we have to compose lists of function words for each individual language, but we also need to adjust the filtering for each of them. This has to do with word order differences. In English, for example, one describes an action with a verb followed by an object: eating cookies. However, in German, the object comes before the verb: Kekse essen (literally: cookies eat). As a result, we want to filter out English word combinations ending with a verb (he eats), but German combinations beginning with a verb (isst Kekse, literally: eats cookies).

The future of link suggestions

We’re happy to announce that we’ve released internal linking for German. But, maybe more importantly, we’d also like to let you know that you can help to make Yoast internal linking available for your own language! Please contact us if you’d like to help.



Read more: ‘Why you should use Yoast internal linking’ »

There are several reasons to move your website to a new domain. Maybe you’ve gained access to a much stronger domain. Perhaps you’re changing direction or you’re rebranding. Or you’d like to start over with a new name and a new site. Assuming you have a good reason for moving your site to a new domain – other then “this name just sounds catchier” – there are some things to consider concerning security and SEO when moving your website to a new domain.

In this Ask Yoast, we’ll answer a question from Anbu Devilhunter:

“If I move to a new domain are there any security measures I should take?

Check out the video or read the answer below!

Optimize your site for search & social media and keep it optimized with Yoast SEO Premium »

Yoast SEO for WordPress pluginBuy now » Info

Security measures new domain

Read this transcript to learn more about SEO and security measures when you’re moving your site to a new domain:

“Well, yes. You should make sure that you have your old domain and keep it forever, so that you can keep the redirects from that old domain to your new domain. Because otherwise, at some point, someone else is going to use that old domain and you’ll lose your redirects. So you’ll lose a lot of links pointing to your site.

Any other security measures? Well, yes, everything that you need to do to a good domain. But I’d suggest talking to our friends at Sucuri, and see what they can do for you. We run their web application firewall in front of everything we do and I would suggest you do too.

Good luck!”

Ask Yoast

In the series Ask Yoast we answer SEO questions from followers! Need help with SEO? Let us help you out! Send your question to ask@yoast.com.

Read more: ‘WordPress Security’ »