Yoast SEO Changelog

For an overview of all changes specific to the Yoast SEO Premium plugin, check out the Premium changelog.


Release Date: July 8th, 2020

Yoast SEO 14.5 is out today! In this release, we made some changes regarding our use of XML sitemaps. We decided to disable the new WordPress core XML sitemaps in favour of our own. Also, we fixed a number of bugs. Read more about those changes in our release post!


  • Disables the WP Core sitemaps as introduced in WordPress 5.5.
  • Adds an abstract class to easily add dynamic blocks in Yoast SEO / add-ons.


  • Fixes a bug where the SEO title and meta description for posts that have a custom title and/or description would not be displayed in the posts overview.
  • Fixes a bug where the WordPress dashboard was slower for very large sites, by caching the number of unindexed posts, terms and post type archives.
  • Fixes a bug where inline link functionality in custom blocks could be missing.


Release Date: June 23rd, 2020


  • Fixes a bug where existing links were no longer editable with Yoast SEO active.
  • Fixes a bug where the editor wouldn’t remember rel values set on a link after refresh.


Release Date: June 23rd, 2020

Sometimes, you have releases that start out small and end up with a substantial improvement. Yoast SEO 14.4 is one such release. Initially planned as a bug fix release, this turned into something that markedly improves the publishing workflow in WordPress. Plus, you can now mark your external links as nofollow or sponsored. You see, Yoast SEO 14.4 is a chockfull release! Read more about those changes in our release post!


  • Fixes a bug where replacement variable values would break the Google Preview and output a PHP notice on the front end if they were a serialized array string.
  • Fixes a bug where a property that was changed from private to public on WPSEO_Schema_Article would lead to a backward compatibility break.
  • Fixes a bug where the site logo would not be output in the schema when a CDN was used for images. Props to gr8shivam
  • Fixes a bug where the Facebook Debugger link was outdated. Props to eliorivero
  • Fixes a bug where a lot of delete queries would be performed after clearing all indexables from the database.
  • Fixes a bug where the indexables indexing warning would be visible to users with non-admin roles.


  • Adds SEO insights to every step of the publishing flow:
    • Adds the readability and SEO score to the document sidebar with the possibility to quickly open the Yoast sidebar.
    • Adds the readability and SEO score to the publish checks. Gives reassurance or a call to action to further optimize the content.
    • Adds social sharing buttons to the post publish actions to enable easy sharing on Facebook and Twitter.
  • Adds the possibility to add rel keywords nofollow and sponsored to individual links in the block editor for WordPress versions 5.4 and above.


  • Adds headers to the main plugin file for the minimum supported WordPress version and minimum supported PHP version. WordPress will not activate the plugin anymore if incompatibilities are found. Props to spacedmonkey


Release Date: June 9th, 2020

In every release of Yoast SEO, we fix bugs and find other ways to enhance our code. For instance, we’re always working on quality assurance, code style and other behind the scenes work. In Yoast SEO 14.3, you’ll find many of these improvements plus some bugfixes. Read more about those changes in our release post!


  • Fixes a bug where the FAQ schema list item’s position would start at 0 instead of 1.
  • Fixes a bug where the filters wpseo_metadesc and wpseo_title weren’t called with the right argument, which could lead to errors.
  • Fixes a bug where our global CSS variables could conflict with global CSS variables of themes.


Release Date: May 26th, 2020

In today’s release, we’ve fixed several issues with breadcrumbs. One of these bugs turned the order of breadcrumbs on its head, which is not something we like. Things should work as expected now. We’ve also changed how we check if a focus keyphrase was used before. We currently run this against our indexable table, making the process more efficient. Read more about those changes in our release post!


  • Fixes a bug where breadcrumbs would be saved in reversed order.
  • Fixes a bug where setting Security: no advanced settings for authors to off would remove the advanced settings tab for all users.
  • Fixes a bug where replacement variables would not be replaced when using the deprecated WPSEO_Frontend output without echoing it.
  • Fixes a bug where our select2 styling would overwrite the select2 styling of other plugins.
  • Fixes a bug where JavaScript could be executed via the error message on the Social section in the Yoast Settings. As this potentially dangerous data is not saved, abusing this was not possible.


  • Optimizes the query used to check if a focus keyphrase has been previously used, by running it against our indexable table.


Release Date: May 13th, 2020

Despite weeks and weeks of testing Yoast SEO 14.0, there were still some people running into issues. In Yoast SEO 14.1, we’re improving things to help stabilize the plugin. Read more about those changes in our release post!


  • Fixes a bug where the help text about Yoast Columns would be shown in the Help Tab on post overviews when there were no Yoast Columns. Additionally, the help text has been refined to only show information about columns that are actually shown. Props to glebkema.
  • Fixes a bug where an empty breadcrumb would be output when a taxonomy was set to have a post type archive in its breadcrumb when that post type didn’t have an archive.
  • Fixes a bug where a part of the breadcrumb path was missing on search result pages.
  • Fixes a bug where an error would be thrown and indexing could not be completed due to posts or terms having themselves as a parent or grandparent.
  • Fixes a bug where the SEO data was unnecessarily being indexed when a non-public term or taxonomy was being saved.
  • Fixes a bug where the SEO data of an object would be indexed twice during the indexing process when it was an ancestor of another object in the same REST request.
  • Fixes a bug where huge log files would be generated if PHP was configured to also log the arguments in debug backtraces.
  • Fixes a bug where indexing would continue even though it had already indexed all objects.
  • Fixes a bug where term indexing would keep going on forever due to plugin conflicts.
  • Fixes a bug where primary terms of a custom taxonomy where not being reflected in the breadcrumb.
  • Fixes a bug where the URL in the schema breadcrumbs of search pages would be missing.
  • Fixes a bug where the wpseo_remove_reply_to_com filter was not working.
  • Fixes a bug where no metadata would be output on the frontend when the tables necessary for the indexables could not be created
  • Fixes a bug where the indexing notification would be shown on the WordPress updates page when updating themes or plugins.
  • Fixes a bug where the yoast index --network WP CLI command would throw an error when the database migrations for one or more subsites on a multisite environment had not been run yet.
  • Fixes a bug where no or incorrect breadcrumbs where shown for 404 pages, author archives and date archives. Props to amitsidhpura.


  • Moves the text link counter notification from the SEO Dashboard to the WordPress’ Site Health.
  • Makes the “You’re blocking access to robots” notification site-wide.
  • Improves the copy for the “cannot fetch” response of the Ryte health check.
  • Removes the notification containing the message that you should check your post type archive settings when these are possibly reset to their defaults in Yoast SEO 7.7 or 7.8.
  • Reimplements the Advanced Settings tab in React.
  • Improves the ordering of items in XML sitemaps to match SQL standards. Props to rafaelbernard.
  • Improves the transition word assessment for Hungarian. Props to @Zsoru.
  • Adds the --reindex flag to the indexables WP CLI command to remove all existing indexables and then reindex all content.
  • Adds the wpseo_robots_array filter to enable the filtering of the robots array used for the robots meta tag output.
  • Adds the wpseo_shutdown_indexation_limit filter to enable the filtering of the number of objects that can remain unindexed. These remaining objects will automatically be indexed without needing any user interaction as a shutdown function.
  • Adds debug information to the error that is shown when Yoast SEO was unable to create the necessary database tables.
  • Optimizes finding attachments by URL. This addresses a primary cause of higher server load issues occurring since 14.0.
  • Adds a warning to the metabox that is shown when a user enters a focus keyphrase that contains more than 191 characters.
  • Makes the copy of the indexing setting in the advanced tab consistent between all contexts (post, page, category, etc.).
  • Adds the term_id for terms in the object that can be filtered with the wpseo_breadcrumb_links and wpseo_breadcrumb_single_link_info filters. Props to amitsidhpura.
  • Adds a time estimation to the indexing notification based on the amount of objects that need to be indexed.
  • Adds a button to the indexing notification to hide it for a week when more than 2500 objects need to be indexed.
  • Improves the notification that is shown when there were problems creating the necessary database tables.


  • Deletes the unnecessarily created indexables of private taxonomies.


Release Date: April 30th, 2020


  • Fixes a bug where robots meta values defaulted to 0 instead of null because of a bug in WPDB. This could result in incorrect values for `noindex`, `nofollow` , `noarchive`, `noimageindex` and/or `nosnippet`. In order to purge the wrong data, we need to truncate our tables again. This means you will have to go through the indexing process again. We’re very sorry. For sites with more than 10,000 posts, we advise using the WP CLI command to do the indexing on the server.


Release Date: April 30th, 2020


  • Fixes a bug where running the migrations could cause fatal errors on sites where plugins are installed remotely. Some remote plugin installers don’t remove files that are removed in an update. Since our migration runner goes through all migrations on the server, this could lead to fatal errors.
  • Fixes a bug where the pre_get_document_title filter could be skipped when other plugins were using this filter as well.
  • Fixes a bug where an error would be thrown when the name of an indexable table had been converted to a different case.
  • Fixes a bug where a taxonomy parent would not be present in the breadcrumbs even though it was set in the breadcrumbs settings.


  • Adds a missing index to the new indexables table. Props to @pagelypete.


  • Adds the wpseo_frontend_presentation filter that can be used by third-party plugins to easily alter all our meta output with 1 single filter.


Release Date: April 29th, 2020

Because we’ve changed the underlying framework of our Indexables technology, we’ve chosen to rebuild the table. This means you will have to go through the indexing process again. We’re sorry. For sites with more than 10,000 posts, we advise using the WP CLI command to do the indexing on the server.


  • Fixes a bug where a fatal error would be thrown when a title contained more than 191 characters.
  • Fixes a bug where a fatal error would be thrown when a focus keyphrase contained more than 191 characters.
  • Fixes a bug where a fatal error would be thrown when search engines were disallowed from indexing the site.
  • Fixes a bug where a fatal error would be thrown on WooCommerce installations when the wpseo_metadesc filter was called with only 1 argument.
  • Fixes a bug where a fatal error would be thrown when using the WPSEO_Frontend class to get the meta description.
  • Fixes a bug where a fatal error would be thrown when WPSEO_Frontend or WPSEO_Breadcrumbs was called before the init action.
  • Fixes a bug where a non-object property retrieval notice would be thrown when the site’s content was being indexed.
  • Fixes a bug where a trailing slash would be added to canonical URLs and some rel="prev" URLs, even when the permalink structure settings didn’t contain that trailing slash.
  • Fixes a bug where a double breadcrumb would be shown on home pages.
  • Fixes a bug where the indexing would continue indefinitely under specific circumstances.


  • Removes all usages of PDO and mysqli directly and uses wpdb everywhere. This should prevent a lot of errors for database installations that have different encodings or configurations than what is generally seen.


Release Date: April 28th, 2020


  • Fixes a bug where a fatal error would be thrown when a breadcrumb title was too long.
  • Fixes a bug where a fatal error would be thrown when DB_CHARSET was not defined.
  • Fixes a bug where a fatal error would be thrown when breadcrumbs were rendered in the admin.
  • Fixes a bug where a fatal error would be thrown when the Yoast migrations table did not have a primary key.
  • Fixes a bug where a fatal exception would be thrown when building an indexable failed.
  • Fixes a bug where the order of the breadcrumbs was incorrect when more than 3 nested taxonomies were used.
  • Fixes a bug where HTML tags would no longer be allowed in the breadcrumbs.
  • Fixes a bug where no title would be shown in the Yoast indexing status modal.
  • Fixes a bug where changes made through the wpseo_robots filter would not be shown in the googlebot and bingbot meta tag output.


  • Yoast SEO needs to have the right to create a database index. If you have restricted the creation of database indexes on your setup, please make sure to temporarily allow Yoast SEO to create indexes before updating.


Release Date: April 28th, 2020

Today is a special day. Today, a project we’ve been working on for a year sees the light of day. Yoast SEO 14.0 rewrites the playbook on how a WordPress SEO plugin can work. Thanks to an approach we call indexables, we bring you a much faster experience and a new foundation that helps us get ready for an exciting future! Read more about this release in our release post!


  • Fixes a bug where the Open Graph image would be set as Twitter image when Open Graph was disabled.
  • Fixes a bug where the article:publisher meta tag would not contain the Person’s Facebook account if the Knowledge Graph was set to Person.
  • Fixes a bug where no title meta tag would be output when no post or page-specific title was specified.
  • Fixes a bug where the date archive description from the Search Appearance settings would not be used for the og:description meta tag.
  • Fixes a bug where a notice would be thrown when a field in the FAQ or HowTo block was left empty.
  • Fixes a bug where the Help Scout beacon was aligned to the right on settings pages on installations with a right-to-left language.
  • Fixes a bug where UTF-8 encoded urls were not always readable in the snippet preview.
  • Fixes a bug where the embedding of posts on LinkedIn was broken.


  • Adds a notification that appears when your content hasn’t been fully indexed yet.
  • Adds a button to the SEO > Tools page to index all your content.
  • Adds a feature toggle to disable the headless REST routes.
  • No longer outputs the og:type meta tag on 404 pages.
  • No longer outputs a twitter:title, twitter:image and/or twitter:description meta tag when there is already an og:title, og:image and/or og:description meta tag specified in the frontend output and they’re not specifically set to something else.
  • No longer outputs an article:section and article:tag meta tag as none of the Open Graph consumers seems to use it.
  • No longer outputs an og:updated_time meta tag as it was the same as article:modified_time and all Open Graph consumers seem to prefer that.
  • No longer outputs an og:image:secure_url meta tag as it was the same as og:image and all Open Graph consumers seem to prefer that.
  • Strips all HTML tags from text fields in the schema output.
  • Adds Term hierarchy as a taxonomy snippet variable.
  • Uses the Gravatar image as a fallback for author archive’s og:image and twitter:image.
  • Improves the way gallery images are retrieved . Props to stodorovic.
  • Bing has added support for the same opt-in meta robots values as Google has, see their announcement post. We have decided to opt-in users of Yoast SEO by default to Bingbot crawling.
  • No longer removes the default robots meta values.


  • Deprecates the wpseo_twitter_taxonomy_image and wpseo_twitter_metatag_key filters.
  • Deprecates the wp_seo_get_bc_ancestors filter. Developers should use the wpseo_breadcrumb_links filter instead to add and/or replace breadcrumbs.
  • Deprecates the wpseo_opengraph and wpseo_twitter actions.
  • Adds the following filters:
    • wpseo_debug_markers, which allows users to disable the debug markers.
    • wpseo_frontend_presenter_classes, which enables the filtering of presenters.
    • wpseo_frontend_presenters, which enables the filtering of presenter instances.
    • wpseo_googlebot, which enables the filtering of the googlebot meta output.
    • wpseo_og_article_publisher, which enables the filtering of the article publisher’s Facebook URL.
    • wpseo_og_locale, which enables the filtering of the Open Graph locale.
    • wpseo_post_indexation_limit, which enables the filtering of the amount of posts indexed during each indexing pass.
    • wpseo_post_type_archive_indexation_limit, which enables the filtering of the amount of post type archives indexed during each indexing pass.
    • wpseo_term_indexation_limit, which enables the filtering of the amount of terms indexed during each indexing pass.
    • wpseo_post_types_reset_permalinks, which enables the filtering of the post types to reset permalinks for.
    • wpseo_public_post_statuses, which enables the filtering of the list of public post statuses.
  • No longer calls the third-party thematic_doctitle and woo_title filters.
  • Adds the /wp-json/yoast/v1/get_head endpoint to get the our head for an URL. This endpoint takes a single parameter, url which should be the absolute URL of the page to get the head for.
  • Removes the minimum and maximum size requirements when outputting og:image meta tags.


Release Date: April 14th, 2020

While we’re working on getting Yoast SEO 14.0 ready for the world, you can enjoy today’s release of Yoast SEO 13.5. Read all about Yoast SEO 13.5 in our release post!


  • Fixes a bug where a fatal error would be thrown when saving a post while the type was no longer WP_Post due to filtering.
  • Fixes a bug where .xsl site map files would not be cached correctly.


  • Sets minimum supported WordPress version to 5.3.


Release Date: April 1st, 2020


  • Replaces the use of the deprecated category_link filter by term_link. Props to Chouby


Release Date: March 31st, 2020

In Yoast SEO 9.0, we launched an innovative new way to analyze your English language text using word forms. In Yoast SEO 10.1, we added word form support for the German language. Today, we’re glad to announce word form support for Dutch. You can read why this is such an awesome addition in our 13.4 release post!


  • Fixes a bug where the host part of URLs could contain reserved characters, like spaces and brackets. Props to stodorovic.
  • Fixes a bug where form fields were validated inconsistently.


Release Date: March 17th, 2020

Our current string of releases focusing on improving our code is continuing with Yoast SEO 13.3. In this release, we have a Schema structured data addition and several improvements to how Yoast SEO handles URLs. Read on in our 13.3 release post!


  • Makes sure all URL fields show an unencoded URL after saving, even when the user input was encoded.
  • Requires all URLs in URL input fields to begin with either ‘/’ or ‘http(s)’. Props to stodorovic.
  • Adds a potentialAction entity to the WebPage and Article Schema pieces.


  • Fixes a bug where social URLs containing international characters could not be saved. Props to stodorovic.
  • Fixes a bug where encoded characters would be stripped from canonical URLs. Props to stodorovic.


  • Changes the cURL Health Check category from recommended to critical.


Release Date: March 3rd, 2020

In Yoast SEO 13.2, you’ll find a number of checks moved to the WordPress Site Health tool. Site Health was introduced in WordPress 5.2 as a way to help site owners and managers get a sense of how their site is doing, technically speaking. Find out more about these changes in our 13.2 release post!


  • Adds the capability to view Site Health to the SEO Manager role.
  • Adds a cURL minimal version check to Site Health.
  • Moves the “The postname is present in your permalink”-notification from the SEO Dashboard to Site Health.
  • Moves the “You are using the default WordPress tagline”-notification from the SEO Dashboard to Site Health.
  • Moves the “Your site is indexable”-notification and widget from the SEO dashboard to Site Health.
  • Improves the usability of the “Your site is indexable” Site Health check.
  • Adds error handling for the “Your site is indexable” status request.
  • Adds an ID to the FAQ sections in the Schema output.


  • Removes the “Check headers”-tool from the Yoast Admin bar menu, as it is no longer available.


Release Date: February 18th, 2020

Yoast SEO 13.1 is out today! In this plugin, you’ll find several fixes and enhancements, mostly focused at improving our Schema.org structured data implementation. Learn more about the latest versions of Yoast SEO in our 13.1 release post!


  • Fixes a bug where the HowTo schema name was incorrectly set to the page title.
  • Fixes a bug where the “force rewrite titles” option would remove the title tag in svg tags. Props to stodorovic


  • Sets the Schema HowTo name and Article headline to the post title with a fallback to “No title”.
  • Adds the inLanguage property to the schema CreativeWork pieces.
  • Removes a duplicate directory from the composer autoload classmap configuration. Props to szepeviktor
  • Improves the copy for the paginated comments Site Health check.


  • Removes the Search Console item from the admin menu and the toolbar menu.


Release Date: February 4th, 2020

Today, we’re releasing Yoast SEO 13.0. This release is one in a series of releases focusing on improving our code and fixing issues — most of them behind the scenes. Read more about those changes in our 13.0 release post!


  • Hides the Facebook settings when Open Graph is disabled.
  • Adds a success state to the paginated comments Health Check. This means the paginated comments check will also be shown when the paginated comments are set up correctly.


Release Date: January 21st, 2020


  • Fixes a bug where a notification would be shown that Gutenberg was outdated when the latest version of Gutenberg was already installed.


Release Date: January 21st, 2020


  • Renames the ‘Snippet preview’ to ‘Google preview’.
  • Replaces the Google preview mode switcher toggle with radio buttons.


Release Date: January 15th, 2020


  • Fixes a bug where the Yoast SEO metabox would not be shown on custom post types and taxonomies when the settings of our plugin were never saved before.
  • Fixes a bug where the default titles for custom post types and taxonomies were not shown in the Search Appearance settings when the settings of our plugin were never saved before.


Release Date: January 7th, 2020

Welcome to another year of helping you achieve your goals with your site! Today, it’s time for the first in a long line of releases planned for 2020: Yoast SEO 12.8. In this release, you’ll find a number of bug fixes and performance enhancements. Find out more about this release in our 12.8 release post!


  • Fixes a bug where clicking the notification center buttons would result in an incorrect icon and a misplaced focus style for the dismiss and restore buttons.
  • Fixes a bug where create and update actions would be done twice on multisite environments in combination with MultilingualPress.
  • Fixes a bug where an empty page title would cause the breadcrumbs schema to set a wrong url.
  • Fixes a bug where author archives for authors without post would show up in the search results, even though the “Show archives for authors without posts in search results?” option was enabled.
  • Fixes a bug where the styling was missing from admin error notices in WordPress 5.3.
  • Fixes a bug where the results of the images alt attribute SEO assessment in the Classic Editor were incorrect when the image did not have an alt attribute but did have a title attribute.


  • Optimizes the options retrieval processes. Props to Alex Bouma for his testing and suggestions.
  • Adds the possibility to declare an identifier when integrating with the Schema output.


  • Fixes the documentation in the Schema HowTo file. Props to timvaniersel.
  • Fixes the documentation in the Breadcrumbs file. Props to alfiosalanitri.
  • Moves the paginated comments notice from the dashboard to WordPress’ Site Health screen.


Release Date: December 12th, 2019


  • Fixes a bug where the metabox would be broken when a relative URL was configured as WP_CONTENT_URL. Props to FPCSJames.


Release Date: December 10th, 2019

Yoast SEO 12.7 is out today — signaling the last release of 2019. This release is all about cleaning up and fixing bugs. Since we have a two-week release schedule, we can quickly respond to any bug we might find. Find out more about this release in our 12.7 release post!


  • Fixes a bug where sub-sitemaps were rendered for non-public custom post types. Props to @stodorovic.
  • Fixes a bug where nested gallery images were not included in the image count in the sitemap. Props to @stodorovic.
  • Fixes a bug where the notification center ‘dismiss’ and ‘restore’ buttons had no focus style.


  • Improves security by adding output escaping.


Release Date: November 28th, 2019


  • Removes the Black Friday banner.


Release Date: November 27th, 2019


  • Fixes a bug where a fatal error would be thrown when Yoast SEO was used in combination with another plugin or theme containing a class named Date_Helper.
  • Fixes a bug where a fatal error would be thrown when an empty string would be passed to the WPSEO_Date_Helper->format method. Props to @mpolek.


Release Date: November 26th, 2019

In Yoast SEO 12.6, we’re activating our new beacon for help documentation. This tool helps answer the questions you might have about using Yoast SEO. It’s easy to use and very friendly. Just hit that big purple question mark and search! Other improvements in Yoast SEO 12.6 includes a number of fixes and enhancements. Find out more in our 12.6 release post!


  • Adds a description property to the schema’s WebSite node.
  • Removes the Site-wide default: None and the None options from the Meta robots advanced field in the metabox.
  • Introduced a HelpScout beacon as a replacement for the Help Center.


  • Fixes a PHP Warning when using an empty string in the OpenGraph frontend output. Props to @ChrisThompsonTLDR.
  • Fixes a bug where the time in the article:published_time, article:modified_time, and og:updated_time meta tag output and in the datePublished and dateModified schema output was incorrect in WordPress 5.2.


  • Sets the minimum required WordPress version to 5.2, and the minimum PHP version to 5.6.20.
  • Adds a notification to encourage Internet Explorer 11 users to use another browser as we are no longer supporting that browser.


Release Date: November 21st, 2019


  • Fixes a bug where the time in the article:published_time and article:modified_time meta tag output and in the datePublished and dateModified schema output was incorrect.


Release Date: November 13th, 2019

These last couple of months here at Yoast SEO HQ have all been about building better things. Behind the scenes, we’re making good progress at getting our flagship plugins ready for the future. While we’re busy building the future, we also stick to our regular two-week release schedule, which means it’s time to introduce Yoast SEO 12.5. Find out more in our 12.5 release post!


  • Fixes a bug for terms where keywords and snippet preview data would be synced across all languages in a MultilingualPress multisite environment.
  • Fixes a bug where the visually hidden text in the snippet preview was misplaced.


  • Deprecates the Google Search Console.


Release Date: October 29th, 2019

After releasing several updates to our snippet preview in previous releases, Yoast SEO 12.4 now shows an image for your post in the mobile snippet preview, just like Google would. We have several other improvements and fixes for you in store with Yoast SEO 12.4. Find out more in our 12.4 release post!


  • Adds “schema” as keyword to the structured data blocks to make them show up for that search term in the block search as well.
  • Adds an image to the mobile snippet preview for posts and terms.
  • Changes the readability score for empty content from “Needs Improvement” with a red icon to “Not Available” with a gray icon. Props to emilyatmobtown.
  • Updates the URLs used to ping Google and Bing about the location of a sitemap. Props to @emilyatmobtown.
  • Makes the notice about running an old WordPress version more specific by showing the installed WordPress version and the latest WordPress version.
  • Adds information about enabling Open Graph to the Twitter settings. Props to @stevenfranks.


  • Fixes a bug where no Twitter and Facebook image could be set for attachment pages.
  • Fixes a bug where a nested paragraph would be present in the “noindex” metabox warning.
  • Fixes a bug where Google+ data would still be exported in the settings export.


Release Date: October 15th, 2019

While some of our checks are independent of languages, Yoast SEO has special skills to adapt the various content analyses to different languages from around the world. In Yoast SEO 12.3, we’re taking the first steps to add another language to the list: Hungarian. In addition, this release features a number of enhancement and fixes. Read our 12.3 release post to find out more!


  • Adds the transition word assessment for Hungarian. Props to @9abor.
  • Includes the admin bar CSS in AMP dev mode. Props to @westonruter.
  • Shows a floating Save changes button on Yoast SEO admin pages when the normal button is not visible in the browser window.
  • Improves user input validation feedback and suggestions for error correction.
  • Introduces a new filter wpseo_sitemap_http_headers which allows filtering the HTTP headers we send for XML sitemaps.
  • Adds a RankMath post meta value importer.


  • Removes the notification that would be thrown if add-ons with a lower version number than the plugin were installed. The yoast_plugin_compatibility_notification method has been deprecated.


Release Date: October 1st, 2019

Yoast SEO 12.2 is a release full of the regular bug fixes and enhancements, but also a new addition to meta robots. Last week, Google announced a new way to give publishers more control over what the search engine can show in the results. This change, however, seems not driven by customer demand, but rather by law. Find out what this is all about and why we chose to automatically opt sites in for this in our 12.2 release post!


  • Adds default robots meta settings to opt in to all snippet display features, to prevent affected websites in Europe from having snippet display issues.
  • Adds an alert to the configuration wizard and the knowledge graph settings that is shown when organization information is missing.


  • Fixes a bug where the banners in the sidebar were no longer responsive.


  • Changes all mentions of the Yoast SEO for WordPress training, which is now free.
  • Combines the ‘Newsletter’ and ‘You might like’ steps in the configuration wizard to a step called ‘Continue learning’.
  • Removes the colon from the form labels at the settings pages.


Release Date: September 17th, 2019

Yoast SEO 12.1 is out today! It features a couple of changes in order to match the design of Google’s search results pages, this includes those shiny new favicons. In addition to this, we added a number of new filters for our Schema implementation. See what else is new in the latest release of your favorite SEO plugin in our 12.1 release post!


  • Updates the desktop snippet preview to match Google’s new font sizes.
  • Introduces the usage of the site’s favicon in the mobile snippet preview.
  • Adds a collapsible around the hidden problems and notifications on the Yoast dashboard.
  • Adds a filter wpseo_schema_organization_social_profiles that allows filtering an organization’s social profiles in the schema output. Props to juliquiron.
  • Adds a filter wpseo_schema_company_name that allows filtering the company name in the schema output. Props to @andrewgillingham.
  • Adds a filter wpseo_free_schema_company_logo_id that allows filtering the company logo in the schema output. Props to @andrewgillingham.
  • Adds a filter wpseo_sitemap_exclude_empty_terms_taxonomy to control hiding empty terms per taxonomy.
  • Adds a filter wpseo_enable_structured_data_blocks to allow disabling Yoast’s structured data block editor blocks.
  • Adds a get_robots method to retrieve the robot HTML without it being output. Props to @bradymwilliams.
  • Improves the input validation on the settings pages.
  • Improves the consistency of the plugin icons.
  • Improves the How-to and FAQ blocks styling for better compatibility with latest version of the WordPress blocks editor.


  • Fixes a bug where subscription checks would fail on some sites due to certificate verification being disabled.
  • Fixes a bug where the primary term selector would not display HTML entities properly. Props to @dlh01.


  • Allows showing specific dashboard feeds based on the wp_version and php_version of a site.
  • Removes the AMP Glue plugin suggestion from the SEO dashboard when AMP and Yoast SEO are installed. The AMP Glue plugin by Yoast will be discontinued soon.
  • Removes the Courses menu-item.


Release Date: September 3rd, 2019

Contrary to what the version number might suggest, Yoast SEO 12.0 isn’t a huge release. It’s simply the next release in our current release schedule, but after hitting 11.9 a couple of weeks ago we had no choice but to go for 12.0. That’s how it goes! But don’t worry, there’s enough interesting stuff in this release, including two new checks for the Portuguese language. Read more about Yoast SEO 12.0 in our 12.0 release post!


  • Adds a filter wpseo_exclude_from_sitemap_by_term_ids that allows excluding a term from the XML sitemap.
  • Adds a filter wpseo_xml_sitemap_include_images that allows excluding images from the XML sitemap.
  • Adds a maximum width to the metabox, props to @justemoilouise.
  • Adds support for the assessment that checks whether multiple sentences begin with the same word for Portuguese, props to amesdigital.
  • Improves the wording in the configuration wizard notification, props to @emilyatmobtown.
  • Improves user input validation for URLs.
  • Improves the sentence length assessment for Portuguese by increasing the recommended sentence length limit, props to amesdigital.
  • Updates the document title with a message to communicate form submission errors have occurred.


  • Fixes a bug where a 404 error would be shown for the second sitemap (and up) of the author sitemaps in case of multiple author sitemaps.


Release Date: August 20th, 2019

Are you ready for another exciting release to round up the Yoast SEO 11 cycle? Because we are! In Yoast SEO 11.9 we have improvements for security and accessibility. Read more about Yoast SEO 11.9 in our 11.9 release post!


  • Improves security by adding output escaping.


  • Fixes a bug where the image from the configuration wizard notification was missing an empty alt attribute.
  • Fixes a bug where some translations would be missing in the metabox, sidebar, configuration wizard and the help center.


Release Date: August 6th, 2019

Release history tells us that the releases in the months of July and August are usually very quiet and not ‘that notable’. Due to vacations from team members, the focus is usually on fixing bugs and cleaning up. Not for Yoast SEO 11.8! This new release gives us an enhanced metabox, bug fixes and the help of contributors from outside the company! Find out all about Yoast SEO 11.8 in our 11.8 release post!


  • Moves advanced SEO settings to a collapsible in the SEO tab.
  • Social settings tab in the metabox now contains collapsibles instead of tabs.
  • Adds style for padding to the metabox menu to avoid it being overwritten by custom editor styles. Props to @emilyatmobtown.
  • Improves sanitization of the schema output.


  • Fixes a bug where the WP_Query::get_posts() method would be called multiple times when the query includes several taxonomy terms, resulting in different results. Props to @Chouby.
  • Fixes a bug where the checkbox in the customizer about showing the blog page in the breadcrumbs would do exactly the opposite of what it promised. Props to @garrett-eclipse.
  • Fixes a bug where the snippet title and meta description fields would still be left-to-right when the site was set to a right-to-left language.


Release Date: July 23rd, 2019

By now you probably know the 11.x releases of Yoast SEO are all about Schema. In this release, we’ve enabled the possibility to use a subset of HTML tags in the FAQ and HowTo blocks! Find out all about Yoast SEO 11.7 in our 11.7 release post!


  • Allows a subset of HTML tags in FAQ answer, HowTo description and HowToStep description schema output: <h1>, <h2>, <h3>, <h4>, <h5>, <h6>, <br>, <ol>, <ul>, <li>, <a>, <p>, <b>, <strong>, <i>, <em>, and their closing counterparts.
  • Remove the noindex from feeds as this causes issues for podcasts and other feeds.
  • Improves the accessibility of the horizontal tabs in the metabox by implementing an ARIA tabbed user interface.


  • Fixes a bug where the avatar in the knowledge graph settings would incorrectly overwrite the default user profile picture.


Release Date: July 9th, 2019

Yoast SEO 11.6 is out today. Of course, we did the regular round of bug fixing, but the focus of this release is two-fold: a new, much easier to use tabbed interface for the meta box and an updated HowTo structured data content block for WordPress. Find out all about Yoast SEO 11.6 in our 11.6 release post!


  • Changes the tabs in the metabox to horizontal tabs.
  • Splits the content optimization tab in the metabox into two separate tabs: an SEO and a Readability tab.
  • Updates HowTo schema output to reflect Google’s new guidelines.
  • Makes sure the media modal that is triggered for image uploads only displays images.


  • Fixes a bug where the Schema @id for Person would be incorrect on posts when author archives where disabled.
  • Fixes a bug where the Schema would contain WebPage instead of CollectionPage for a latest posts homepage and the static posts page type.
  • Fixes a bug where the Organization and Article Schema nodes would incorrectly be output when a website had not set their organization’s name and/or logo.
  • Fixes a bug where the eye marker tooltips would break out of the metabox, which would hide the last part of the tooltip text.
  • Fixes a bug where instances of unfiltered HTML would be allowed in term descriptions where they shouldn’t be.


Release Date: June 25th, 2019

Yoast SEO 11.5 is out today. This release features a big change that gives you a better idea of how searchers see your snippets on mobile. Yep, we’ve overhauled the mobile snippet preview and brought it up-to-date with Google’s latest changes. And that, of course, includes that shiny favicon. Find out what Yoast SEO 11.5 is all about in our 11.5 release post!


  • Updates the Mobile Snippet Preview.
  • Moves the primary image for a page out of the WebPage piece into its own graph piece.


  • Fixes missing trailing slash for the homepage on post sitemap. Props to stodorovic.


Release Date: June 12th, 2019

Yoast SEO 11.4 is out today. This release features loads of structured data improvements. We’ve improved the way Yoast SEO Schema works with AMP, plus we’ve enhanced our FAQ blocks and added them to the graph. Find out what Yoast SEO 11.4 is all about in our 11.4 release post!


  • Yoast SEO now takes control of the Schema output on pages generated by the AMP plugin.
  • Introduces a new action wpseo_pre-schema_block-type_ which allows changing graph output based on the blocks on the page.
  • Introduces a new filter wpseo_schema_block_ which allows filtering graph output per block.
  • Improves the FAQPage Schema markup to adhere to Google’s new standards.
  • Optimizes the handling of external images.
  • Adds links to the SEO and readability scores in the classic editor publish box that make the page scroll to the corresponding analysis in the metabox.
  • Moves the focus keyphrase input field to the top of the metabox and sidebar.


  • Fixes a bug where object cache for WPSEO_Option_Titles would be cleared too often.
  • Fixes a bug where questions without answers would be outputted in the Schema FAQ markup.
  • Fixes a bug where the overridden canonical would be used instead of the ‘unoverridden’ canonical.
  • Fixes a bug where the traffic light icon would be empty when the readability and SEO analysis were disabled.
  • Fixes a bug where following links to page fragments would make the Help Center video tab disappear.
  • Fixes a bug where author Schema would be outputted on author archives when author archives were disabled.


  • Removes a redundant caching call for primary terms.


Release Date: May 28th, 2019

High-time for another release, namely Yoast SEO 11.3. This release features enhancements and bug fixes aimed at improving the way your favorite SEO plugin performs. Read more about the release in our 11.3 release post.


  • When the site is set to represent a person, a logo/avatar to be used in the knowledge graph can now be selected in the Search Appearance settings.
  • Adds the wpseo_should_index_links filter that can be used to disable the link indexing
  • Enables builtin Taxonomies for the ‘Content type archive to show in breadcrumbs for taxonomies’ section to allow the Blog archive page be added to the breadcrumbs.
  • Props to @ramiy for making translating the plugin easier by merging near identical strings.


  • Fixes a bug where sitemaps would be shown in the sitemap_index.xml but result in a 404 when requested.
  • Fixes a bug where the schema output would include an invalid publisher when the site was set to represent a person.
  • Fixes a bug where a Person schema object would be output, when the site was set to represent a person, but no specific person was selected.
  • Fixes a bug where it would no longer be possible to change the user in the Search Appearance settings when the previously selected user had been deleted.


  • Removes the help center from the metabox.
  • Removes redundant name attribute from author in Article schema markup piece.
  • Increases the MyYoast API request timeout from 1 to 5 seconds, to give servers with a less optimal connection to our services more room to fetch the data.


Release Date: May 16th, 2019


  • Fixes a bug where the metabox would be empty on WordPress versions below 5.0.
  • Fixes a bug where the metabox would be empty when both the classic editor plugin as well as the Gutenberg plugin were installed.


  • Introduces a notification that encourages updating to the latest WordPress version.


Release Date: May 15th, 2019


  • Introduces a fallback to the first image in the content for the schema output when no featured image has been set.
  • Adds a wpseo_schema_person_social_profiles filter to allow filtering in/out extra social profiles to show.
  • Adds a wpseo_schema_needs_ filter that allows filtering graph pieces in or out.
  • Adds a wpseo_sitemap_post_statuses filter to add posts with custom post statuses to the sitemap. Props to stodorovic and tolnem.
  • Adds a custom overlay color to the snippet preview modal.
  • Adds the correct focus style to the Configuration Wizard navigation buttons.
  • Props to @ramiy for making translating the plugin easier by merging near identical strings.


  • Fixes a bug where the URL to Pinterest’s claim page was incorrect. Props @ramiy.
  • Fixes a bug where notifications about incompatibility would be thrown for inactive add-ons.
  • Fixes a bug where URLs with a non-Yoast SEO related xsl query string parameter would result in a blank page. Props @stodorovic and @yiska.


  • Removes the add_opengraph_namespace filter because the OGP.me HTML namespace is not used anymore.
  • Decouples the sitemap debug information from the general WP_DEBUG development flag and introduces the YOAST_SEO_DEBUG_SITEMAPS flag to better control this functionality.


Release Date: May 6th, 2019


  • Fixes a bug where an empty width and height would be outputted in the image schema when there was no retrievable width and height.
  • Fixes a bug where using the $context argument in the deprecated wpseo_json_ld_output filter would result in a fatal error when using PHP 7.1 or higher.


  • Adds a notification to explain why users’ Google Search Console reports are no longer showing any entries. Read more about the reasons behind this.
  • Removes the Google Search Console step from the configuration wizard.


Release Date: April 30th, 2019


  • Improves how we generate the image parts for the Schema output. Read more about the ImageObject output.
  • Adds filesize to whitelisted properties on $image. Props to cmmarslender.
  • Optimizes the code to avoid an unnecessary DB query to remove notifications storage when it’s already empty. Props to rmc47.
  • Improves the breadcrumbs accessibility by adding aria-current to the active item.


  • Fixes a bug where the position of the buttons in the FAQ and How-To structured data blocks was compromised when running the development build of Gutenberg.
  • Fixed a bug where social profile settings would be empty because it was relying on the user choosing whether the site represents a company or a person.


Release Date: April 16th, 2019

We’ve made huge changes to the schema.org markup we output, adding multiple different types of Schema. Be sure to check our posts on yoast.com about this release!


  • Schema changes:
    • Adds Person markup for author pages.
    • Adds WebPage markup for all pages.
    • Adds Article markup for posts, with Person markup for the author.
    • Changes the ‘Organization or Person’ section of the Knowledge graph settings to allow selecting an author that is the ‘Person’ that the website represents.
  • Adds MySpace, SoundCloud, Tumblr and YouTube URL input fields to people’s profiles.


  • Fixes an issue where the metabox would not display on term edit pages when running the development build of Gutenberg.


Release Date: April 4th, 2019


  • Reverted a fix relating replacement variables on the block editor, which was causing a slow and unworkable editting experience.
  • Fixes a bug where the license information from MyYoast is being saved aggressively, causing updates in MyYoast to take 24 hours to show up in the site.
  • Fixes a bug where the rel="publisher" Google+ tag was being output on the frontend if that profile was provided in the past.
  • Fixes a bug where the server could experience a high load when using external object cache.
  • Fixes the bug where Yoast SEO would contact Yoast.com for license checks on specific Yoast-pages even when no Yoast addons are installed.


Release Date: April 3rd, 2019


  • Fixes the bug where Yoast SEO would contact Yoast.com for license checks even when no Yoast addons are installed.


Release Date: April 2nd, 2019


  • Fixes a bug where a fatal error can occur on license requests which return an unexpected result.


Release Date: April 2nd, 2019


  • Removes Google+ from the various interfaces: social accounts, user profiles and more.
  • Adds a Wikipedia URL field to the social accounts list, to be used in sameAs Schema.org output.
  • Adds a LinkedIn profile URL field to user profiles, a first sign of things to come in 10.2.
  • Removes the og:image:alt tag as it causes potential accessibility issues when content is shared via Facebook.
  • Adds support for browsers auto-fill in the form fields that collect user information.
  • Adds missing screen reader text to the SEO score icon in the front end admin bar.
  • Increases the recommended sentence length limit for Spanish and Catalan to be more in line with best practices in these languages, props to Sílvia Fustegueres.
  • Improves the list of Catalan transition words, props to Sílvia Fustegueres.
  • Improves the list of Swedish transition words.


  • Fixes a bug where selecting a parent page for a page would lead to console errors and a not-working ‘parent page’ snippet variable.
  • Fixes a bug where no focus indication was shown for the title separators in the configuration wizard and settings.
  • Fixes a bug where taxonomy terms weren’t shown correctly in the Snippet Preview, for example when using the Categories, Tags or any custom taxonomy replacement variable.
  • Fixes a bug where breadcrumb structured data wasn’t output when breadcrumbs are disabled and a theme with breadcrumb support has been installed.
  • Fixes a bug where a PHP notice would be written to debug.log when adding a new site to a WordPress 5.1 multisite installation.


  • Removes all functionality that has been deprecated before Yoast SEO 6.1.


Release Date: March 19th, 2019


  • Fixes a bug where network-wide settings were not saved on multisite environments.


Release Date: March 12th, 2019


  • The recalibrated analysis is out of its beta phase and is now the default for the SEO analysis. Thanks for testing and giving us your valuable feedback! You are awesome! ?
  • Adds $taxonomy to the arguments passed to the wpseo_terms filter. Props to polevaultweb.
  • Changes the screen reader text of the SEO score indicator in the menu bar and the traffic light in the snippet preview from Bad SEO score. to Needs improvement.
  • Props to Kingdutch for helping improve our open source content analysis library.


  • Fixes a bug where the focus keyphrase snippet variable was not correctly applied on term pages.
  • Fixes a bug where the Facebook image that was set for the WooCommerce Shop page would not be outputted as og:image. Props stodorovic.
  • Fixes a bug where the featured image set on a WooCommerce Shop page would not be outputted as Facebook OpenGraph Image or Twitter Image. Props stodorovic.
  • Fixes a bug where backslashes and consecutive double quotes would be removed from the focus keyphrase when saving a post or term.
  • Fixes a bug where backslashes would be removed from the breadcrumb title, focus keyphrase, title or meta description when saving a term.


Release Date: February 26th, 2019


  • Replaces inch marks by smart quotes in search breadcrumbs.
  • Improves the feedback for the assessment that checks the length of cornerstone articles.
  • Improves accessibility and focus management for the How-To and FAQ structured data blocks.
  • Improves the Internal Links table headers on the post overview for better translations and accessibility.
  • Adds a description of the SEO and Readability score to the posts and taxonomies overview in mobile view.
  • Adds a label element to the Google Search Console authorisation code input field in the configuration wizard.


  • Fixes a bug where a Flesch reading ease score of exactly 90 would trigger incorrect feedback.
  • Fixes a bug where the taxonomy sitemap provider would not handle private taxonomies as expected, resulting in sitemaps not being accessible in specific situations.
  • Fixes a bug where an empty twitter description instead of the term description would be shown.
  • Fixes a bug where ‘undefined index’ warnings would be given when saving a Facebook image.
  • Fixes a bug where the Recalibration Beta could not be loaded in combination with specific server configurations.


Release Date: February 12th, 2019

Content analysis recalibration (beta):

  • As there are already a lot of users who are participating in testing, we currently have enough input to start preparing for the release of the improved analysis.
    • Removes the ability to enable beta testing for new installations.
    • When the feature is disabled, the ability to re-enable it will disappear.


  • Removes schema (JSON+LD) output from 404 pages.
  • Improves the Google Search Console table accessibility by removing a duplicate button.
  • Improves the code to better comply to the coding standards.


  • Fixes a bug where an empty feed would be available for non-existing pages. Props stodorovic.
  • Prevents vendor_prefix/j4mie/idiorm/demo.php from being included in the release.


  • Props to Kingdutch for helping improve our open source content analysis library.
  • Improves the redirect upsell when creating redirects in the search console overview.


Release Date: January 22nd, 2019


  • Completes the readability analysis for Swedish by adding the transition words, sentence beginnings and passive voice assessments.
  • Improves the transition word assessment for German.


  • Fixes a bug where the Ryte endpoint would be called when the Ryte feature has been disabled.
  • Fixes a bug where the ‘Show archives for authors without posts in search results?’ toggle would be shown when the ‘Show author archives in search results?’ toggle was disabled in the search appearance settings.
  • Fixes a bug where the front page would be shown in the page sitemap. Props to stodorovic.
  • Fixes a bug where errors would be thrown in the classic editor when Gutenberg assets were enqueued without Gutenberg being active.
  • Fixes a bug where the editor would not be loaded when clicking the ‘edit’ button for a child page in the page overview. Props mondrey.


  • Deprecates the methods WPSEO_Utils::get_user_locale() and WPSEO_Utils::get_language().


  • Adds a Courses Page showing an overview of the available online courses offered by Yoast Academy.


Release Date: January 8th, 2019

Content analysis recalibration (beta):

  • Adds a toggle feature for subscribing to the recalibration beta under SEO -> General -> Features.
  • When the recalibration feature is enabled:
    • The single title assessment is added. This assessment makes sure that you don’t use superfluous H1s in your text.
    • Assessments changes:
    • Keyphrase density: changes scoring schema to account for the length of the keyphrase and changes feedback strings so that we give feedback about the number of occurrences rather than a percentage.
    • Outbound links assessment: changes the scoring schema so that red bullet instead of an orange bullet is shown when you have no outbound links.
    • Image alt attributes: if there are at least 5 images, checks whether the alt tags contain the keyphrase or synoynyms in 30-70% of all images. If there are less than 5 images, 1 image with the keyphrase or synonym in the alt tag is still scored as good.
    • Keyphrase in title: function words preceding the exact match keyphrase are ignored when determining the position of the keyphrase in the title.
    • Keyphrase length: makes the scoring scheme less strict for languages that don’t have function word support, so that for these languages keyphrases with 1-6 words are scored as green, 7-9 as orange, and more than 9 as red.
    • Keyphrase in subheading: only takes H2 and H3 level subheadings into account and changes the scoring schema so that 30%-75% of these subheadings need to include the keyphrase or its synonyms. In languages without function word support, a match is only counted if all the words from the keyphrase/synonym appear in the subheading.
    • Text length: on taxonomy pages, the recommended minimum text length is increased from 150 to 250 words.
    • Assessment removals:
    • The assessment checking the length or your URL.
    • The assessment checking whether your URL contains stopwords.


  • Improve accessibility of the analysis results.
  • Improve accessibility of the Title Separator setting.
  • Adds a new filter for adjacent-rel links: wpseo_adjacent_rel_url.


  • Fixes a bug where special characters from certain word lists weren’t correctly escaped when matched with a regex. This resulted in eggs being incorrectly matched as the transition word e.g., for example.
  • Fixes a bug where the search appearance setting for a custom content type named profile would have a broken layout.
  • Fixes a bug where pagination elements were not shown in the Genesis theme.


  • Uses method is_simple_page instead of is_singular in method robots. Props to: stodorovic
  • Adds method is_woocommerce_active and check is woocommerce activate before registering hooks. Props to stodorovic
  • Adds static variables to “cache” results of functions is_shop and wc_get_page_id. Props to stodorovic
  • Verifies that variable post is an instance of WP_Post in WPSEO_Admin_Bar_Menu ::get_singular_post(). Props to @yingles.
  • Improves strings to be more easily translated. Props to pedro-mendonca
  • The browser console now shows more descriptive error messages when something went wrong during analyses in the web worker.
  • Avoids irrelevant warning and error in the WPEngine PHP Compatibility plugin.


Release Date: December 18th, 2018


  • Reapplies the markers in Gutenberg when the content changes to make sure they stay up-to-date.
  • Changes the output of schema preventing unnecessary escaping of forward slashes, only available on sites running PHP 5.4 or higher.
  • Changes the website schema @id attribute to include the home URL to be a unique identifier.
  • Adds the page number to the breadcrumbs when an archived page is entered.
  • Removes a redundant Edge-specific CSS fix for the tooltips in the post overview. Props mkronenfeld.


  • Fixes a bug where the ‘Select primary category’ label in the primary taxonomy picker would overlap the ‘Add new category’ button.
  • Fixes a bug where the cornerstone filter was still visible with the metabox disabled.
  • Fixes a bug where non-functional markers are shown for taxonomy pages.
  • Fixes a bug where the og:description tag would remain empty after setting the author description.
  • Fixes a bug where texts in the configuration wizard would overlap each other and break out of the columns in Internet Explorer 11. Props DrGrimshaw.
  • Fixes a bug where keyphrases weren’t recognized in the URL when the words in the URL were separated by underscore characters instead of hyphens.
  • Fixes a bug that caused numbers to be stripped when marking a keyphrase containing a number, e.g. ‘Yoast SEO 9.3’.
  • Fixes a bug where the first tab of the metabox would be empty when using WordPress 4.8.x.
  • Fixes a bug where private post types would have a sitemap with their ‘private’ entries.


  • Implemented performance optimizations in FAQ and How To blocks.


Release Date: November 21th, 2018


  • Fixes a bug where the title and meta description field’s cursor would jump to the start when typing.


Release Date: November 20th, 2018


  • Adds support for the ‘eye’ markers in Gutenberg using the experimental annotations API in Gutenberg. They will work for the paragraph, quote, heading and list blocks.
  • Adds the latest og:locale options provided by Facebook. Props to valtlfelipe
  • Adds support for oEmbed utilization of Yoast custom fields (post meta) values. Specifically the image and the title. Props to ben-caplan
  • Defines attachment as non-accessible when attachment urls are redirected to the attachment file itself. Props to stodorovic
  • Improves the accessibility of the “Bulk editor” and “Search console” tables.
  • Hides SEO title and metadescription fields on the author edit page when the author archives are disabled.
  • Replaces Settings ZIP download (export) and upload (import) functionality with Settings fields.


  • Fixes a bug where assessments would fail if a “<” character is present in the content.
  • Fixes a bug where the excerpt replacement variable will output a piece of the post content when no excerpt is given.
  • Fixes a bug where the wrong title is rendered for the WooCommerce product archive.
  • Fixes a bug where the Yoast metabox is visible even when the attachment urls are redirected to the attachment file itself.
  • Fixes a bug where the Dashboard Widget was not displayed in the correct language.
  • Fixes a bug in combination with Gutenberg where paragraphs were sometimes not correctly detected because paragraph tags were not automatically added in WordPress-like fashion.
  • Fixes a bug in combination with Gutenberg where multiple marker buttons could be active at the same time.
  • Fixes a bug in combination with Gutenberg where escaped HTML is shown in the OpenGraph description.


  • Adds the __block_editor_compatible_meta_box flag to our metabox registrations to indicate they are compatible with WordPress 5.0.
  • Revise the enqueue order of the JavaScript assets to ensure compatibility with the classic editor plugin and WordPress 5.0.


  • Fixes a possible command execution by users with SEO Manager roles. Props to Dimopoulos Elias


  • Disables the non-functioning markers for the subheading distribution assessment.
  • Refactor SEO assessment filenames and exports. Props to Kingdutch
  • Deprecates the Yoast_Modal class.


Release Date: November 6th, 2018


  • Improves keyphrase recognition in the first paragraph on texts which start with images and captions.
  • Adds a warning notification to the permalink settings page, linking to a knowledge base article. Props to valtlfelipe
  • Adds the filter wpseo_opengraph_is_valid_image_url that allows custom image URL validation. Props to petenelson
  • Updates the font size of the snippet title measure element to correctly mimic Google desktop snippet title. Props to ol0lll


  • Fixes a bug where the featured image was not recognized in the SEO analysis when using Gutenberg.
  • Fixes an accessibility issue where focus would be lost when removing an uploaded image in the configuration wizard.
  • Fixes a bug where notices were being thrown when quick editing a post and no post type object could be found.
  • Fixes a bug where a dependency wasn’t loaded for the SEO -> Tools page.
  • Fixes a faulty reference to the old SEOAssessor class.
  • Fixes the copy of the date archives help text which contains faulty information. Props to mkronenfeld
  • Fixes the spelling of the words “plug-in” and “set-up”. Props to pedro-mendonca
  • Fixes a bug where a type error is thrown when the posts or terms focus keyword isn’t of the type WP_Post as this can collide with third-party plugins.


  • Changes the reference in the admin bar menu from “AdWords External” to “Google Ads”.
  • Removes non-functioning eye-markers for the link keyphrase assessment.


Release Date: October 30th, 2018


  • Fixes a bug where the metabox was broken when using the classic editor plugin.
  • Fixes a bug where the Chrome browser tab would crash on Windows when a French or Italian text contains sentences in passive voice, props CarloCannas.
  • Fixes a bug where the Yoast SEO analysis would error if used together with the DelightfulDownloads plugin.


Release Date: October 24th, 2018


  • Fixes a bug where it was impossible to change the profile in the Search Console integration step in the configuration wizard.
  • Fixes a bug where the primary taxonomy picker was not shown in Gutenberg (v4.1).


Release Date: October 23rd, 2018


  • Fixes error with using $ in wp-seo-admin-media.js. Now we use jQuery instead.


Release Date: October 23rd, 2018


  • Fixes a bug where the keyword would not be found in the slug when containing punctuation, for example the keyphrase apples & pears in the slug apples-pears.
  • Fixes a bug where the buttons to change the How-to steps and FAQ questions order would be only partially visible in mobile view.
  • Fixes a bug where an ‘undefined index’ notice would be given when an OpenGraph image URL didn’t have a correct path. Props to @Julian-B90
  • Fixes a bug where the home description can contain HTML, resulting in unexpected characters on the Facebook social settings page.
  • Fixes a bug where author sitemap caches would be attempted to be invalidated despite not all conditions being met.
  • Fixes a bug where a fatal error on Yoast settings pages was thrown because they did not have a dedicated option class.


  • Introduces two new principles for keyword recognition:
    • Makes keyphrase recognition flexible with regards to word order. This means that the keyphrase SEO WordPress plugin will be found in the sentence This is the most popular SEO plugin for WordPress. In order to use exact matches, the keyphrase can be enclosed in quotation marks.
    • When matching keyphrases for the various assessments, the analysis only targets content words and ignores function words (e.g., the or and). This functionality is available in English, German, Dutch, French, Spanish, Italian, Portuguese, Russian and Polish.
  • The analysis of the following assessments incorporates the new keyword recognition principles:
    • Image alt attributes: checks whether there’s at least one image with an alt tag that contains words from the keyphrase. An exact match isn’t required anymore.
    • Keyphrase in introduction: checks whether words from the keyphrase are matched within one sentence in the introduction or, if not, whether they are present in the first paragraph at all. An exact match isn’t required anymore.
    • Keyphrase in title: still checks whether an exact match of the keyphrase is found in (the beginning of) the title, but now also recommends improvement if all words from the keyphrase are found in the title.
    • Keyphrase length: has new boundaries to check whether the keyphrase is not too long. For languages that have support for function word stripping (see above), only content words are taken into account.
    • Keyphrase in meta description: checks how often all words from the keyphrase are matched within the meta description.
    • Keyphrase in subheading: now checks whether at least one subheading contains more than half of the words from the keyphrase. An exact match isn’t required anymore.
    • Keyphrase in slug: checks whether a sufficient number of words from the keyphrase is used in the slug. The number of words required depends on the length of the keyphrase.
    • Keyphrase density: checks whether there are enough keyphrase matches; a match is defined as a sentence that contains all words from the keyphrase.
    • Link focus keyphrase: the assessment that checks whether you’re using your keyphrase to link to a different article doesn’t require an exact match anymore.
  • Improves the feedback texts for all SEO and readability assessments.
  • Improves the consistency of the SEO and readability results by showing them in a fixed order.
  • Adds target=”_blank” to the “How to connect to GSC” link to open the link a new tab. Props to @zkan
  • Changes all mentions of ‘keyword’ to ‘keyphrase’. Read more about the transition from ‘keyword’ to ‘keyphrase’.
  • Optimizes and caches WPSEO_Option_Titles::enrich_defaults(). Props to @soulseekah
  • Introduces a Features tab in the network admin, which allows disabling all site-specific features for the entire network.
  • Improves the tab order within the structured data blocks in Gutenberg and make it consistent between the FAQ and How-To block.
  • Improves sitemap performance by disabling the caching by default.
  • Adds target="_blank" to the “How to connect to GSC” link to open a new tab when clicked.
  • Adds an assessment that checks whether your keyword consists only of function words.
  • Changes OpenGraph image handling to always use an image from the media library. This makes the performance of the OpenGraph image handling much better.
  • Improves performance by no longer using images from the content as a fallback for the OpenGraph and Twitter images.


  • Deprecates the WPSEO_Cornerstone class.
  • Deprecates the assessment that checks if stopwords are used within the keyphrase.


Release Date: October 9th, 2018


  • Fixes a bug where the cornerstone content toggle was available for attachment pages.
  • Fixes a bug where the Search Console page displayed ‘first detected’ and ‘last crawled’ dates that were in the future.


  • Introduces the wpseo_taxonomy_content_fields filter to add additional fields to the taxonomy metabox.
  • Adds a margin below select fields so there’s space between taxonomy settings for breadcrumbs. Props to @emilyatmobtown


Release Date: September 25th, 2018


  • Fixes a bug where an incorrect time would be outputted in the article:published_time and article:modified_time meta properties when a timezone with numerical UTC offset was used (e.g. UTC+10).
  • Fixes a bug where the article:published_time and article:modified_time meta properties would be localized. Props to AminulBD.
  • Fixes a bug where the structured data rendered by the Gutenberg How-To and FAQ blocks was rendered on pages with multiple posts.
  • Fixes a bug where snippet variables would not be replaced in the og:description of taxonomies when they were added in the Facebook Description input field.
  • Fixes a bug where babel-polyfill would throw an error that there shouldn’t be two instances of babel-polyfill.
  • Fixes a bug where the bold button was available in the How-to block’s step title and the FAQ block’s Question field while they were already bold by default.
  • Fixes a bug that caused keywords beginning with the Turkish characters İ / i and I / ı not to be recognized when changing that character from lowercase to uppercase and vice versa.


  • Adds a colon to the list of possible title separators.
  • Adds a setting and filter (wpseo_duration_text) to the how-to block that allows users to edit the text describing the time needed.
  • Adds a help text to the readability analysis.


  • Adds a notice to the Yoast SEO dashboard that is shown when both Yoast SEO and All in One SEO Pack plugins are active.
  • Makes the duplicate content link on the archive settings open in a new tab. Props to nikhilbarar.
  • Changes the notification message that is shown when a new SEO-related issue has been found.
  • Uses the correct type as the second argument of the wpseo_sitemap_exclude_empty_terms filter call when determining which taxonomies should have a sitemap. Props to liarco.
  • Removes the executable bits on SVN assets. Props to mathieu-aubin.
  • Introduces an API function to get all Yoast SEO-related capabilities. Props to JoryHogeveen.
  • Changes the @context property from http://schema.org to https://schema.org in the FAQ and How-To block’s structured data output.
  • Rename the associatedMedia property in the FAQ and How-To block’s structured data output to image, to reflect a change in Google’s guidelines.
  • Moves the @type and name properties to the root of the FAQ block’s structured data output.
  • Nests the Question objects in the newly introduced mainEntity property in the FAQ block’s structured data output.
  • Removes the superfluous position property from the How-To block’s structured data output.


Release Date: September 20th, 2018


  • Fixes a bug where the Chrome or Opera browser tab would crash on Windows when a Polish text contains sentences in passive voice.


Release Date: September 11th, 2018


  • Introduces a How-To block in Gutenberg to create a How-to guide in an SEO-friendly way. Read more about the Gutenblocks in our release post.
  • Introduces a FAQ block in Gutenberg to list your Frequently Asked Questions in an SEO-friendly way. Read more about the Gutenblocks in our release post.
  • Adds readability analysis for Polish.
  • On Multisite environments, in addition to the site domain, path and ID, also site titles are now present in the site selection dropdowns.


  • Fixes a bug where changing the WordPress slug would not correctly update the snippet editor.
  • Fixes a bug where the user input would trigger an analysis every time.
  • Fixes a bug with incorrect zooming on older iPhones within the installation wizard.
  • Fixes a bug where the OpenGraph image wouldn’t show correctly for the frontpage in a few situations. Props to @mt8 for the solution direction.
  • Fixes a bug where the Yoast SEO network admin menu and admin bar menu would appear when the plugin was only active for the main site, and not for the entire network.
  • Fixes a bug where snippet variables in the Twitter card title and description wouldn’t be properly replaced.
  • Fixes a bug where a non-existing dependency was requested on the Search Appearance settings page.
  • Fixes a bug where the value of the primary category snippet variable in the classic editor wouldn’t change when the primary category was changed.
  • Fixes a bug where the Gutenberg editor in the Classic Editor plugin would crash when the primary category picker was loaded. If something goes wrong in the primary category picker, it now shows a notification, instead of making the entire editor crash.
  • Fixes a bug where the readability analysis would not show the correct scores for cornerstone content.
  • Fixes a bug where switching off the SEO analysis would stop the readability analysis from loading.
  • Fixes a fatal error on the Term and Post edit pages when the server is running on PHP 5.2.


Release Date: September 5th, 2018


  • Fixes a bug where our JavaScript memory usage would increase indefinitely. This could result in a browser crash after a long enough period.


Release Date: September 3rd, 2018


  • Fixes compatibility with Gutenberg 3.7, which removed a feature we were relying on.
  • Fixes a bug where the Twitter meta-tags would not have the snippet variables replaced with their dynamic values.
  • Fixes a bug where the og:url would not be set to the canonical URL if the canonical URL is explicitly set on Post types, Terms or Tags.
  • Fixes a bug on the Term page when editting the slug, it would not be updated in the Snippet Preview directly.


Release Date: August 28th, 2018


  • Adds the Snippet Preview Editor to the sidebar.
  • Introduces the Primary Category picker to Gutenberg.
  • Introduces a loading indicator in the analysis that is shown until we’re ready to analyze the content.
  • Optimizes the content analysis calculations. This fixes the issue where the UI could freeze when you have a long post.
  • Changes the “Check Inlinks (OSE)” menu item in the Yoast Admin bar “Analyze this page” dropdown from the Moz OpenSite Explorer (OSE) to Google Search Console, as the former service is being disabled on August 30th 2018.


  • Fixes a bug where the analysis scores would change multiple times due to a delay in the loading of the actual scores. We now show loading indicators until the actual scores have been calculated.
  • Fixes a bug where the parent title snippet variable wasn’t properly being replaced with the actual parent title in Gutenberg.
  • Fixes a plugin compatibility bug where the SEO score in the admin bar could not be retrieved.
  • Fixes a bug where the editor would not be usable when deferred or async loading of JavaScript is being forced.
  • Fixes a bug where the analysis for previously used keywords would only be triggered if the keyword was changed, resulting in an incorrect SEO score.


Release Date: August 14th, 2018


  • Implements the Yoast sidebar for Gutenberg: added the Readability, Focus Keyword and Cornerstone content tabs to the sidebar.
  • Revamps the Yoast metabox to use the same vertical design as the new sidebar.
  • Implements the same tabbed layout in the plugin’s network settings screen that is also used in the plugin’s site settings screens.
  • Implements a plugin-specific network settings API and use it in the network settings screen.
  • Introduces a network admin-specific admin bar menu.
  • Adds notifications to the Notification Center in regards to Gutenberg compatibility. If Gutenberg is older than the minimum supported version by Yoast SEO, a ‘problem’ notification is added. If Gutenberg is only slightly outdated, a ‘normal’ notification is added.
  • Implements the automatic detection of the keyword for terms based on the term’s title.


  • Fixes a bug where /sitemap.xml would not correctly redirect to /sitemap_index.xml in some environments.
  • Fixes a bug where sitemap cache transients would not be correctly cleared.
  • Fixes a bug where markers were wrongfully displayed in Gutenberg.
  • Fixes a bug where SEO titles were incorrectly evaluated as being of a good length when they were actually slightly too long.


  • Moves the network’s Restore Site functionality into its own tab.


Release Date: August 7th, 2018


  • Improves the link to claim your website on Pinterest by directly sending you to the right location.
  • Adds the passive voice assessment for Dutch.
  • Adds a link to a relevant article about re-using keywords to the feedback of the assessment that checks if the keyword was used previously.


  • Adds a missing H1 heading to the Network Admin > SEO > Edit Files page.
  • Fixes the textarea sizes in the Search Appearance > RSS tab.
  • Fixes a bug where adding a company image in step 4 of the Configuration Wizard, would make the wizard crash.
  • Fixes a bug where PHP error notices were given when the search result doesn’t have any WooCommerce products. Props to jaska120.
  • Improves the order in which assessments are triggered. The keyword in the title is only checked once there’s a title, the keyword in the introduction is only checked once there’s a text, and the keyword in the meta description is only checked once there’s a meta description.
  • Fixes a bug that caused keywords to be incorrectly recognized within possessive forms (e.g. Natalia in Natalia's fix).
  • Improves the recognition of keywords with special diacritics in the URL.
  • Improves keyword recognition through adding Spanish inverted exclamation and question marks to the rules that determine word boundaries.


  • Corrects the WP_Filesystem() initialization call to support settings import for non-default FS_METHOD definitions. Props to ptbello.


Release Date: July 24th, 2018


  • Introduces the collapsible sections to all the tabs in Search Appearance.
  • Improves accessibility of the collapsible sections in Search Appearance.


  • Fixes a bug where archive settings for post types aren’t shown on the search appearance page when the has_archive for that post type contains an archive slug. Props to nesinervink, schurig.
  • Fixes a bug where a notice (“Notice: Trying to get property of non-object”) is given when the $term->taxonomy isn’t set before it is used. Props to bainternet.
  • Fixes a bug where an uppercased encode URI isn’t redirected to the category. Props to dawnbirth.
  • Fixes a bug where HTML entities were not always decoded in the Snippet Variables.
  • Fixes a bug where custom field labels would be separated by spaces in the classic editor, but in Gutenberg they would be separated by underscores instead.
  • Fixes a bug where the conversion of ', which is PHP’s HTML entity for the apostrophy, did not happen.
  • Fixes a bug where the same notification is shown multiple times when trashing multiple posts.
  • Fixes a bug where a possibly non-existent key would be retrieved when generating the article:section OpenGraph tag. Props to mikeschinkel.
  • Fixes a bug in the UI that happend when do_shortcode was run on category descriptions in the admin list. Additionally, fixes rendering of shortcodes in category descriptions on the frontend.
  • Fixes a bug where saved templates in Search Appearance would be saved incorrectly into the database, resulting in them never being loaded when editing a post, page, etc. This meant that the default template would always be used.
  • Fixes a bug where the “Tagline” / %%sitedesc%% snippet editor variable was not selectable in the Search Appearance settings.
  • Fixes a bug where the newsletter signup in the configuration wizard would not work.


  • Moves some snippet variables to only appear within specific editors. Adds a filter wpseo_editor_specific_replace_vars to make this pluggable.
  • Adds the white background to the template of media on the Search Appearance page.
  • Changes feedback in the keyword density assessment to make it more explicit that synonyms are not taken into consideration when calculating the score.
  • Shows a notification with the message that you should check your post type archive settings when these are possibly reset to their defaults in 7.7 or 7.8.


Release Date: July 10th, 2018


  • Improves the way that the OpenGraph is determined for front pages, especially in the case of static front pages.
  • Adds links to relevant articles to all SEO assessments.
  • Adds Flesch Reading Ease assessment for French.
  • Adds Flesch Reading Ease assessment for Spanish.
  • Adds passive voice assessment for Italian.


  • Fixes a bug where images from password protected posts could potentially end up in OpenGraph image tags.
  • Fixes a bug where very old notifications could not be be dismissed or restored.
  • Fixes a bug where the Insert snippet variable button alignment was incorrect.
  • Fixes a bug where the snippet variables had a different label in the Search Appearance settings compared to the snippet variables when writing a post, pages and taxonomies.
  • Fixes a bug where instances of the same keyword with different kinds of apostrophes (e.g., brain’s and brain’s) were not recognized as the same. This affects the following assessments: keyword in meta description, keyword in subheading, keyword in first paragraph, keyword in title and keyword in URL.
  • Fixes a bug where the custom set breadcrumb title for the WooCommerce Shop page wasn’t used.


  • Adds a reminder message to create a redirect if a user deletes a category or tag.
  • Removes a banner spot in the admin.


Release Date: July 2nd, 2018


  • Disables WordPress’ automatic conversion of emoji to images on every page where the snippet editor is present. This conversion is not compatible with React or content editable fields and broke the snippet editor.
  • Fixes text directionality for the title and description fields in the snippet editor for right-to-left languages.
  • Fixes a bug where the snippet title and description values were saved to the database if they did match the post-type template.


Release Date: June 29th, 2018


  • Fixes a bug where the snippet variables selection is hidden behind the WordPress menu when using a right-to-left language.
  • Fixes styling in the snippet preview when using a right-to-left language.
  • Fixes a bug where the ‘insert snippet variable’ button placement was inconsistent.
  • Migrates WooCommerce Product archive settings to the Shop page, if present and not already set on the Shop page.


Release Date: June 27th, 2018


  • Fixes a bug where disabling the post_format archive would result in it actually being enabled and vice versa.
  • Fixes an issue where all replacement variables were being displayed instead of the recommended ones.


  • Restores currentyear as a snippet variable.


Release Date: June 26th, 2018


  • Implements the snippet preview in React. This brings an improved user experience regarding the snippet variables, making it easier to use and discover them.
  • Implements the improved snippet variables on the search appearance settings pages.
  • Adds an inserter to the title and metadescription fields to make it easier to insert a snippet variable.
  • Improves the mobile snippet preview to match the Google mobile search results more closely.
  • Changes the behavior of the meta description preview when there is no handwritten meta description. We no longer mimic Google by showing a part of your content, but explain what Google does instead.
  • Sends the user to the proper control in the customizer when clicking the link in the “You still have the default WordPress tagline […]” warning message.
  • Adds a wpseo_attachment_redirect_url filter to allow changing of the target redirection URL for attachments. This may be necessary to restore the redirect to the parent post. Props to cawa-93.
  • Adds a wpseo_recommended_replace_vars filter to allow adding or altering the recommended snippet variables.
  • Adds support for JSON-LD breadcrumbs. Props to teolaz
  • Improves the lists of French transition words, stopwords, and function words, props to Laurent-1971.
  • Improves the assessment that checks the use of subheadings so that it always returns relevant feedback to the user.
  • Adds a notification when a post is removed.
  • Overhauls the Content Types section under SEO -> Search Appearance by sectioning the post types and allowing users to collapse them. This is especially handy when you have a lot of custom post types.
  • Updates the ‘snippet variables tab’ of the Help Center to have the new names.
  • Adds recommended snippet variables for templates depending on the context. The wpseo_recommended_replace_vars filter is added, which gives the possibility to add or alter the recommended snippet variables.


  • Fixes a bug where a PHP notice would be triggered when the opcache.restrict_api directive was enabled.
  • Fixes a bug where restricting SEO setting access to network admins only on a multisite, would still allow regular admins to have access to SEO settings.
  • Fixes a bug where dismissing notifications on a single site in a multisite environment, would result in the notification being dismissed on all sites.
  • Fixes a bug where the attachment URL would redirect to wp-admin if the attachment was located on a different Site URL domain.
  • Fixes a bug where MySQL would throw a “Duplicate entry ‘X'” error into the error log when attempting to upsert a record in the database.
  • Fixes a performance problem where the selecting a fallback Open Graph image would collect the filename for all the images in the content. This has been changed to detecting if an image is usable per image and stopping when a usable image is found.
  • Fixes a bug where the term title snippet variable would be replaced by ‘undefined’ instead of an empty string on posts and pages.
  • Fixes a bug where PHP notices got triggered on archive pages when %%pt_single%% and/or %%pt_plural%% are used in a template.
  • Fixes a bug where the configured separator wasn’t used in the title template fallback that’s being used when no title template has been set.


  • Deprecates the following snippet variables: %%userid%%, %%currenttime%%, %%currentdate%%, %%currentday%%, %%currentmonth%%, %%currentyear%%.


  • Changes the timing on which the capability filter is run to better time when notifications should be initialized.
  • Adds X-Redirect-By header to all redirects, making the origin of redirects much easier to debug.


Release Date: June 7th, 2018


  • Fixes a bug where a JavaScript error was thrown on the post-edit page when certain plugins are active.
  • Fixes a bug where stylesheet definitions would impact form fields of metaboxes on the post-edit pages. The definitions have been contained in a Yoast-selector.


Release Date: June 5th, 2018


  • Adds Flesch Reading Ease for Russian.
  • Adds Catalan transition words.
  • Adds a tab to the Help Center on posts, pages, terms and custom post types which explains which template variables can be used in the Snippet Preview.


  • Fixes a bug where sequences of symbols which do not contain a single letter or digit were considered as valid keywords.
  • Fixes a bug where Flesch Reading Ease translation strings were not fully translated.
  • Fixes a bug where numbers-only keywords caused the analysis to fail.
  • Fixes a bug where the active keyword in the state wasn’t updated whenever changes were made in the keyword field.
  • Fixes a bug where replacevars based on custom fields would throw an error due to a missing ID.


  • Changes the maximum meta description length from 320 to 156 characters.
  • Fixes typo in $field_defs parameter description for wpseo_metabox_entries filter.
  • Restores the warning for using unsupported replacement variables on the search appearance settings page.


Release Date: May 16th, 2018


  • Fixes a bug where the auto-generating of the slug did not work as expected due to persisting of the post name too agressively.


Release Date: May 15th, 2018


  • Adds readability analysis for Russian.
  • Improves accessibility.


  • Fixes a bug where images with specific aspect ratios where removed from OpenGraph consideration. This was causing unexpected results with Facebook sharing. The aspect ratio check has been removed completely.
  • Fixes a bug where sentences ending in multiple sentence marks, exclamation marks or ellipses were treated as multiple sentences.
  • Fixes a bug where attempting to get Yoast SEO options in multi-site, would result in wrong values being returned.
  • Fixes a bug where the sitemap styling could not be loaded when the Site domain differs from the Admin domain.
  • Fixes a bug where the admin bar still used old copy: Dashboard has been renamed to General.


Release Date: May 3rd, 2018


  • Fixes automatic image size detection for OpenGraph images. When an image was used that was too large, we wouldn’t output the og:image tag. That is now fixed.
  • Fixes a bug where portrait images where not allowed for the OpenGraph image.


Release Date: May 2nd, 2018


  • Re-adds wpseo_opengraph_image_size filter. This will completely override any automatic size determination our code does. This filter now also applies to all ways an og:image can be determined: In the content, as a featured image or as set in our Facebook image setting.
  • Fixes an unintended backwards incompatible change which caused “Warning: Illegal string offset ‘url’ in”.
  • Fixes an unintended change which caused SVGs to be included in consideration for the og:image tag. SVG images are not allowed by Facebook, so these should never be used in the og:image tag.


Release Date: May 1st, 2018


  • Adds OpenGraph image dimension-meta tags for more images.
  • Excludes images from being used in OpenGraph meta tags, if the image is larger than 2MB.
  • Adds caching for images found in a post to reduce load.
  • Adds image alt tag to the OpenGraph output, using the meta tag og:image:alt.
  • Adds the is_post_type_viewable WordPress function to improve support for the wpseo_accessible_post_types filters.


  • Fixes a bug where a non-array value causes a fatal error when cron_schedules filter has been executed.
  • Fixes a bug where not all database tables were removed when a subsite was deleted in a multisite environment.
  • Fixes a bug where deleting multiple posts might cause performance issues. Props to Moeini.


  • Introduces a message, warning about dropping of PHP 5.2 support in an upcoming version.
  • Alters the configuration service text in the Configuration Wizard when a user is already running Yoast SEO Premium. Previously the text contained a reference to getting a bundled copy of Premium, even if the user was already running Premium.


Release Date: April 17th, 2018


  • Removes the intl polyfill and shows a message on browsers that don’t support this feature.
  • Adds Baidu Webmaster Tools verification support.
  • Adds import functionality for Premium SEO Pack.
  • Adds import functionality for Smartcrawl SEO.
  • Adds import functionality for Squirrly SEO.
  • Adds import functionality for Platinum SEO Pack.
  • Adds import functionality for SEO Framework.
  • Adds import functionality for Greg’s High Performance SEO.
  • Adds import functionality for WP Meta SEO.
  • Improves the social data import for the wpSEO.de plugin.
  • Removes the debug data from the admin pages, which were only showing when WordPress is in DEBUG mode.
  • Applies Select2 to all select boxes on breadcrumbs page.
  • Attempts to reset opcode cache during the upgrade routine.
  • Changes the wording for the Ryte indexability check on the features tab.


  • Prevents hard casting to array in the WPSEO_Link_Columns::add_post_columns method signature.
  • Fixes a bug where an error is thrown when MySQL has the sql-mode set to ANSI_QUOTES.
  • Fixes a bug where the pagination overlaps the cornerstone information message, on post overview pages in combination with low resolutions.
  • Fixed a bug where the keyword filter doesn’t work on the post overview page.
  • Removes HTML entities from the HTML comment that appears for admins when there’s no meta description on a post or page.
  • Changes JSON+LD organization output to always point to #organization on the homepage instead of the current page.
  • Fixes a bug where non-public taxonomies were shown in the breadcrumbs.


  • Minor internationalization improvements.
  • Security hardening.


Release Date: April 3rd, 2018


  • Updates all Help Center videos with new recordings.
  • Adds functionality to import noindex, nofollow and OpenGraph tags from All in One SEO Pack.
  • Improves consistency of capitalization in settings and tabs.
  • Improves the traffic light icon accessibility.
  • Changes the words ‘post type’ into ‘content type’ throughout the plugin.


  • Fixes a bug where the Facebook app-id could no longer be set in the Social settings.
  • Fixes a bug where existing Yoast SEO data could be overwritten when importing data from All in One SEO Pack.
  • Fixes a bug where the Ryte notification is not removed when disabling the Ryte feature.
  • Fixes a bug where setting a page to noindex through the wpseo_robots filter did not properly remove the canonical element.
  • Fixes a bug where attachments connected to password-protected parents are included in the sitemaps. Props Scott Carter.
  • Fixes alignment of the Go Premium notice.


Release Date: March 20th, 2018


  • Adds a filter to mark Spanish sentences as non-passive when certain exception words occur between the auxiliary and the participle. The list of exception words includes all forms of the copula ‘estar’.
  • Adds transition words assessment for Portuguese, props amesdigital.
  • Increases the height of the meta description box so it matches the maximum amount of characters without needing a scrollbar.
  • Detects when you need to import old SEO plugin data and allows you to import it on the import plugins page. After importing you can check whether the import was completed successfully and then delete the data.
  • Changes the formatting of text in the dashboard widget to improve the reading experience.
  • Adds an extra argument to wpseo_replacements filter. This makes it possible to access post, taxonomy or term instances when applying the filter.
  • Adds support for a new template variable %%archive_title%%.
  • Remove all Facebook Insights functionality as it’s no longer supported.


  • Fixes a bug that broke a filter which marks Spanish and French sentences as non-passive when certain exception words occur between the auxiliary and the participle.
  • Fixes a bug where the page and paged values could cause errors if they weren’t properly handled as integers.
  • Fixes a bug where division by zero errors in the passive voice assessment would cause NaN% to show up in the feedback.
  • Fixes a bug where multiple rel arguments prevented correct nofollow detection.
  • Fixes a bug where enabling the Show blog page in the breadcrumb settings had the inverse effect. Internally renamed breadcrumbs-blog-remove to breadcrumbs-display-blog-page to fix logic issues.
  • Fixes a bug where the rewrite rules weren’t removed after stripping the category base. This resulted in an unaccessible page.
  • Fixes a bug where adding a wpseo_sitemap_entries_per_page was not being used when rendering the sitemaps.
  • Fixes a bug where the Yoast logo in the Configuration Wizard was showing the old version.
  • Removes the backfill hooks when calling WPSEO_Options::get() to improve performance.


Release Date: March 12th, 2018


  • Fixes a bug where the option settings that needs to be migrated are backfilled prematurely, resulting in settings not being migrated as expected.
  • Fixes a bug where adding a wpseo_sitemap_entries_per_page is not being applied as expected.


Release Date: March 8th, 2018


  • Fixes a bug where a fatal error occurs on a taxonomy edit page when social graphs has been disabled for either Facebook or Twitter.
  • Fixes a bug where the breadcrumb path were missing parent entries.
  • Fixes a bug where RSS before and after content settings were being cleaned too aggressively.
  • Fixes the problem that other plugins are depending on the options we’ve removed. This patch adds those options as backfills to make them available again.


Release Date: March 6th, 2018


  • Fixes a bug where the some settings are not properly migrated after upgrading to 7.0.


Release Date: March 6th, 2018


    • Interface:
      • Introduces an overhaul of the Admin settings to simplify the plugin configuration.
      • Introduces a new setting to redirect attachment URLs. Previously, we had an option to redirect attachment URLs to their post parent. This didn’t work for attachments that weren’t attached to anything. This new setting redirects all attachment URLs to the URL of the original image / media item. This is all explained on the new Media tab under Search Appearance. This setting is enabled by default for new installations.
      • Moves the Text link counter calculation to the Tools submenu.
      • Moves the RSS tab from Advanced to Search Appearance.
      • Removes the option to remove the replytocom variable. We now disable this automatically with a filter (wpseo_remove_reply_to_com).
      • Removes the option to exclude an author from the XML sitemap in favor of a broader option. Instead, we now have an option to set whether this author’s archive should be visible in the search results. If you choose not to allow this archive in the search results, it’s also excluded from the author sitemap.
      • Removes the XML sitemaps settings page in favor of a feature toggle on the Features tab and a question in Titles & Meta’s “Do you want to show X in search results?”.
      • Moves the setting to disable the Advanced Meta Box for authors to the Features Tab. The setting now also defaults to ‘On’.
      • Expands the content analysis headers by default.
    • JSON+LD:
      • Shows JSON+LD markup for website and search on the front page.
      • Makes sure JSON+LD organization markup properly links to the frontpage.
    • Copy:
      • Clarifies the copy on the Edit Post page to ask “Allow search engines to show this Post in search results?” instead of having a heading “Meta Robots”, which was quite difficult to understand for non-SEO’s. Similar changes have been made to the follow / nofollow setting.
      • Introduces the question: “Allow search engines to show this in search results?” and bases both the noindex and the inclusion in XML sitemaps on this decision.
      • Changes the wording in the indexing dropdown menu in the Advanced Tab of the metabox from Yes (Default for posts) / Yes / No to Default for Posts, currently: Yes / Yes / No.
      • Renames the Dashboard menu item to General.


  • Removes the feature that automatically removed stop words from the slug.
  • Removes media post type from the Configuration Wizard, which brings the question about indexing in line with the rest of the plugin.
  • Removes jQuery UI autocomplete from the enqueued scripts.
  • Adds a filter wpseo_exclude_from_sitemap_by_post_ids for controlling which posts are excluded from the sitemap.
  • Improves the switch toggle settings for use with assistive technologies.
  • Removes code to add a trailing slash in weird permutations of permalink settings. Canonical should solve this properly.
  • Removes the functionality to automatically remove blocking XML sitemap files.
  • Removes the clean permalinks feature, as it was created before canonical was introduced and is no longer needed.
  • Fixes a reference to the ACF Content Analysis for Yoast SEO plugin.
  • Removes all functions, methods and files that were deprecated since before version 4.0 and were showing a deprecation warning.
  • Removes the plugin conflict check for the Head, Footer and Post Injections-plugin as it no longer manages OpenGraph tags.
  • Migrates the hideeditbox- and hideeditbox-tax- settings to a saner display-metabox-pt- and display-metabox-tax- settings.


  • Hides the “Save changes” button on option tabs where there is nothing to save.
  • Fixes a bug where you would not stay on the same option tab after using the save button in Safari.
  • When we set noindex on a page, we no longer add a canonical, to prevent confusing search engines.
  • Fixes an issue where the categories / tags overview pages were incorrectly showing elements marked as noindex when in reality they weren’t set to noindex (and vice versa). This meant that blue bullets were being shown incorrectly.
  • Fixes an issue where setting posts and pages to noindex didn’t change the overview.


  • Fixes a security issue where importing of the values of ini files were being parsed for dynamic content.


Release Date: February 19th, 2018


  • Fixes a bug where a non-existing JavaScript chunk file was loaded, causing a console error. This only affected users using a locale different than en_US.


Release Date: February 13th, 2018


  • Reverts the shortlink in the HTML comment back to the hard link it was before.
  • Fixes a bug where the Local SEO for WooCommerce extension was not shown on the licenses page.
  • Fixes a bug where the current_user_can() function was not called with the post ID as argument.
  • Fixes a bug where the auto-generated meta descriptions were not using the new 320 characters limitation.
  • Fixes a bug where specific external links were not filtered from the post_type sitemap.
  • Fixes a bug where trashed posts were displayed in the bulk editor overview.
  • Fixes a bug where old meta values were not deleted during import.
  • Fixes a bug where only 10 posts when executing meta robots import from wpSEO.de.
  • Clears the sitemap cache when the Site URL is changed.


  • Adds an importer for the SEO Ultimate plugin SEO data.
  • Adds an importer for the SEOpressor plugin SEO data.
  • Adds links to explanatory articles on the features tab.
  • Adds additional explanation for entries on the features tab.
  • Improves Open Graph copy for Facebook and Twitter in the Social settings to better explain what it does.
  • Improves Content Analysis and Publish box copy for better translations.
  • Applies design changes to the Help Center support tab for Premium.


  • Removes “meta keywords” from the plugin as this has had no search result value for at least 7 years.
  • Removes the “noindex subpages” feature as Google has gotten much better at paginated series, and it’s now actually detrimental to use.
  • Removes the “Other” tab from the Titles & Metas settings screen, as all options have been moved or removed.
  • Security hardening.


Release Date: January 23rd, 2018


  • Allows more strings to be translated.
  • Adds the passive voice assessment for French.
  • Adds the passive voice assessment for Spanish.
  • Simplifies the feedback message for the assessment that checks whether subheadings contain the keyword.


  • Security hardening through stricter code checks.
  • Reduces the number of times the content analysis is refreshed on page load.
  • Fixes a bug where relative URLs were not counted as internal links in the internal link assessment.
  • Fixes a bug where Premium users would be shown ads when following a certain path through the SEO menu.
  • Fixes a bug where the method of setting the title and meta description templates for the WooCommerce shop page would not work anymore.


Release Date: January 10th, 2018


  • Fixes a bug where sitemaps could not be generated when there one or more galleries in the content.


Release Date: January 9th, 2018


  • Allows more strings to be translated.
  • Replaces any Yoast domain URLs with shortlink alternatives.


  • Fixes a bug where the internal links aren’t recognized when the site_url is not the same as the home_url.
  • Fixes a bug where the user locale is not used for the Help Center when it is different from the site locale.
  • Removes unsupported PHP 5.2 arguments in an array_unique call in the Term image sitemap.
  • Removes unsupported PHP 5.3 arguments in a json_encode call in the notification functionality.
  • Added support for locales without territory (examples: et, fi) – Props Peeter Marvet.
  • Added support support for 3-letter language codes (example: rhg) – Props Peeter Marvet.
  • Fixes a JavaScript compatibility issue by prefixing the webpack jsonP function with yoast – Props Raitis Sevelis from Visual Composer.


Release Date: December 20th, 2017


  • Adds support for custom page titles and meta descriptions on the WooCommerce shop page. Props Caleb Burks.
  • Adds support for custom page social titles and descriptions on the WooCommerce shop page.
  • Adds a link to the Google Knowledge Graph article on Yoast.com. Props Raaj Trambadia.
  • Adds a link to an article on Yoast.com on why it might be a bad idea to use the same keyword more than once.
  • Changed the meta description maximum recommended length from 156 to 320 characters.


  • Disables the mark buttons of the content analysis when switched to text view.
  • Hides the mark buttons when the WYSIWYG editor is not loaded or the filter wpseo_enable_assessment_markers returns false.
  • Security hardening through stricter code checks.


Release Date: December 11th, 2017


  • Fixes an issue where a part of the excerpt would be leaked on password protected posts when used as a replacement variable. Such as %%excerpt%% and %%excerpt_only%%. Props to Rolands Umbrovskis for reporting this issue to us.


Release Date: December 11th, 2017


  • Fixes a bug where older browsers couldn’t load the content analysis. This applies to Internet Explorer (10 and lower) and Safari (9.1 and lower).
  • Fixes a bug where the Yoast Metabox wouldn’t be shown for posts set to noindex, therefore making it impossible to change it back to index, view Readability scores and not being able to optimize a post, before allowing it to be indexed.
  • Fixes a bug where translations wouldn’t be applied in the Yoast SEO Metabox for SEO and Readability scores.


Release Date: December 5th, 2017


  • Fixes a bug where the configuration wizard could not be loaded, caused by a missing JavaScript dependency.


Release Date: December 5th, 2017


  • Fixes a bug where the title isn’t added back to the HTML when the debug marker has been disabled.
  • Fixes a bug where multiple help panels showed up when clicking on different help buttons.
  • Fixes a bug where the Help Center wouldn’t be closed when clicking the Go Premium link.
  • Fixes a bug where the cornerstone setting for a post would be lost when quick editing the post.
  • Fixes a bug where newly created posts were taken into account for the link count, resulting in MySQL errors. Props to stodorovic.
  • Fixes a bug where Premium plugins were being treated as WordPress.org plugins in the ‘suggested plugin’ notifications, resulting in download errors.
  • Fixes a bug where an empty div was visible when both Content and Readability analysis are disabled.


  • Shows a notice regarding opening the Onboarding Wizard when the plugin is installed for the first time.
  • Makes it easier to unhook the debug code rendered as HTML comment.
  • Implements the Reactified content analysis.
  • Introduces the wpseo_add_opengraph_additional_images filter to allow additional OpenGraph Images to be added at a low priority.
  • Changes the Dashboard widget’s progress bar height to 24px.
  • Makes the ‘Next’ and ‘Back’ buttons in the Onboarding Wizard focusable.
  • Adds grouping of feedback within the content analysis, in the following categories: ‘errors’, ‘problems’, ‘needs improvement’, ‘considerations’, and ‘good’. Each category can be expanded and collapsed.


Release Date: November 15th, 2017


  • Fixes an XSS vulnerability in the Google Search Console configuration page, when connected to any profile. Thanks Dimopoulos Elias for discovering and responsibly disclosing this issue.


  • Fixes a bug where inactive suggested plugins weren’t displaying a notification.
  • Fixes a bug where an error would be thrown if a Yoast SEO custom database table was missing.
  • Fixes a bug where the layout of the metabox would break if too little content was present. Props to shane-gray.
  • Fixes a bug where the WordPress editor was being displayed for custom, private taxonomies. Props to stodorovic.
  • Fixes a bug where the analysis heading is shown when readability and keyword analysis has been turned off. Props to daim2k5.
  • Fixes a bug where outputting on the_content filter calls could result in faulty AJAX requests.


  • Introduces wpseo_breadcrumb_single_link_info filter for modifying breadcrumb data. Props to slushman and forsvunnet.
  • Introduces wpseo_redirect_orphan_attachment action to allow unattached attachment pages to be redirected in tune with the relevant setting. Props to soulseekah.
  • Enhances integration with most role/capability manager plugins using the members_get_capabilities filter. Props to JoryHogeveen.
  • Adds a Yoast group to the Members and User Role Editor plugins to easily find the Yoast SEO capabilities. Props to JoryHogeveen.
  • Made link for Premium buy button changeable. Props to leesto.
  • Removes the max-width on alerts to present a better UI. Props to timnolte.
  • Sets default Twitter Card option to ‘Summary with large image’. Props to pattonwebz.
  • Makes the content accessible by adding scroll functionality in the help center tabs.
  • Improves the suggested plugins messages and adds installation and activation links when appropriate.
  • Makes sure that the yoast_seo_links table is accessible before attempting to run a query against it.
  • Uses Gutenberg content if it is available.


  • Cleaned up codebase by removing old Knowledge Base Search code.
  • Improved the codebase to make it comply with the latest WordPress Coding Standards.


Release Date: October 25th, 2017


  • Fixes a bug where the message “You are not receiving updates or support!” is shown incorrectly.
  • Changes the reference to the correct ACF Content Analysis for Yoast SEO plugin.


  • Adds a plugin suggestion for WooCommerce SEO when WooCommerce is installed.


Release Date: October 24th, 2017


  • Adds notifications when we detect certain plugins are installed to suggest our AMP and ACF glue plugins.
  • Adds the ability to start the configuration wizard from the admin bar menu.
  • Adds better responsive styling for the video tabs in the Help Center.
  • Replaces the link to Google AdWords with the https variant, props Shane Gray.
  • Changes to the desired spelling of plugin and setup, props Pedro Mendonça.


  • Fixes a bug where the text link counter doesn’t count links for scheduled posts when they get published.
  • Fixes a bug where the internal link count is not updated when a post is removed permanently.


Release Date: October 13th, 2017


  • Fixes a bug where the SEO Manager role was not being able to save SEO settings.


Release Date: October 10th, 2017


  • Removes legacy license page and shows the new license page by default.
  • Changes references from licenses to subscriptions and sites on the premium submenu page.
  • Changes the appearance of the Help Center in line with our design approach.
  • Introduces an explanation bar when the Cornerstone content filter is active.


  • Fixes a bug where Hebrew slugs aren’t decoded on display in the bulk editor.
  • Fixes a bug where the internal link count is not updated when there are no links to that page or post anymore.
  • Fixes the Cornerstone content filter to behave consistently with existing WordPress filters.


Release Date: September 28th, 2017

  • Bugfixes
  • Fixes Snippet preview error when Yoast metabox has been removed.
  • Changes
  • Change Yoast Blog feed to new endpoint.


Release Date: September 26th, 2017

  • Enhancements
  • Updated the Dashboard Widget with a new design.
  • Added additional explanations to the Configuration wizard.
  • Added contentinfo landmark for assistive technologies to the Configuration wizard page.
  • Introduces wpseo_manager and wpseo_editor roles.
  • Introduces wpseo_manage_options capability to control which users have access to all SEO settings.
  • Introduces wpseo_edit_advanced_metadata capability to control which users have access to the advanced SEO settings.
  • Bugfixes
  • Fixed a bug where certain options (site_type, environment_type and has_multiple_authors) would be reset to their default value whenever one of the feature toggles were changed.
  • Ensured that has_multiple_authors gets validated.


Release Date: September 21st, 2017

  • Bugfixes
  • Replace unsupported query prepare placeholder %1$d with %d to fix broken queries. Fixes compatibility issue with WordPress 4.8.2.


Release Date: September 20th, 2017

  • Bugfixes
  • Replace unsupported query prepare placeholder %1$s with %d to fix broken queries. Fixes compatibility issue with WordPress 4.8.2.


Release Date: September 6th, 2017

  • Enhancements
  • Added a hook to disabled the twitter card. (Props: @petenelson)
  • Performance
  • Replaced the use of get_posts and get_children by WP_Query.
  • Bugfixes
  • Archive pages are excluded from the sitemap based on the noindex setting. (Props: @stodorovic)
  • Prevent the throwing of an error when wpseoPostScraperL10n is not defined.
  • Escapes all input when generating links for the RSS feed.
  • Apply the wp_get_attachment_url filter to Sitemap images.


Release Date: August 28th, 2017

  • Bugfixes
  • Fixes a bug where table listings were not giving expected content, props Kyle B. Johnson.


Release Date: August 23rd, 2017

  • Bugfixes
  • Fixes a bug where an invalid license notification could be shown in certain situations.


Release Date: August 22nd, 2017

  • Bugfixes
  • Fixes a bug where “mark as fixed” on the search console page didn’t work.
  • Fixes a bug where the configuration wizard JavaScript file was too large.


Release Date: August 22nd, 2017

  • Enhancements
  • Adds missing I18n function call to make a string translatable
  • Adds XML schema for image sitemap, props: stodorovic
  • Adds schema.org meta-data on every page, instead of only on the homepage
  • Adds the possibility to filter posts by readability score.
  • Exposes tinyMCEHelper as window.YoastSEO.wp._tinyMCEHelper in JavaScript
  • Exposes the ReplaceVar class in YoastReplaceVarPlugin as window.YoastReplaceVarPlugin.ReplaceVar in JavaScript
  • Bugfixes
  • Adds sanitization for the Twitter Image meta field
  • Fixes use of register_meta for usage in WordPress 4.6 and higher
  • Initialize the providers on hook after_theme_setup to make sure custom providers are added properly, props: stodorovic
  • Changes the label of the “Bad” score to “Needs improvement” while filtering on SEO or readability scores.


Release Date: August 8th, 2017

  • Enhancements
  • Added wpseo_pre_adjacent_rel_links filter to bypass built-in rel prev/next functionality.
  • Introduces classes to allow collecting data in the Premium plugin.
  • Renamed OnPage.org to Ryte.
  • Allow WordPress WHIP messages to be dismissed for a period of 4 weeks.
  • Adds a filter for word combinations that consist of a single one-character word.
  • Adds aria-current to the onboarding wizard active step.
  • Bugfixes
  • Removes JQMIGRATE JavaScript warnings.


Release Date: July 25th, 2017

  • Enhancements
  • Adds the post-type and taxonomy identifiers on the titles and metas settings tab.
  • Adds support for importing of Jetpack SEO data.
  • Improves the readability feature for Dutch, English, French, German, Italian and Spanish.
  • Adds a WordPress SEO Premium motivation box on Yoast SEO settings pages.
  • Adds a WordPress SEO Premium motivation on the social tabs.
  • Adds support for third party sitemaps providers to be registered and used.
  • Changes the column titles in the taxonomy list table to icons.
  • Adds a subheader on the notification dashboard to clarify problems and issues which are muted.
  • Improves avatars on the credit page, props Mike DeHart
  • Bugfixes
  • Fixes a bug where remove_meta_if_default and dont_save_meta_if_default don’t return the given input value as default.
  • Fixes a performance issue related to calculating text link counts when saving a post.
  • Fixes a typo in the readme.txt, props Raymond Rutjes


Release Date: July 13th, 2017

  • Only load babel polyfill if it hasn’t been loaded by another plugin yet.
  • Adds a feature toggle to disable the link counter tool & link columns.
  • Fixes a compatibility issue with WordPress 4.6.
  • Fixes an issue where the link columns would disappear after quick-editing a post.


Release Date: July 6th, 2017

  • Fixes a fatal error that could occur when trying to save a post that has -tags with invalid URLs in it.


Release Date: July 6th, 2017

  • Bugfixes
  • Fixes a bug where images via https were not working, props Jannik Zschiesche.
  • Fixes a bug where the whip notification can be shown multiple times.
  • Enhancements
  • Introduces a module that counts links in the content.
  • Adds Flesch Reading for Italian.
  • Changes ‘page title’ to ‘seo title’ in the snippet preview.
  • Changes recommended maximum sentence length for Italian from 20 to 25 words, based on more in-depth research.
  • Implements the extracted version of the Algolia Search which is now present in yoast-components.
  • Adds a banner for the structured data course.
    • Under the hood
  • Introduces a database table to keep track of the linking structure. If the table cannot be created, a notification will be shown.
  • When there are posts or pages to reindex, a notice will be shown.


Release Date: June 7th, 2017

  • Bugfixes
  • Fixes a bug where there were certain assessments missing when switching to cornerstone content.
  • Fixes a bug where the configuration wizard button was visible for users who didn’t have enough rights to access the configuration wizard.
  • Fixes a bug where the column ID was ambiguous, causing an SQL error.
  • Fixes a bug where the category URL in the sitemap was encoded twice.
  • Fixes a bug where an old upgrade notice is not removed.
  • Enhancements
  • Removes the noodp advanced robots meta value as it is no longer used.
  • Loads the translations only when the configuration wizard endpoint is called, instead of every time rest_api_init is called.


Release Date: May 23rd, 2017

  • Bugfixes
  • Fixes a bug where the tabs in the social and advanced metabox section are gone when keyword analysis has been disabled.
  • Enhancements
  • Optimizes the way the cornerstone flag is saved.
  • Analyzes the content using cornerstone assessors when a post or page is cornerstone content.


Release Date: May 9th, 2017

  • Bugfixes
  • Fixes a bug where the analysis wouldn’t work on Internet Explorer.


Release Date: May 2nd, 2017

  • Enhancements
  • Adds transition words for Italian.
  • Adds a new check in the analysis for the presence of at least one internal link.
  • Bugfixes
  • Fixes a bug where the _yst_is_cornerstone meta value was not prefixed, causing some themes/plugins to output this meta value.
  • Fixes a bug where style and script elements were parsed for the prominent words.
  • Fixes a bug where the cursor pointer was in front of the metabox.


Release Date: April 11th, 2017

  • Enhancements
  • Improves a language string, props Sören Wrede.
  • Improves the configuration wizard with clear information about the configuration.
  • Adds the ability to mark posts as cornerstone content.
  • Bugfixes
  • Fixes an issue in combination with WooCommerce 3.0 where the plugins would load incompatible select2 versions.


Release Date: March 21st, 2017

  • Additions
  • Adds a message about the PHP version for WordPress installations that run on PHP 5.2. The warning also has pointers on how to address this situation. We have an article about why we are doing this on yoast.com.
  • Bugfixes
  • Adds a check for the breadcrumbs-home option to prevent a blank entry being added to the crumbs array, props codemonkeynorth
  • Enhancements
  • Throws a warning in the admin for the RS Head Cleaner plugin, because the plugin cloaks.
  • Improves copy about Yoast SEO Premium benefits.
  • Adds link to our knowledge base article about connecting your website to Google Search Console.


Release date: February 28th, 2017

  • Bugfixes:
  • Fixes a bug where a span tag wasn’t closed correctly, props lubobill1990.
  • Fixes a bug where there were deprecation warnings shown when an existing author was being updated.
  • Fixes a bug where the user received an ‘insufficient rights’ error when the advanced settings are disabled, but an advanced page is visited.
  • Enhancements:
  • Moves the options to disable keyword and content analysis from the general tab to the features tab.
  • Improves styling of tables so they are viewable on mobile.
  • Changes the links into shortlinks for the extensions page, helpcenter, facebook settings and premium popup.


Release Date: February 14th, 2017

  • Bugfixes
    • Fixes the width of the readability column on post overview, props rikayla.
  • Enhancements
    • Improves feedback text for subheading too long assessment.


Release Date: February 2nd, 2017

  • Bugfixes
  • Fixes a fatal error “Call to undefined method yoast_i18n::set_api_url()”. This error occurred with certain other plugins that also include the i18n-module.
  • Fixes a bug where some strings wouldn’t be translated.
  • Makes the Yoast SEO menu top and first item visible in the responsive view.
  • Fixes a bug where the yoast icon on the credits page wasn’t displayed properly in some views.
  • Enhancements:
    • Improves the styling of the notification center.
    • Improves the styling of the title separators.


Release Date: January 31st, 2017

  • Bugfixes:
  • Fixes a bug where the sitemaps were being invalidated too often.
  • Fixes a bug where the ‘meta keywords’ meta box section stayed visible when switching to the readability tab.
  • Enhancements:
  • Moves translations from translate.yoast.com to translate.wordpress.org.
  • Improves the styling of the featured image warning and sends an audible message for screen readers.
  • Makes the left sidebar of the meta box responsive.
  • Removes unused heading from the meta box.
  • Improves responsiveness for settings pages.


Release Date: January 17th, 2017

  • Bugfixes:
  • Fixes a glitch in the notification center where a notification would be shown twice.
  • Fixes a bug where the realtime analysis didn’t work on term pages.
  • Fixes a bug where the sitemap invalidation uses an expensive query to clean up old validators.
  • Enhancements:
  • Adds a mobile snippet preview.
  • Adds a function that allows retrieving an option only when it’s been autoloaded.
  • Removes review banner from mobile, props abhinavkumar940.
  • Adds labels to redirect checkboxes in the search console to improve accessibility.


Release Date: December 20th, 2016

  • Bugfixes
  • Fixes a bug where shortcodes would be kept in the content that would be analyzed, which would result in incorrect results.
  • Fixes a bug where the user language would be used to analyze the content instead of the site language.


Release Date: December 13th, 2016

  • Enhancements:
  • License manager: Add a get_extension_url method to Yoast_Product to retrieve the URL where people can extend/upgrade their license.
  • License manager: Add a set_extension_url method to Yoast_Product to set the URL where people can extend/upgrade their license.
  • Updates the credits page.
  • Improves plugin naming in translations.
  • Improves translations by making texts more consistent.
  • Displays the translations in the language chosen by the user in stead of using only the site language.
  • Improves the styling of the banners.
  • Adds passive voice for German.
  • Adds more transition words for French.
  • Improves feedback strings for the meta description length assessment.
  • Improves matching of the keyword in the first paragraph.
  • Improves the snippet preview to match the styling of googles snippet.
  • Bugfixes:
  • Fixes a compatibility bug with the onboarding wizard and Polylang, and possibly more plugins that prevented the configuration wizard from working properly.
  • Fixes a bug where post format archives showed up in sitemap when disabled.
  • Fixes a bug where an old update notice would not be removed.
  • Fixes a bug where keywords with periods where not highlighted in the snippet.
  • Fixes a bug where the title of the metabox wasn’t displayed correctly.


Release Date: November 29nd, 2016

  • Enhancements:
  • Updates the banners on the admin pages.
  • Improves accessibility by moving the Google Search Console reload button from the header.
  • Allow for other plugins and themes to more easily add html namespaces through the new wpseo_html_namespaces filter.
  • Prevent conflicts with other plugins/themes which also add html namespaces.
  • Bugfixes:
  • Adds a check to prevent a “Cannot read property ‘body’ of undefined” error with tinyMCE that occurred with Visual Composer and some themes.
  • Fixes a bug that prevented bulk actions to work in the Google Search Console.
  • Fixed incorrect timezone for zero offset case (Atlantic/Azores instead of UTC).


Release Date: November 8th, 2016

  • Enhancements:
  • Makes tooltips on tabs icons accessible.
  • Adds check to prevent sitemap from having empty image entries.
  • Improves screenreader text for the readability tab.
  • Adds a toggle for author and date archives.
  • Adds several improvements for readability and consistent styling.
  • Bugfixes:
  • Fixes a bug where the category picker would become slow with 1000+ categories, props Ron Willemse
  • Fixes a bug with VoiceOver on the readability and keyword tabs.


Release Date: October 20th, 2016

  • Bugfixes:
  • Fixes a bug where the configuration wizard couldn’t go to the next step if PUT requests were disabled on the server.


Release Date: October 11th, 2016

  • Enhancements:
  • Includes a few design improvements in the analysis section of the metabox. Design is now more consistent.
  • Makes sure author archives are disabled when a user confirms his site is single-author.
  • The configuration wizard is now called “configuration wizard” consistently throughout the plugin.
  • Makes sure the help center is now included on all Yoast SEO pages.
  • Added a notification asking users to rate Yoast SEO on WordPress.org.
  • Bugfixes:
  • Fixes a bug where the metabox was taking up too much space on small screens.
  • Fixes a bug where the marking for consecutive sentences beginning with the same word was off by one.
  • Fixes a bug where the Google Search Console integration wasn’t working well on multisite.
  • Fixes a bug where the newsletter signup always did a http request, causing mixed content errors on https sites.


Release Date: October 3rd, 2016

  • Bugfixes:
  • Fixes a bug where the admin bar would still show advanced settings when the advanced settings were disabled.


Release Date: September 27th, 2016

  • Enhancements:
  • Introduces the installation wizard that enables an easy way of setting up Yoast SEO. The installation wizard enables you to:
  • Newsletter signup.
  • Specify the environment in which a site is running.
  • Specify the type of a site.
  • Specify a company or person for the metadata used in Google’s Knowledge Graph.
  • Specify social profiles.
  • Specify post type visibility.
  • Specify if you have multiple authors.
  • Setup Google Search Console.
  • Setup the title settings.
  • The installation wizard replaces the tour.
  • Adds a notification to the Yoast notification center to start the onboarding wizard.
  • Adds a button on the general settings page to start the onboarding wizard.
  • Adds a premium tab to the metabox.
  • Introduces a feature toggles tab on the Yoast SEO dashboard where users can enable/disable certain features.
  • New: Enable/disable the advanced settings pages.
  • New: Enable/disable the Yoast SEO admin bar menu. Added after receiving feedback from multiple users who wanted this option.
  • Moved: Enable/disable The OnPage.org integration.
  • Removes the tour. With the help center available on every Yoast SEO page or section and the new installation wizard, there was no real usecase for the tour anymore.
  • Bugfixes:
  • Fixes sorting the table in sitemaps.
  • Fixes a bug where keywords with a $ where not recognized.


Release Date: September 7th, 2016

  • Enhancements:
    • Adds Flesch Reading tests for Dutch and German.
    • Added info about author links in theme to disable setting on archives settings page.
    • Explicitly checks for public post type status when creating sitemap.
    • Removes frequency and priority from sitemap, see release post for clarification.
    • Improves sitemap “blocking files” notification.
    • Improves sitemap generation for posts when dealing with a large number of posts.
    • Improves reliability in some PHP configurations.
    • Improves styling for notices below tabs.
    • Adds @id fields to JSON LD output.
    • Adds table headings and labels to the bulk editor.
    • Improves the accessibility of the bulk editor.
    • Prevented loading the network admin when not network active.
    • Don’t show keyword filter in post list when keyword analysis is disabled.
    • Improves message for settings import.
    • Adds translations for notification counts.
    • Makes upload image buttons translatable.
    • Improves alignment of form fields.
    • Adds descriptions for breadcrumb and canonicals on category pages.
    • Improves accessibility on plugin conflict notification links.
  • Bugfixes:
    • Fixes a bug where a new post with focus keyword would show up as a post without a keyword on the dashboard.
    • Fixes a bug that would break rich term descriptions with large images.
    • Fixes cache check in dashboard widget, which could cause unnecessary queries.
    • No longer load toolbar styles when toolbar is disabled.
    • Fixes a bug to prevent “cannot modify headers” notice on export.
    • Fixes a bug to improve passive voice recognition.
    • Fixes a bug to improve sentence detection.
    • Fixes a bug that prevented the markings from working correctly.
    • Fixes a bug where select2 would generate a 404 on a non-supported language.
    • Fixes a bug where HTML attributes could be translated.
    • Fixes a bug where the og:image tag would be omitted.
    • Fixes a bug for canonicals for search pages with empty search queries.


Release Date: August 8th, 2016

  • Bugfixes:
  • Fixes a bug where apostrophes would be stripped from the focus keyword.


Release Date: August 2nd, 2016

  • Bugfixes:
  • Fixes a stored XSS issue in the Yoast SEO metabox. Thanks Hammad Shamsi for reporting and responsibly disclosing this issue.


Release Date: July 19th, 2016

  • Enhancements:
  • Adds readability checks for consecutive sentences beginning with the same word for the following languages:
  • English, German, French, Spanish.
  • Adds transition words check for German, French and Spanish.
  • Adds transliterations for the following languages:
  • Breton, Chamorro, Corsican, Kashubian, Welsh, Ewe
  • Estonian, Basque, Fulah, Fijian, Arpitan, Friulian
  • Frisian, Irish, Scottish Gaelic, Galician, Guarani
  • Swiss German, Haitian Creole, Hawaiian, Croatian
  • Georgian, Greenlandic, Kinyarwanda, Luxembourgish
  • Limburgish, Lingala, Lithuanian, Malagasy, Macedonian
  • Maori, Mirandese, Occitan, Oromo, Portuguese, Romansh Vallader
  • Aromanian, Romanian, Slovak, Slovenian, Albanian
  • Klingon (in Latin characters, not KLI PlqaD script yet)
  • Hungarian, Sardinian, Silesian, Tahitian, Venetian, Walloon
  • Improves the Russian transliteration.
  • Improves the feedback strings of content checks.
  • Adds a setting and a user option to disable the SEO analysis.
  • Adds the readability score to the post and term overview.
  • Disables the analysis marker buttons when switching from visual to text view in the editor.
  • Accessibility enhancements:
  • Improves the headings in the dashboard widget.
  • Improves the headings hierarchy on the following pages:
  • titles and metas
  • user profile
  • advanced settings
  • social settings
  • XML sitemap
  • general settings
  • Improves the headings hierarchy for dashboard alerts.
  • Improves the debug information headings.
  • Adds a legend for the title seperator on the titles and metas page.
  • Improves the intro text of the social tabs.
  • Improves consistency of buttons using WordPress styles.
  • Adds a background to the YoastSEO issue counter to improve readability.
  • Improves the focus style for the dismiss and restore buttons.
  • Improves the redirect attachment warnings style by using the native WordPress notices style.
  • Improves the links on the credit screen.
  • Improves the release video iframe by adding a title.
  • Improves the knowledge base results by making them focusable and operable with a keyboard.
  • Improves the admin bar menu items by making them focusable and operable with a keyboard.
  • Adds labels to the buttons of the knowledge base search for use with a screen reader.
  • Adds label to the search field in the knowledge base for screen readers.
  • Makes the knowledge base search button translatable.
  • Improves the semantics of the knowledge base results.
  • Improves the alignment of the icons in the metabox tab sections.
  • Improve code to be consistent with WordPress standards, props danielbachhuber.
  • Bugfixes:
  • Fixes a bug where non-ANSI characters would break the sitemap feature.
  • Fixes a bug where MS Edge would not display the traffic light image in the help center properly.
  • Fixes a bug where the style of the ‘open article’ button was overwritten and made unreadable.
  • Fixes the link of the FAQ that linked to a non-existing page.
  • Fixes a typo to make the KB search “Open” link translatable.
  • Reintroduces the text length check for taxonomies.
  • Fixes a bug where a 404 could be thrown when there was no locale set.
  • Fixes a bug where in certain cases a yoastmark would leave traces in the text, these are now removed.
  • Fixes a bug where the score bullet wouldn’t be shown on the frontend.
  • Fixes the generation of permalinks for new posts by ignoring the permalink sample and generating the permalink
    from the posttitle, props Robert Korulczyk.
  • Fixes getting the incorrect primary category when getting the permalink, props pawawat.


Release Date: June 30th, 2016

  • Fixed a bug in the 3.3.3 release that caused the release folder to not have a fix.


Release Date: June 30th, 2016

  • Bugfixes:
  • Fixes a bug where the focus keyword is not shown for posts created using WordPress SEO 2.x.
  • Fixes a bug where changing the title in the bulk editor could be used to trigger JavaScript for the current user.


Release Date: June 21st, 2016

  • Enhancements:
  • Removes non-minified files. This makes the download a lot smaller which will result in less cases of an incomplete or failed download.
  • Add setting and user option to disable the content analysis; The SEO analysis will still be present.
  • Change the overall content analysis bullet to be more lenient in non-English languages. This means it will be easier to get a green bullet for non-English languages.
  • Bugfixes:
  • Fix issue where the settings export zip file could be read from the uploads folder after doing an export.


Release Date: June 15th, 2016

  • Enhancements:
  • Adds help center to google search console page when not connected to google search console.
  • Adds video to the Yoast SEO dashboard to explain it.
  • Ships the production version of React instead of the development version.
  • Bugfixes
  • Fixes a bug where the primary category wouldn’t be in the permalink if get_permalink was called outside the loop.
  • Fixes a compatibility issue where we set $ to jQuery.
  • Fixes a bug with redirects on a subsite in a multisite installation, props nicholas-eden.
  • Fixes a bug where invalid HTML would throw a warning.
  • Fixes a bug where reading server variables using filter_input returns an empty result.
  • Fixes a bug where the passive voice and transition words would be shown on non-english language


Release Date: June 14th, 2016

  • Features:
  • Added a dashboard under the SEO menu item and moved all persistent notifications to this dashboard.
  • Added an indicator to the menu and admin bar about pending notifications and SEO problems.
  • Splits the analysis into content and keyword analysis.
  • Adds a ton of content feedback about the following properties:
  • The length of subheadings.
  • The length of text following a subheading.
  • The length of paragraphs.
  • The length of sentences.
  • The presence of transition words.
  • The presence of the passive voice.
  • Adds a marker button for specific properties to mark these in the editor:
  • The length of paragraphs.
  • The length of sentences.
  • The presence of passive voice.
  • The presence of transition words.
  • The presence of links with the focus keyword as link text.
  • Adds slug transliteration for the following languages, this means that we now match with both the non-transliterated keyword and the transliterated keyword:
  • Spanish, Polish, German, Nynorsk, Bokmål, Swedish, Finnish,
  • Danish, Turkish, Latvian, Icelandic, Faroese, Czech, Russian,
  • Esperanto, Afrikaans, Catalan, Asturian, Aragonese, Aymara,
  • English, French, Italian, Dutch, Bambara.
  • Adds a search box in the help center to search in the Yoast knowledge base.
  • Enhancements:
  • Adds missing alt tags to banners.
  • Adds a 50.000 URL hard limit to the sitemaps, this is what google recommends.
  • Moves social tab above settings tab in the metabox.
  • Adds live updating to the score indicator in the admin bar on the post edit page.
  • Optimize multiple sitemap cache clears by waiting until the end of the pageload to actual clear the cache.
  • Improved title separator radio buttons accessibility.
  • Removed Alexa verification from the plugin as it no longer works.
  • Bugfixes:
  • Fixes a bug where a quote inside an attribute in the XML sitemaps would cause to create invalid XML.
  • Fixes a bug where using a custom posts table would not result in correct output in the XML sitemaps.
  • Fixes an issue where canonical URLs didn’t always correctly have a trailing slash, thanks you for your input MatthewMi11er.
  • Fixes a bug where we didn’t match a focus keyword correctly if it contained a slash.
  • Fixes a bug where the content analysis would be executed too many times when typing in the snippet preview.
  • Fixes a bug where the wpseo_title filter couldn’t change the opengraph and twitter titles, props Xavi Ivars.
  • Fixes a bug where the focus keyword wouldn’t be saved when saving the post instantly after changing the focus keyword.
  • Fixes a bug where retrieving terms in the breadcrumbs wouldn’t be cached, props Jonny Harris
  • Fixes a bug where the help center wasn’t properly styled in Safari.
  • Fixes an XSS issue, props Hristo Pandjarov.
  • Removed:
  • Removes the ability to sort on the post score column, because the scores aren’t meant to be sorted.
  • Removes recalculation because there were too many
    issues with integration missing that can only be added on the actual post edit admin page.
  • Removes json_encode wrapper, it was only necessary for older WordPress versions.


Release date: May 6th, 2016

  • Bugfixes:
    • Fixes a bug in the text analysis when there are more images, the alt tags are not analysed as expected.
    • Fixes a fatal when the BCMath component has been disabled in the host environment.
    • Fixes a fatal in wp-admin when certain plugins which hide the login are activated.
    • Fixes a warning in the sitemap index when no post types are shown and a last modified date is being requested.
    • Adds missing capability checks in AJAX request responses.


Release date: April 28th, 2016

  • Bugfixes:
  • Fixes a regression where the post URL would be numerical when no post title was set.
  • Fixes an issue that would cause notifications not to be dismissed even though they should be.


Release Date: April 21th, 2016

  • Bugfixes:
  • Fixes a bug where the update notification cannot be dismissed
  • Fixes a bug where the notifications can be shown multiple times


Release Date: April 21th, 2016

  • Bugfix:
  • Fixes a bug where the text analysis was broken in certain languages in certain cases.


Release Date: April 20th, 2016

  • Bugfix:
  • Fixes bug where settings of the Advanced tabs “permalinks” and “rss” were no longer saved.


Release Date: April 20th, 2016

  • Features:
  • Adds an option to disable post format archives.
  • Adds template function to retrieve the primary term. The functions are yoast_get_primary_term_id and yoast_get_primary_term.
  • Enables primary term for every taxonomy by default.
  • Adds a primary category replacement variable: %%primary_category%%.
  • Adds a Yoast help center to every settings page with a screencast explaining that specific page.
  • Introduces new help buttons in place of qtip, which makes these descriptions much more accessible.
  • Enhancements:
  • Adds pinterest icon to the pinterest settings tab.
  • Clarifies the text on the pinterest settings tab.
  • Improves searchability of select inputs by using select2.
  • Adds filters to customize sitemaps’ , props Mark Walker.
  • Uses wp_register_script and wp_register_style on init so other plugins can customize our assets.
  • Changes minimum text length content analysis check for terms to require 150 words instead of 300.
  • Removes analyses from the term analysis that weren’t applicable to terms.
  • Improves code architecture of sitemaps.
  • Moves the OnPage.org settings to the webmaster tab.
  • Improves performance when importing or migrating posts, thanks sun.
  • Adds caching to empty sitemaps.
  • Adds parsing of shortcodes before recalculating all posts.
  • Improves detection of static xml sitemaps.
  • Makes sure external links in the metabox open in a new window, props Borja Abad.
  • Makes the descriptions on the archives tab of the titles and meta’s more clear.
  • Removes noydir setting since Yahoo! directory doesn’t exist anymore.
  • Removes other tab from the import screen, these plugins have all been deprecated.
  • Removes all settings to hide specific tags inside the head.
  • Improves accessibility of add keyword modal.
  • Improves accessibility of metabox.
  • Switches all yoa.st links to be HTTPS.
  • Removes Google+ specific post and term meta fields since Facebook and Google+ metadata were conflicting.
  • Moves the replace vars help docs to the help center module on the titles and meta’s settings page.
  • Bugfixes:
  • Fixes a bug where the breadcrumbs title field was hidden even though the theme supported breadcrumbs.
  • Fixes a bug where underscores in like queries weren’t correctly escaped, thanks Konstantin Kovshenin and Damian Hodgkiss
  • Fixes a bug where text inside a shortcode wouldn’t be removed correctly in auto generated meta descriptions, props Kevin Lisota
  • Fixes a bug where a message to add headings to the text would only be shown if a keyword was set.
  • Fixes a bug where a message to add links to the text would only be shown if a keyword was set.
  • Fixes compatibility issues with plugins that included mootools or prototypejs.
  • Fixes a bug where the 404 page didn’t correctly have a noindex and a nofollow set.
  • Fixes a bug where internal taxonomies would be shown in the sitemap exlusion settings.
  • Fixes a bug in the activation and deactivation where we would execute our code for every network, props Felix Arntz.
  • Fixes a bug where the primary category wasn’t taken into account when calling get_permalink on the frontend.
  • Fixes a compatibility issue with MultilingualPress, props Thorsten Frommen.
  • Fixes compatibility issues with Easing Slider and WooCommerce Variation Swatches and Photos.
  • Fixes a bug where a JavaScript template wasn’t included when the dependent JavaScript was, props Darren Ethier.
  • Fixes a bug where the descriptions for removing the stopwords and the ?replytocom were merged.
  • Fixes a bug where the recommended Facebook image dimensions weren’t the same as the Facebook documentation.
  • Fixes a bug where the dashboard widget wasn’t cached correctly, props Marko Heijnen
  • Fixes a bug where the sitemaps weren’t cached correctly on 32 bit systems.
  • Fixes an issue where multi term archives didn’t have a noindex set.
  • Fixes a bug where we would do an AJAX request on every keystroke in the focus keyword field.
  • Fixes a bug where we would check for shortcodes on every keystroke in the content field.
  • Fixes a bug where rewrite rules wouldn’t be flushed correctly on plugin activation.
  • Fixes a bug where the GlotPress banner wouldn’t load on HTTPS sites.


Release Date: March 23rd, 2016

  • Enhancements:
  • Makes sure the permalink on the frontend also makes use of the primary category if one has been selected.
  • Bugfixes:
  • Fixes a compatibility issue with the upcoming WordPress 4.5, where the Yoast SEO metabox and columns were no longer shown on taxonomy and term edit pages.
  • Fixes a bug where the default category that was shown in the breadcrumbs was no longer the most deeply nested one.
  • Fixes a bug where the file editor could be accessed by non admin users. Thanks Jörn Lund for the patch!
  • Fixes a JS error on the post edit page that was caused when the WP slugeditor wasn’t present.
  • Fixes an issue where our indexability check would fail on installs with WordFence that have the “block fake Google crawlers” setting enabled.


Release Date: March 8th, 2016

  • Bugfixes:
  • Fixes a bug where part of the Yoast SEO metabox was no longer translated.
  • Fixes a bug where the post slug would be overwritten with the post ID in case a post was autosaved and did not have a title yet.

= 3.1 =

Release Date: March 1st, 2016

  • Features:
  • Added an interface to select a primary category for a post, which are used in the post’s breadcrumbs and have a few other nice SEO advantages.
  • Added SEO score column to the taxonomy overviews.
  • Enhancements:
  • Replaces all checkboxes and radio buttons on settings pages with styled toggles.
  • Adds a new interface for the snippet preview which addresses most of the known UX issues:
  • To clarify how the snippet preview can be edited, we’ve added an ‘edit’ button.
  • Many users were looking for the “SEO title” and “Meta description” input fields. Those have been reintroduced and can be edited by clicking the edit button.
  • We’ve gotten rid of the horribly inaccessible contenteditable elements and moved back to labeled input elements.
  • The progress indicator for both SEO title and meta description has returned in the form of progress bars underneath the input elements.
  • We’ve made a clear distinction between the snippet preview and the snippet editor and have tried to clearly signify which input fields affect which parts of the snippet preview.
  • We’ve made sure both preview and snippet editor handle “%%” variables well. In the editor we show the variables and in the preview we render them.
  • We’ve made sure templates that are set under “Titles & Metas” are well reflected in the snippet preview and editor. When they are set, they are shown as placeholder text in the input fields.
  • The progress bars also take into account templates and “%%” variables, giving clearer indication if anything should still be added to the SEO title or meta description.
  • We’ve reintroduced behavior where a (generated) example meta description is made grey in the snippet preview to indicate that it’s not been set.
  • Adds og:image:width and og:image:height metatags to ensure an image is properly rendered for a user the first time a page is shared on Facebook.
  • Includes a few minor performance improvements for the content analysis.
  • Slightly optimizes the way options are handled. We now only fetch the options we need.
  • Makes sure SEO scores for taxonomies are also taken into account when recalculating the SEO scores.
  • Updated the list of locales supported by Facebook.
  • Makes sure the notification to see the latest changes only pops up on major and minor version and is dismissible even if JavaScript is broken.
  • Corrected priority of gallery images in Twitter cards.
  • Added filters to allow filtering term and post content before it is sent to the recalculation tool for analysis.
  • Improved the way sitemaps are invalidated.
  • Duplicate content prevention / Crawl budget improvement: We now hide XML sitemaps for internal WP taxonomies like link category, nav menu and post format.
  • Removed all functionality related to Yahoo! directory, since it no longer exists…
  • Makes sure the post type archive link for the “Post” post type is not shown in the breadcrumbs.
  • Temporarily disabled all non-vital notifications until we come up with a more user-friendly way of dealing with them.
  • Bugfixes:
  • Fixes a bug where the date was no longer shown in the snippet preview even when the option to show it was selected under “Titles & Metas”.
  • Fixes a reported “property of non-object” notice that occured when no valid screen object was available. Thanks Chris Jean for the fix.
  • Fixes a bug where Google Search Console would display last_crawled and last_received dates in the wrong format.
  • Fixes a bug where the wpseo_canonical filter could still be overridden by an admin setting. This is no longer the case.
  • Fixes shorthand date formats for Open Graph tags.
  • Fixes a bug where calls to translate.yoast.com would fail because of issues with HTTPS.
  • Fixes a bug where the content analysis would not work properly anymore when switching multiple times between “text” and “visual” in tinyMCE.
  • Fixes a bug where the Yoast SEO metabox was no longer loaded on the Media edit page.
  • Fixes an “invalid argument warning” in the options. Thanks Melvin Tercan for fixing.
  • Fixes a bug where we were causing JS errors by hooking to erroneously on AjaxComplete. This solves multiple compatibility issues including the ones with “Advanced Custom Fields”.
  • Fixes a bug where saving a nav menu item would cause unnecessary pings to search engines, also resulting in timeouts and long load times for saving menu’s. Thanks Ben Constable for providing a fix.
  • Fixes memory issues caused by doing post counts with WP_Query. Thanks Emre Erkan for fixing.
  • Fixes a bug where sitemap caches were not properly cleared for sites that use external object caching.
  • Fixes a bug where stopwords were no longer stripped from the slug that was generated by WordPress.


Release Date: December 23rd, 2015

  • Enhancements:
  • Removes email notifications for OnPage.org indexability check. It caused more issues than it solved.
  • Adds several UX improvements to the snippet editor, making it more clear it is editable.


Release Date: December 1st, 2015

  • Bugfixes:
  • Fixes the recalculate tool that was broken with the Localized Flesch Reading ease change…


Release Date: December 1st, 2015

  • Enhancements:
  • Made it possible to opt out from the OnPage.org indexability check.
  • Contains a few small performance enhancements in the Content Analysis.
  • Only includes Flesch Reading ease test when site language is set to English, since it doesn’t really add value in other languages yet.
  • Bugfixes:
  • Fixes a lot of issues with dismissible notices. Thanks Craig Pearson for writing the patch!
  • Fixes several issues with keyword recognition for keywords which contain punctuation.
  • Fixes an issue where keywords containing diacritics were not recognized in alt tags.


Release Date: November 25th, 2015

  • Enhancement: Made the “Analyze entire site” button have better color contrast and resemble JetPack. Thanks WPExplorer for the contribution.
  • Bugfixes:
  • Fixes JS errors in combination with Give plugin, CMB2 Framework, ACF layout builder and any other plugin that replaces the editor with something else. Thanks a lot Daniel Seripap for fixing.
  • Fixes JavaScript error on post types without ‘editor’ capability. Thanks Aaron Hipple for the fix and Zvonko Biškup for testing.
  • Fixes a lot of text analysis issues for languages with non-latin scripts, including the “0% keyword density” issues.
  • Fixes an issue where html tags were not stripped properly from taxonomy descriptions for custom taxonomies.
  • Fixes possible “URI too long” errors when parsing shortcodes in the content before it is analyzed.


Release Date: November 19th, 2015

  • Bugfixes:
  • Fixes a bug where the snippet preview was broken.


Release Date: November 19th, 2015

  • Bugfixes:
  • Fixes a bug where disabling the visual editor caused our content analysis to break.
  • Fixes a bug where the content analysis would break on installs that replace tinyMCE with ckEditor. Currently only supports the html editor.
  • Fixes a bug where slug changes were not properly synchronized in the snippet preview.
  • Fixes a bug where long slugs could be broken by wrongful synchronization with the snippet preview.
  • Fixes a bug where digits were not analyzed well in the content, causing focus keywords or keyphrases with digits to no longer be matched.
  • Fixes a bug where the url in the snippet preview was not in line with permalink settings. Fixed for permalinks containing the post name.
  • Fixes a bug where focus keyphrases of more than two words would not be recognized properly in the content.
  • Fixes a bug where the translation files were corrupted causing the translations to no longer work.
  • Enhancements:
  • Fixes caching problems. We’ve versioned file names for assets that have changed to circumvent caching strategies that consider preventing regular cache busting a good idea…


Release Date: November 18th, 2015

  • Bugfixes:
  • Fixes a bug where users where getting error notifications about how their site was not indexable when in fact no check had been performed yet.
  • Fixes a few broken links to help docs about the OnPage.org integration.
  • Fixes an edgecase where the indexability check would go wrong for sites that filter the home url.
  • Fixes a bug where the admin email that was sent to report the current indexability status was not rendered as HTML.

= 3.0 =

Release Date: November 18th, 2015

  • Features:
  • Adds realtime content analysis to the Yoast SEO metabox for all post types and taxonomies.
  • Adds a tool to recalculate all SEO scores using the new client side analysis.
  • Adds a content analysis plugin for parsing shortcodes before the content is analyzed. This means the snippet preview will now take the rendered content of shortcodes into account.
  • Adds a content analysis plugin for parsing replace vars before the content is analyzed, allowing templates set in the Yoast SEO admin to work everywhere.
  • Adds a weekly check if the homepage is indexable (in collaboration with OnPage.org).
  • Adds possibility to import titles, metas and settings from the WPSEO.de plugin.
  • Adds possibility to set Facebook (Opengraph), Twitter and Google+ metadata for taxonomies.
  • Enhancements:
  • We’ve completely revised the UX of the Yoast SEO metabox. We’ve introduced multiple sections which in turn can contain one or more tabs.
  • Makes the Yoast SEO metabox on the taxonomy edit page the same as on the post edit page.
  • Makes sure the capability for the General Settings menu is also wpseo_manage_options_capability.
  • Adds a fix to the tour allowing for multiple plugins to use WP pointers at the same time.
  • Makes sure all Yoast SEO settings pages are also accessible through the WP admin bar.
  • Bugfixes:
  • Fixes a bug where the og:image would not be set, even when a default image was available.
  • Fixes a bug where the links in the sitemap would ‘randomly’ change from https to http or the other way around (in very rare circumstances).
  • Fixes a bug where it was not possible to upload different images for different social media in the post metabox.
  • Fixes a bug where users would see the after-update notice, but were not allowed to visit the about page.
  • Fixes a bug where we were not properly splitting taxonomy metadata when a shared taxonomy term got split through a Cron job, props Daniel Homer.
  • Other notable changes:
  • Adds a JavaScript API for registering data modifications that is quite similar to add_filter/apply_filters in WordPress. Allows for filtering data before it is analyzed. See YoastSEO.js.
    • Adds a JavaScript API for adding content analysis tests, see YoastSEO.js.
  • Because we moved the entire content analysis to JavaScript, we had to remove the following PHP filters:
  • wpseo_pre_analysis_post_content. Alternative: Modifications API.
  • wpseo_metadesc_length. Functionality removed.
  • wpseo_metadesc_length_reason. Functionality removed.
  • wpseo_body_length_score. Alternative: Content Checks API.
  • wpseo_linkdex_results. Alternative: Content Checks API.
  • wpseo_snippet. Functionality removed.


Release Date: September 16th, 2015

  • Bugfixes:
  • Fixes the Twitter image metatag that was invalidated after a recent API change by Twitter. Thanks Andy Piper for notifying us.
  • Removes all tests directories from the release. Props Edward Beckett for reporting.
  • Updated the minimum required version of WordPress to 4.0.


Release Date: August 6th, 2015

  • Bugfixes:
  • Fixes a bug where the focus keyword test in the Yoast SEO metabox was broken as a regression of removing the autocomplete functionality.


Release Date: August 6th, 2015

  • Removes the autocomplete functionality from the focus keyword field in the Yoast SEO metabox because Google is shutting down its autocomplete API as of August 10th.
  • Enhancements:
  • Introduces a dismissible notice encouraging users to connect with Google Search Console.
  • Improves the dashboard widget to only show posts which are actually editable by the current user.
  • Makes the plugin conflict notices persistent and dismissible. Once dismissed, it will no longer be shown for the specific set of conflicting plugins the notice has been dismissed for.
  • Contains a few textual improvements.
  • Makes sure the counts are updated correctly and intuitively when marking a Search Console issue as fixed.
  • Bugfixes:
  • Fixes a bug where current_user_can was called before init, props Claudio Sanches.
  • Fixes a bug where the article:publisher metatag was also included on pages that were not of type ‘article’.
  • Fixes a bug where the link to the list of posts with the same focus keyword was broken for focus keywords containing a space.
  • Fixes a bug where a h3 header was being closed with a h2 closing tag.
  • Fixes a bug where the Google Search Console issues table was giving errors on installs running on PHP 5.2.
  • Fixes a bug where the sitemap caches were no longer being cleared when running Yoast SEO in the upcoming 4.3 release of WordPress.


Release Date: July 23rd, 2015

  • Bugfixes:
  • Fixes a bug where non-admin users were no longer able to update their profile with Yoast SEO active.
  • Fixes a bug where all labels in the Yoast SEO admin were bold.


Release Date: July 22nd, 2015

  • Bugfixes:
  • Makes sure authors and editors cannot submit advanced metadata on a post when the advanced tab in the metabox has been disabled for them. Thanks Peter Allor from IBM for finding and reporting this issue.
  • Fixes a bug where upgrading to version 2.3 would occasionally cause WSOD’s on both admin and frontend. We were unable to pinpoint the exact conflicting plugins and themes, but we are quite confident it was caused by us using, and others hooking into, WP_Query too early.

= 2.3 =

Release Date: July 21st, 2015

  • Features:
  • Adds full integration with Google Search Console (formerly: Google Webmaster Tools). It is now possible to see all errors from Google straight in your WordPress install. If you have Yoast SEO Premium, you’ll even be able to fix those errors by redirecting the broken urls.
  • Adds a dashboard widget showing published posts’ SEO scores. Thanks Brandon Hubbard for the idea!
  • Adds a customizer panel for Yoast SEO Breadcrumbs if breadcrumbs are enabled or the active theme has declared theme support for it. Props again to Brandon Hubbard for his awesome contribution.
  • Enhancements:
  • Renames plugin from “WordPress SEO by Yoast” to “Yoast SEO”.
  • Adds a warning advising to change the tagline, if a site still has the default WordPress tagline “just another WordPress site”.
  • Changes the default columns visibility for the edit posts overview page. Only the SEO score column is now visible by default.
  • Contains several en_US string improvements, including a fix for a typo in the word “typos”… Thanks Gary Jones for redacting!
  • Adds a filter to allow filtering the content before analysis in the Twitter class, props Pete Nelson.
  • Adds a link to our knowledge base on how to retrieve a Facebook admin user ID.
  • Bugfixes:
  • Fixes a bug where sitemaps for taxonomies with no eligible terms were still included and responded with 404 errors when visited.
  • Fixes a bug where breadcrumbs were wrongly nested on archive paginations, props Filippo Buratti.
  • Fixes a bug where the wrong separator was used after import/export.
  • Fixes a bug where XML Sitemaps query invalidation caused other queries to fail as well.
  • Fixes a bug where the wrong placeholder was being used for the search term string in the JSON+LD Search markup.
  • Fixes a bug where the link to the newsletter signup in the tour was broken by uncommunicated changes in Mailchimp.
  • Fixes a bug where the Edit Files settings page in the network admin was broken, props Ajay D’Souza.
  • Fixes a broken link in the advanced tab of the Yoast SEO metabox to the titles and meta’s settings.
  • Other notable changes:
  • Removed the possibility to redirect a post in the advanced tab of the Yoast SEO metabox.
  • Moved the option to include a post in sitemap from the advanced tab of the Yoast SEO metabox to the sitemap settings.
  • Removed the option to configure sitemap priority in the advanced tab of the Yoast SEO metabox.
  • Added multiple checks to prevent plugin compatibility issue between Yoast SEO and old versions of Google Analytics by Yoast.
  • Updated the banners with new designs.


Release Date: June 11th, 2015

  • Makes sure users can close the tour by circumventing possible JavaScript caching issues that might occur.

= 2.2 =

Release Date: June 10th, 2015

  • Enhancements:
  • Contains several accessibility improvements, including ‘for’ attributes for labels and several links to explanatory articles.
  • Adds support for creating partial sitemaps with WP CLI, props Lars Schenk.
  • Add Google’s mobile friendly test to the SEO toolbar, props Brandon Hubbard.
  • Makes sure slugs are not being stripped if the remaining slug is less than 3 characters, props andyexeter.
  • Shows an activation error when dependencies were not installed properly with composer.
  • Added a filter to allow the RSS footer to be dynamically shown/hidden, props Hugh Lashbrooke.
  • Added many translator comments to help translators more easily get the context.
  • Made sure Open Graph article tags are added separately, following up on the Open Graph specification.
  • Adds recommended image sizes per Social network in the social tab of the SEO metabox.
  • Removes the tracking functionality.
  • Shows a dismissible notice with a link to the about page that is shown after every update. The user is no longer being redirected and only has to dismiss the notice once for all sites (in case of multisite).
  • Adds a link to the about page to the general tab of the settings dashboard.
  • Makes the tour dismissible on user level.
  • Adds Twitter profile to JSON LD output.
  • Twitter profile input field now also accepts full url and automatically strips it down to just the username.
  • Only adds the JSON LD output to the frontpage, since it’s not needed on other pages.
  • Makes all Yoast SEO notices dismissible.
  • Bugfixes:
  • Fixes a bug where the widgets were removed from every XML file. This is now only the case for the sitemaps.
  • Fixes a bug where validation errors were shown for the wrong variables in the titles and metas settings.
  • Fixes a bug where the SEO toolbar was broken.
  • Fixes a few typos, props Gary Jones.
  • Fixes a bug where links in tooltips were not impossible to click.
  • Fixes a broken link to the permalinks section of the advanced settings, props Michael Nordmeyer.
  • Fixes settings import on multisite.
  • Fixes a bug where the sitemap could contain datetimes in the wrong timezone.
  • Fixes a bug where the wrong Facebook user ID was added to the fb:admins meta tag. Adding FB admin user id is now a manual process.
  • Fixed Open Graph and Twitter cards on static posts pages
  • Fixes a bug where sitemap cache was not always cleared after saving the Yoast SEO settings.
  • Security:
  • Fixes a possible XSS vulnerability in the snippet preview. Thanks Charles Neill and Mazen Gamal for discovering and responsibly disclosing this issue.


Release Date: April 21st, 2015

  • Bugfixes:
  • Fixes a bug where the JSON+LD output was outputted twice when company or person info wasn’t set.
  • Fixes a compatibility issue with Video SEO and WooCommerce SEO add-ons causing WSOD on the frontend for video’s and WooCommerce products.
  • Fixes a compatibility issue with BBPress caused by hooking current_user_can too early.

= 2.1 =

Release Date: April 20th, 2015

  • Features:
  • Added support for website name JSON+LD markup.
  • Enhancements:
  • Makes sure Twitter cards are by default enabled since they don’t need to be validated anymore by Twitter.
  • Removes the Twitter url meta tag, since Twitter no longer uses it.
  • Shows a validation error when a user selects a featured image for a post that is smaller than 200×200 pixels.
  • Shows a validation error when a user tries to use shortcodes in the titles and meta’s settings page that are incompatible with the type of content those titles and meta’s are associated with.
  • Makes sure no taxonomy metadata is lost with the upcoming 4.2 version of WordPress.
  • Upgraded to Facebook Graph API 3.0 for fetching Facebook user ID’s straight from Facebook.
  • Made the plugin conflict notices more user friendly, explaining better which piece of functionality might be impacted, offering a link to the corresponding settings and a button to deactivate the conflicting plugin.
  • Bugfixes:
  • Fixes a bug where the sitemaps were no longer being served from WP transient cache.
  • Fixes a bug where breadcrumbs weren’t nested properly.
  • Fixes a possible “headers already sent” error in the sitemaps.
  • Fixes a notice for the homepage URL in post type sitemaps.
  • Fixes an “undefined index” notice on the sitemaps.
  • Fixes an “undefined index” notice in the breadcrumbs.
  • Fixes a bug where translations were not loaded when used as MU-plugin.
  • Fixes a JS error that was raised when editing post-types without a TinyMCE editor.
  • Security:
  • Fixes a possible XSS vulnerability. Thanks Johannes Schmitt from Scrutinizer CI for discovering and responsibly disclosing this issue.


Release Date: April 1st, 2015

  • Bugfixes:
  • Fixes an issue where (in rare cases) people upgrading to 2.0 got stuck in a redirect loop on their admin.
  • Fixes a broken link in the Dutch translation, causing the Pinterest tab on the Social settings page to overflow into the Google+ tab.
  • Fixes a small typo on the about page.

= 2.0 =

Release Date: March 26th, 2015

  • Features:
  • Simplified and revised Admin menu’s:
  • Moved all advanced functionality to one “Advanced” submenu page.
  • Moved the bulk editor, the export functionality and the file editor to one “Tools” submenu page.
  • Improved consistency and usability of settings pages by having them use exactly the same, tab-based, styling.
  • Made it easy to output structured data for social profiles, person and company profiles, for use in Google Knowledge Graph.
  • Enhancements:
  • Makes sure the user is redirected to the last active settings tab after saving.
  • Bugfixes:
  • Fixes a bug where custom field variables were no longer working in the snippet preview.
  • Fixes a bug where the $post global was emptied by our Frontend class, causing conflicts with other plugins.
  • Fixes a bug where variables weren’t replaced in the og:description meta tag.
  • Fixes a bug where the breadcrumbs caused an undefined variable notice.
  • Under the hood:
  • Contains an incredible amount of code style improvements, making the code cleaner and more readable.
  • Makes sure every function in the plugin is documented using PHPDoc by having it checked automatically by the Codesniffer.
  • Refactored a lot of legacy code in the admin, mainly with regard to the way output is rendered. Provides for a better separation of concerns, making the code more comprehensible and re-usable.
  • Deprecated a large amount of form methods and moved them to the Yoast_Form class. Click here for the list of deprecated methods.
  • Deprecated a large amount of utility functions and moved them to the WPSEO_Utils class. Click here for the list of deprecated functions.


Release Date: March 11th, 2015

  • Security fix: fixed possible CSRF and blind SQL injection vulnerabilities in bulk editor. Added strict sanitation to order_by and order params. Added extra nonce checks on requests sending additional parameters. Minimal capability needed to access the bulk editor is now Editor. Thanks Ryan Dewhurst from WPScan for discovering and responsibly disclosing this issue.

Release Date: February 23rd, 2015

  • Bugfixes:
  • Repair missing dependencies…

Release Date: February 23rd, 2015

  • Bugfixes:
  • Fixes a bug where the rel=”next” and rel=”prev” links were broken for all taxonomies.
  • Removes an obsolete quote from the html for the seo metabox.

Release Date: February 19th, 2015

  • Bugfixes:
  • Fixes a bug where the keyword analysis was broken.
  • Fixes a bug where our plugin raised a fatal error in the wpseo_admin bar when the $wpseo_front global was used.


Release Date: February 17th, 2015

  • Bugfixes:
  • Fixes a bug where the translations were corrupted due to an issue with out glotpress grunt task.


Release Date: February 17th, 2015

  • Enhancements:
  • Contains lots of performance optimizations, including removal of unnecessary inclusion and defined checks for every classfile, refactoring of frontend logic, cutting unnecessary inheritance chains et. al.
  • Adds Twitter gallery cards.
  • Adds Twitter cards for non singular pages (including Homepage).
  • Allows archive titles & meta to be set on non public post types that do have a public archive, props xeeeveee.
  • Huge performance gain for enrich_defaults(), props Koen Van den Wijngaert.
  • Nextscripts removed from the OG conflict list.
  • Added full Composer support, switched to Composer for dependency management and autoloading.
  • Bugfixes:
  • Fixes a bug where new posts weren’t always added to the post sitemap properly in case of multiple sitemaps.
  • Fixes a grammatical error in the tutorial.
  • Fixes a bug where %%currentyear%% shortcode wasn’t parsed well in the meta description.
  • Fixes an undefined index notice in the opengraph functionality.
  • Fixes a bug where variable placeholders were not always assigned the correct value, props Andy Sozot for reporting and Juliette for fixing.
  • Fixes a bug with SEO score on servers using international number formats.
  • Fixes broken backward compatibility / snippet preview, props Juliette.
  • Fixes a bug where the %%page%% shortcode wasn’t properly rendered in the titles and meta’s.
  • Fixes a bug where custom replacement variables where not properly rendered when using them in multiple fields.
  • Fixes at least a large part of the keyword density 0% issues.
  • Corrected price on WooCommerce SEO banner.


  • Security fix: fixed possible cross scripting issue with encoded entities in a post title. This could potentially allow an author on your site to execute JavaScript when you visit that posts edit page, allowing them to do rights expansion or otherwise. Thanks to Joe Hoyle for responsibly disclosing this issue.

= 1.7 =

  • Features:
  • Adds Twitter inputs to the Social tab.
  • Tries to purge Facebook cache when OpenGraph settings are edited.
  • Added a new box promoting our translation site for non en_US users.
  • Added several new tools (Pinterest Rich Pins, HTML Validation, CSS Validation, Google PageSpeed), props bhubbard
  • Enhancements:
  • Functionality change: when there’s a featured image, output only that for both Twitter and FB, ignore other images in post.
  • UX change: rework logic for showing networks on Social tab, social network no longer shows on social tabs if not enabled in admin.
  • Always output a specific Twitter title and description, as otherwise we can’t overwrite them from metabox.
    • Check for conflicts with other plugins doing XML sitemaps or OpenGraph.
    • Qtip library replaced with Qtip2.
    • Merged several similar translation strings, props @ramiy
    • Several RTL improvements, props @ramiy
    • Several Typo fixes, props @ramiy
    • Updated Open Site Explorer Link, props bhubbard
    • Updated all links to use // instead of https:// and http://, props bhubbard
    • When importing from AIOSEO, on finding GA settings, advertise Yoast GA plugin.
    • Makes sure stopwords are only removed from slug on publication.
    • Updated translations.
  • Bugfixes:
  • Fixes a bug where the wrong image was being displayed in twitter cards.
  • Fixes a bug where facebook would display the wrong image.
  • Fixes a bug where last modified in sitemap was broken.
  • Fixes a bug wher SEO-score heading made the table row jump on hover because there wasn’t enough place left for the down arrow.
  • Removed a couple of languages that were not up to date.


  • Bugfixes:
  • Revert earlier logic change that broke taxonomy sitemaps.


  • Bugfixes:
  • Fixed security issue with XSS in bulk editor, props @ryanhellyer.
  • Fix bug where URL would show wrongly in snippet preview for static homepage.
  • Fix bug where filtering for posts without a focus keyword in the posts overview wouldn’t work.
  • Fix a bug where code wouldn’t be escaped in the bulk editor.
  • Enhancements:
  • When meta description is present, og:description is filled with that on category pages.
  • Texturize some pointers, props @nacin.
  • Fix typo in tour, props @markjaquith.
  • Code optimization in the replace vars functionality, props @dannyvankooten.


  • Bugfixes:
  • Remove tags from title and description for snippet preview.
  • Fix several notices.
  • Improve escaping of values in the bulk editor before saving.
  • Enhancements:
  • New admin icon using SVG, which uses proper color.
  • Introduced a filter for the XML Sitemap base URL, wpseo_sitemaps_base_url
  • Introduced a filter for the JSON+LD output: wpseo_json_ld_search_output
  • For developers: the GitHub version now contains a full Grunt implementation for many actions.

= 1.6 =

This update removes more code than it adds, because Google stopped support for rel=author. It adds the new json+ld code for search in sitelinks though, so could have some cool results!

  • Bugfixes:
  • Removed leftover code for the deleted HTML sitemap functionality.
  • Fix a bug where the wrong $post info would be used for the metabox, props mgmartel.
  • Fix the way we replace whitespace to be more compatible with different encoding, props Jrf.
  • Enhancements:
  • Implement new sitelinks search box json+ld code. Enabled by default, to disable use the new disable_wpseo_json_ld_search filter. To change the URL being put out use the wpseo_json_ld_search_url filter.
  • Improved the onboarding tour to be more in line with the current status of the plugin.
  • Other:
  • Removed all code to do with rel=author as Google has stopped that “experiment”, see this blog post for more info.
  • i18n
  • Updated da_DK, fa_IR, fr_FR, hr, hu_HU, nl_NL, pt_BR and tr_RK


  • Bugfixes:
  • Fixed a dot without explanation on the page analysis tab.
  • Fix save all feature bug in Bulk Editor as reported (and fixed) by vdwijngaert here.
  • Fix bug where meta description based on a template wouldn’t show up on author archive pages.
  • Fix bug where shortlink HTTP header wouldn’t be removed when checking the remove shortlink function as reported here.
  • Fix a bug where force title setting would be reset on upgrade / update.
  • Fix warning being thrown in breadcrumbs code.
  • Enhancements:
  • Removing sitemap transients when updating the plugin, to make sure XML sitemaps always use latest code.
  • Styling of metaboxes is more in line with WordPress core.
  • Add new %%user_description%% replacement tag.
  • Add option to remove users with zero posts from the XML sitemap.
  • Move SEO data on term edit pages to lower on the page, to not interfere with themes.
  • Code: use WP time constants as introduced in WP 3.5.
  • Other:
  • Removing html-sitemap shortcode, it’ll reappear in WordPress SEO Premium when it actually works.

Release Date: August 14th, 2014

  • Bugfixes:
  • Prevent dying on edit post page for new posts / pages without focus keyword.
  • Fix replacement of %%excerpt%% in snippet preview.

Release Date: August 14th, 2014

  • Bugfixes:
  • Fix wrong SEO Analysis value icon, regression from
  • Enhancements:
    • Add role specific removal from XML Author sitemap
    • Add option to exclude user from XML Author sitemap on user profile page

Release Date: August 14th, 2014

  • Bugfixes:
  • Fixed a potential error with $canonical not being a string after being filtered.
  • Fixed more bugs with first paragraph keyword detection.
  • Fixed bug in saving new opengraph title and images variables in the social settings.
  • Fixed bug where SEO score incorrectly reported as ‘Bad’ when no focus keyword set, props smerriman for finding, props Jrf for the fix.
  • Override woo_title() output harder than before to remove need for force rewrite with WooThemes themes.
  • Enhancements:
  • Replace %%parent_title%% variable client side through JS.
  • i18n
  • updated ar, cs_CZ, fr_FR, hr, pl_PL, pt_BR and ru_RU
  • new .pot file based off of the 1.5.5 version


Release Date: August 12th, 2014

  • Bugfixes:
  • WP Shortlinks weren’t always removed when user did choose to remove them as reported in issue #1397, props Firebird75.
  • Fixed the way we prevent Jetpack from outputting OpenGraph tags. Props jeherve.
  • Symlinking the plugin should now work. Props crewstyle and dannyvankooten.
  • Fix warnings on new site creation multisite as reported in issue #1368, props jrfnl and jennybeaumont.
  • Fixed redirect loop which occurred on multi-word search or when search query contained special characters and the ‘redirect ugly URL’s’ option was on, as reported by inventurblogger in issue #1340.
  • Fixed double separators in snippet preview as reported by GermanKiwi in issue #1321, props Jrf.
  • Fixed slashes in title in snippet preview as reported by fittedwebdesign in issue #1333, props Jrf.
  • Fixed re-introduced js compatibility issue with Soliloquy slider as reported by ajsonnick in issue #1343, props Jrf.
  • Fixed a bug where we could do a query in XML Sitemaps even when there were no posts to query for.
  • If the sitemap is empty, add the homepage URL to make sure it doesn’t throw errors in GWT.
  • Change how we set 404’s for non existing sitemap files, as reported in #1383 props Dinglebat.
  • Fix issues with conflicting expectations being plugins/theme of the user meta twitter field – url vs twitter id, props Jrf.
  • Fix how the first paragraph test for the keyword is done after a solid bug report by squelchdesign.
  • Fix how we’re handling protocol relative image URLs in the XML sitemap.
  • Fix page analysis slug test for keywords with special characters.
  • Properly set “No score” result for posts that have no focus keyword.
  • Enhancements:
  • Drastically improved performance of snippet preview rendering.
  • Added Facebook / OpenGraph title input and Google+ title input and image upload field to Social tab.
  • Added Facebook / OpenGraph title input for the homepage on SEO -> Social settings page.
  • Changed Facebook / OpenGraph default image and homepage image input fields to use the media uploader.
  • Added a new title separator feature on the Titles admin page.
  • Merged the bulk editor pages for titles and descriptions into one menu item “bulk editor”.
  • Added noimageindex option to advanced meta robots options.
  • Bulk editor rights are no longer added for contributors, only for editors and up.
  • If an archives meta description template has %%page variables, show it on page 2 and onwards of archives too.
  • Add a confirm dialog when resetting setting to default.
  • Add sorting by publication date in bulk editor as requested by krogsgard here.
  • Other:
  • Remove references to deprecated Video Manual plugin.

Release Date: July 16th, 2014

  • Bugfixes:
  • Fixed several notices for undefined variables.
  • Properly trim meta description to its desired size again, regression caused in 1.5.4.
  • Fix empty last modified date for term sitemaps in sitemap index.
  • Fix bug where wpseo_sitemap_exclude_empty_terms filter wouldn’t work for index sitemap.
  • Enhancements:
  • Improve nonce checking in bulk title & description editor.
  • Prevent direct access to XSL file.
  • Improve code styling to match WordPress code standard even more strictly, props Jrf.
  • Add button to copy home meta description to home OpenGraph description.

Release Date: July 15th, 2014

  • Bugfixes:
  • Properly minified the metabox JS file, fixing snippet preview, props Jrf.
  • Format unix timestamp to string in sitemap, fixes possible fatal error in XML sitemap.


Release Date: July 15th, 2014

  • Bugfixes
  • Refactored the variable replacement function for better and faster results and more stability. This should fix most if not all problems users where having with variables not being replaced in the title, meta description, snippet preview etc – props Jrf.
  • Fixed: wpseo_replacements filter was being run before all replacements were known.
  • Fixed: %%pt_single%% and %%pt_plural%% didn’t work in preview mode.
  • Fixed: %%page_total%% would sometimes be one short.
  • Fixed: %%term404%% would sometimes be empty while the pagename causing the 404 was known.
  • Fixed: empty taxonomy sitemap could still be shown, while it shouldn’t, as reported by allasai in issue #1004 – props Jrf.
  • Fixed: if first result of a search is a post, the blog page was incorrectly added to the breadcrumb, as reported in issue #1248 by Nikoya – props Jrf.
  • Fixed: ensure that all our options exist always, fixes rare case in which this wouldn’t be so. As reported by bonny in issue #1245 – props Jrf.
  • Fixed: Media title and meta settings could not be set when ‘attachment URLs redirect to parent post’ was selected which let to issues for attachments without a parent, as reported by Firebird75 in issue #1243 – props Jrf.
  • Improved and more consistent check for whether to show the admin ‘Edit files’ screen, issue #1197 – props hostliketoast and Jrf.
  • Restore robots meta box per taxonomy to its former glory, it now shows even when blog is not set to public, as reported by Lumieredelune in issue #1158 – props Jrf.
  • Fixed: Multisite issues, as reported by GaryJones and chrisfromthelc in issue #935 – props Jrf.
  • saving of settings on the multisite settings page was not working.
  • restoring site to default settings from multisite settings page was not working.
  • initializing new blogs with settings from a chosen default blog was not working (might still not be completely stable for WP multisite with WPSEO in must-use plugins directory, stable in all other cases).
  • wrong option debug information shown on multisite settings page
  • Fixed: an issue with sitemap transient caching for plugins not using paginated sitemaps (like news seo).
  • Check if get_queried_object_id is not 0 before enqueueing wp_enqueue_media.
  • Set rssafter to empty string on test_embed_rss() test.
  • Fixed: Bing URL – props GodThor.
  • Prevent from loading if WP is installing – props Jrf.
  • Fixed: Incorrect timezone in the root sitemap.
  • Fixed: Multiselect fields are now properly saved in wpseo meta boxes.
  • Force canonical links to be absolute, relative is NOT an option.
  • Fixed: Breadcrumb on search pages.
  • Added CDATA in sitemap image captions and titles.
  • Various sitemap fixes and improvements – props [Rarst] (https://github.com/Rarst).
  • Enhancements
  • Heavily reduce query load for XML sitemaps by caching XML sitemaps in transients.
  • New wpseo_register_extra_replacements action hook which lets plugin/theme builders add new %%...%% replacement variables – including relevant help texts -. See function documentation for an example of how to use this new functionality.
  • If the final string – after replacement – would contain two separators with nothing between them, this extra separator will be removed.
  • All remaining not replaced replacement vars are now stripped from the strings (without breaking the snippet preview).
  • New filter wpseo_replacements_filter_sep which can be used to change the seperator character passed by the theme.
  • When using the ‘Reset default settings’ button on a blog in a network while another blog has been chosen to be used as a basis for the settings for all new blogs, the reset will respect that setting and reset the blog to the settings from the chosen blog.
  • For small networks ( < 100 sites ), the network page user interface has been improved, by offering drop-down lists of the blogs for blog selection fields. For larger networks, the interface remains the same.
  • Added an action to allow adding content to the Post Type tab on the meta admin page.
  • Removing the extra blog name added to the title by woo_title().
  • More optimization improvements to snippet preview.
  • Add filter to allow other plugins to interact with our metaboxes outside of the standard pages – props Jrf.
  • Replace variables through an AJAX call, which makes them work in the post editor too and allows for more variables to be replaced in the title.
  • Added priority filters for XML sitemaps.
  • Other enhancements
  • Security improvement: As the .htaccess / robots.txt files are site-wide files, on a multi-site WP installation they will no longer be available for editing to individual site owners. For super-admins, the ‘SEO -> Edit Files’ admin page will now be accessible through the Network Admin.
  • We’ve added server specific info to our tracking class. Most notably, we’re tracking whether a number of PHP extensions are enabled for our users now.

Release Date: June 2nd, 2014

  • Enhancements
  • We’ve added some options and some host specific info to our tracking class. Most notably, we’re tracking the PHP version for our users now, so we can see whether we, at some point, might drop PHP 5.2 support before WordPress does.
  • Auto-deactivate plugin in the rare case that the SPL (Standard PHP Library) extension is not available.
  • Switch from inline xmlns to inline use of the prefix attribute for breadcrumbs as that makes validation work. Fixes [Issue 1186]((https://github.com/Yoast/wordpress-seo/issues/1186).
  • Bugfixes
  • Check whether snippet preview is shown on page before hiding / showing errors, deducted from #1178
  • Fixed incorrect sitemap last modified date as reported in issue 1136 – props rscs.
  • Specify post ID when using wp_enqueue_media() to set up correctly for the post being edited. Pull #1165, props benhuson.
  • Fixed unreachable filter wpseo_sitemap_[post_type]_content as reported in pull #1163, also fixes unreachable filter wpseo_sitemap_author_content. Props jakub-klapka.
  • Fixed PHP notice as reported by maxiwheat in issue #1160.
  • Backed out pagination overflow redirect as it’s causing too many issues.
  • i18n
    • Make sure extensions menu is fully i18n compatible.

Release Date: May 16th, 2014

  • Bugfixes
  • Backing out earlier change, as this breaks the snippet preview.
  • Enhancement
  • Reintroduced the ‘Strip the category base (usually /category/) from the category URL.’ option.

Release Date: May 15th, 2014

  • Bugfixes
  • Fix regression issue – non-replacement of %%name%% variable as reported in issue #1104 by firstinflight – props Jrf.
  • Fixed an issue where %%category%% was not replaced on certain pages.
  • Added support for %%tag%% even if the ID is empty.
  • All remaining not replaced title vars are now stripped from the title.
  • Added a fallback to post_date in the sitemap ‘mod’ property for when a post is lacking the post_date_gmt value.


  • Bugfixes
  • Don’t ping search engines if the blog is set to ‘discourage search engines from indexing this site’ – props Jrf.
  • Fix error in sitemap_index.xml if post type does not contain any posts as reported by sebastiaandegeus.
  • Use the correct HTTP protocol for responses – props Fab1en.
  • Better OG locale handling – props maiis.
  • Fixed: ‘breadcrumb_last’ class was missing on homepage, as reported by uprise10 in issue #1045 – props Jrf.
  • Fix empty post id notice, issue #1080 as reported by sosada.
  • Localize dates where appropriate as suggested by allankronmark in issue #1073.
  • Fix for escaping str literals in JS regexes – props MarventusWP.
  • Enhancement
  • Redirect paginated archive pages with a pagination number that doesn’t exist to the first page of that archive.
  • Update score circle icon to look great on HiDPI displays, as well as fitting better with WordPress 3.8+ design – props paulwilde.
  • Only show article publication time for posts, not for pages or other post types, introduce a new filter to do allow them when needed.
  • Load of improvements to banners and licenses page.
  • Update snippet preview to use latest Google design changes – props paulwilde.

  • Bugfixes
  • Added some missing textdomains.
  • Fixed a license manager request bug.
  • Work-around for fatal error caused by other plugins doing front-end post updates without loading all the required WP files, such as the WP Google Forms plugin – props Jrf.
  • Fixed incorrect link to Issues in CONTRIBUTING.md – props GaryJones.
  • Fixed a fatal error caused by not checking if Google Suggest request reponse is valid – props jeremyfelt.
  • Fixed a screen option bug in bulk edit options – props designerken.
  • Fixed warnings on edit files section – props Jrf.
  • Fixed a warning when post_type is an array – props unr.
  • i18n
  • Updated el_GR, hu_HU, nl_NL and pl_PL

  • Bugfixes
  • Fixed a WordPress Network license bug.
  • i18n
  • Updated el_GR, fa_IR, hu, it_IT, pt_PT, ru_RU, tr_TK and zh_CN
  • Added Malay

  • Bugfixes
  • Fixed Open Graph Facebook Debubber Tags/Categories Issue, tags/categories are now grouped into one metatag – props lgrandicelli.
  • Fixed: %%cf_%% and %%parent_title%% not being resolved in the preview snippet as reported by Glark in issue #916 – props Jrf.
  • Options are no longer deleted on plugin uninstall.
  • Fixed a bug that caused the ‘Plugins activated’ message to be removed by the robots error message – props andyexeter.
  • Fix white screen/blog down issues caused by some webhosts actively disabling the PHP ctype extension – props Jrf.
  • Fixes Metabox Social tab media uploader not working on custom post types which don’t use media as reported by Drethic in issue #911 – props Jrf.
  • Fixed vars not being replaced in OG description tag.
  • Enhancement
  • Fix PHP warnings when post_type is an array.

  • Bugfixes
  • Fixed: Premium support link was being added to all plugins, not just ours ;-)
  • Only show the breadcrumbs-blog-remove option if user uses page_for_posts as it’s not applicable otherwise and can cause confusion.
  • Clean up url query vars after use in our settings page to avoid actions being executed twice – props Jrf.

  • Bugfixes
  • Changed ‘wpseo_frontend_head_init’ hook to ‘template_redirect’ to prevent incorrect canonical redirect.
  • Improved upgrade routine for breadcrumbs maintax/pt option as reported by benfreke in issue #849 – props Jrf.
  • Fixed a bug where the banners overlapped WordPress notices/errors.
  • Fixed: Slashes in Taxonomy text inputs as reported by chuckreynolds in issue #868 – props Jrf.
  • Increased priority (decreased priority int) on the template_redirect for the sitemap redirect hook.
  • Fixed: current_user_can was being called too early as reported by satrya in issue #881 – props Jrf.
  • Enhancement
  • Enhanced validation of webmaster verification keys to prevent invalidating incorrect input which does contain a key as reported by TheZoker in issue #864 – props Jrf.

Note: if you already upgraded to v1.5+, you will need to retrieve your Facebook Apps again and please also check your Google+ URL. We had some bugs with both being escaped too aggressively. Sorry about that.

  • Bugfixes
  • Added missing settings menu pages to wp admin bar.
  • Replaced old AdWords keyword tool link.
  • Fix wp admin bar keyword density check link
  • Taxonomy sitemap will now also show if empty.
  • Prevent infinite loop triggered by sitemap_close(), fixes #600 as reported and fixed by pbogdan.
  • Fixed a link count Page Analysis bug.
  • Fixed a keyword density problem in the Page Analysis
  • Fixed OpenGraph/GooglePlus/Twitter tags not showing in a select few themes, issue #750 as reported by Jovian and wwdboer – props Jrf.
  • Fixed Facebook Apps not being saved/ “Failed to retrieve your apps from Facebook” as reported by kevinlisota in issue #812 – props Jrf.
  • Fixed duplicate feedback messages on WPSEO -> Social pages as reported by steverep in issue #743 – props Jrf.
  • Flush our force title rewrite buffer earlier in wp_footer so it can be used by other plugins in wp_footer. Props Gabriel Pérez Salazar.
  • Start the force rewrite buffer late (at 999) in template_redirect instead of get_header because of several themes not using get_header, issue #817 as reported by Jrf.
  • Fixed ‘Page %d of %d’ / %%page%% variable not being replaced when on pages, as reported by SGr33n in issue #801 – props Jrf.
  • Restore robots meta box per post to its former glory, it now shows even when blog is not set to public.
  • Fixed individual page robots settings not being respected when using a page as blog as reported by wintersolutions in issue #813 – props Jrf.
  • Fixed: Too aggressive html escaping of the breadcrumbs.
  • Fixed: Last breadcrumb wasn’t always determined correctly resulting in crumbs not being linked when they should have been.
  • Fixed: Breadcrumbs were sometimes missing separators and default texts since v1.5.0.
  • Fixed: 404 date based breadcrumb and title creation could cause corruption of the $post object.
  • Fixed: Filtering posts based on SEO score via the dropdown at the top of a post/page overview page no longer worked. Fixed. As reported by gmuehl in issue #838 – props Jrf.
  • Enhancements
  • Added filters for the change frequencies of different URLs added to the sitemap. Props to haroldkyle for the idea.
  • Added filter wpseo_sitemap_exclude_empty_terms to allow including empty terms in the XML sitemap.
  • Private posts now default to noindex (even though they technically probably couldn’t be indexed anyway).
  • Show a warning message underneath a post’s robots meta settings when site is set to noindex sitewide in WP core.
  • Updated licensing class to show a notice when requests to yoast.com are blocked because of WP_HTTP_BLOCK_EXTERNALS.
  • Other
  • Refactored the breadcrumb class – props Jrf.

  • Bugfixes
  • Fix for issue with Soliloquy image slider was not applied to minified js file.
  • Fixed some PHP ‘undefined index’ notices.
  • Fix banner images overlapping text in help tabs.
  • Fixed meta description tag not showing for taxonomy (category/tag/etc) pages as reported in issue #737 and #780 – props Jrf.
  • Prevent a fatal error if wp_remote_get() fails while testing whether the title needs to be force rewritten as reported by homeispv – props Jrf.
  • Enhancements
  • Added composer support – props codekipple and Rarst.

  • Bugfixes
  • Fix white screen/blog down issues caused by some (bloody stupid) webhosts actively disabling the filter extension – props Jrf.
  • Fix for some PHP notices, issue #747 as reported by benfreke – props Jrf.
  • Fixed: GooglePlus vanity urls were saved without the + as reported by ronimarin in issue #730 – props Jrf.
  • Fix WP Admin menu items no longer clickable when on WPSEO pages as reported in issue #733 and #738 – props Jrf.
  • Fix strict warning for W3TC, issue 721.
  • Fix RSS text strings on options page being double escaped, issue #731 as reported by namaserajesh – props Jrf.
  • Avoid potential confusion over Facebook OpenGraph front page usage, issue #570 – props Jrf.
  • Potentially fix issue 565 bbpress warning message. Thanks inetbiz for reporting and tobylewis for finding the likely cause.
  • Filter ‘wpseo_pre_analysis_post_content’ output is now only loaded in DOM object if not empty. – props mgmartel.
  • $post_content is now unset after loading in DOM object. – props mgmartel.
  • Fix Alexa ID string validation, as reported by kyasajin and Bubichka in issue 736 – props Jrf.
  • Fix issue with Soliloquy image query, as reported by osalcedo and mattisherwood in issue #733 – props Jrf.
  • Enhancements
  • Twitter metatag key is now filterable by ‘wpseo_twitter_metatag_key’.
  • Added a filter called “wpseo_replacements” in wpseo_replace_vars to allow customization of the replacements before they are applied – props martinernst.
  • Added useful links for page analysis – props bhubbard.
  • i18n Updates
  • Updated nl_NL, id_ID, it_IT, fr_FR and de_DE
  • Added ko
  • Updated .pot file.


  • Bugfix:
  • If mbstring extension isn’t loaded, fatal error was thrown.


This release contains tons and tons of bugfixes and security improvements. Credits for this release largely go to Juliette Reinders Folmer aka Jrf / jrfnl.

Also a heartfelt thanks go out to the beta testers who tested all the changes. Special mentions for testers Woyto, Bnpositive, Surbma, DavidCH1, TheITJuggler, kletskater who caught a number of bugs and provided us with actionable information to fix these.

This version also incorporates the SEO Extended plugin functionality into WP SEO with graceful thanks to Faison and Scott Offord for their great work on this plugin.

This version contains a lot of changes under the hood which will break backward compatibility, i.e. once you’ve upgraded, downgrading will break things. So make sure you make a backup of your settings/database before upgrading.

  • Bugfixes
  • Major overhaul of the way the plugin deals with options. This should fix a truck-load of bugs and provides improved security.
  • Major overhaul of the way the plugin deals with post meta values. This should fix a truck-load of bugs and provides improved security.
  • Major overhaul of the way the plugin deals with taxonomy meta values. This should fix a truck-load of bugs and provides improved security.
  • Fixed: Renamed a number of options as they ran the risk of being overwritten by post type/taxonomy options which could get the same name. This may fix some issues where options did not seem to get saved correctly.
  • Fixed: if page specific keywords were set for a static homepage, they would never be shown.
  • Fixed: if only one FB admin was selected, the tag would not be added.
  • Fixed: bug where taxonomies which were on an individual level set to noindex and sitemap include ‘auto-detect’ would still be shown in the sitemap
  • Fixed: bug in canonical urls where an essential part of the logic was skipped for singular posts/pages
  • Fixed: category rewrite rules could have errors for categories without parent categories.
  • Fixed: bug in delete_sitemaps() – wrong retrieval of needed options.
  • Fixed: HTML sitemaps would sometimes display headers without a link list.
  • Fixed: Breadcrumbs could potentially output an empty element as part of the chain, resulting in two separators in a row.
  • Fixed: Breadcrumbs: even when removing the prefix texts from the admin page, they would sometimes still be included.
  • Improved fixed for possible caching issue when title_test option remained set, issue #627.
  • Fixed bug in title_test_helper where it would pass the wrong information to update_option(), related to issue #627.
  • Fixed: shortcodes should be removed from ogdesc.
  • Fixed: Admin -> Dashboard -> Failed removal of the meta description from a theme file would still change the relevant internal option as if it had succeeded.
  • Fixed: Admin -> Dashboard -> bug where message about files blocking the sitemap from working would not be removed when it should.
  • Fixed: Admin -> Titles & Meta’s -> Post types would show attachments even when attachment redirection to post was enabled.
  • Fixed: Admin -> Import -> Fixed partially broken import functionality for WooThemes SEO framework
  • Fixed: Admin -> Import -> Importing settings from file would not always work due to file/directory permission issues.
  • Fixed: Admin -> Export -> Some values were exported in a way that they couldn’t be imported properly again.
  • Fixed: Admin -> Import/Export -> On export, the part of the admin page after export would not be loaded.
  • Fixed: Admin -> Various -> Removed some superfluous hidden fields which could cause issues.
  • Fixed: Admin -> Social -> The same fb user can no longer be added twice as Facebook admin.
  • Admin -> Multi-site -> Added error message when user tries to restore to defaults a non-existent blog (only applies to multi-site installations).
  • Bow out early from displaying the post/taxonomy metabox if the post/taxonomy is not public (no use adding meta data which will never be displayed).
  • Prevent the SEO score filter from displaying on a post type overview page if the metabox has been hidden for the post type as suggested by coreyworrell in issue #601.
  • Improved: post meta -> the keyword density calculation for non-latin, non-ideograph languages – i.e. cyrillic, hebrew etc – has been improved. Related issues #703, #681, #349 and #264. The keyword density calculation for ideograph based languages such as Japanese and Chinese will not work yet, issue #145 remains open.
  • Fixed: post meta -> SEO score indicator -> wpseo_translate_score() would never return score, but always the css value.
  • Fixed: post meta -> SEO score indicator -> wpseo_translate_score() calls were passing unintended wrong parameters
  • Fixed: post meta -> page analysis -> text analysis did not respect the blog character encoding. This may or may not solve a number of related bugs.
  • Fixed: post meta -> often wrong meta value was shown for meta robots follow and meta robots index in post meta box so it appeared as if the chosen value was not saved correctly.
  • Fixed: post meta -> meta robots advanced entry could have strange (invalid) values.
  • Fixed: post meta -> since v1.4.22 importing from other plugins would import data even when the post already had WP SEO values, effectively overwritting (empty by choice) WPSEO fields.
  • Fixed: post meta -> A few of the meta values could contain line breaks where those aren’t allowed.
  • Fixed: taxonomy meta -> breadcrumb title entry field would show for taxonomy even when breadcrumbs were not enabled
  • Fixed: taxonomy meta -> bug where W3TC cache for taxonomy meta data wouldn’t always be refreshed when it should and sometimes would when it shouldn’t
  • Fixed: some things should work better now for must-use installations.
  • Added sanitation/improved validation to $_GET and $_POST variables if/when they are used in a manner which could cause security issues.
  • Fixed: wrong file was loaded for the get_plugin_data() function.
  • Fixed: several bug-sensitive code constructs. This will probably get rid of a number of hard to figure out bugs.
  • Fixed: several html validation issues.
  • Prevent error when theme does not support featured images, issue #639 as reported by kuzudecoletaje.
  • Enhancements
  • The SEO Extended plugin functionality has now been integrated into WP SEO.
  • Added ability to add Pininterest and Yandex site verification tags. You can enter this info on the WPSEO Dashboard and it will auto-generate the relevant meta tags for your webpage headers.
  • New Home » WordPress plugins » Yoast SEO for WordPress » Yoast SEO Changelog shortcode.
  • Post meta -> Don’t show robots index/no-index choice in advanced meta box if there is a blog-wide override in place, i.e. the Settings -> Reading -> Block search engines checkbox is checked.
  • Post meta -> Added ‘Site-wide default’ option to meta robots advanced field in advanced meta box.
  • Post meta -> Added an option to decide whether to include/exclude rel="author" on a per post base as suggested by GaryJones. (Added to the advanced meta box).
  • Taxonomy meta -> Don’t show robots index/no-index choice in taxonomy meta box if there is a blog-wide override in place, i.e. the Settings -> Reading -> Block search engines checkbox is checked.
  • Admin -> If WP_DEBUG is on or if you have set the special constant WPSEO_DEBUG, a block with the currently saved options will be shown on the settings pages.
  • Admin -> Dashboard -> Added error message for when meta description tag removal from theme file fails.
  • Admin -> Titles & Meta -> Added option to add meta keywords to post type archives.
  • Admin -> Social -> Facebook -> Added error messages for if communication with Facebook failed.
  • Admin -> Import -> WPSEO settings -> Better error messages for when importing the settings fails and better clean up after itself.
  • Adminbar -> Keyword research links now also search for the set the keyword when editing a post in the back-end.
  • [Usability] Proper field labels for user profile form fields.
  • The New Relic daemon (not the W3TC New Relic PHP module) realtime user monitoring will be turned off for xml/xsl files by default to prevent breaking the sitemaps as suggested by szepeviktor in issue #603
  • General jQuery efficiency improvements.
  • Improved lazy loading of plugin files using autoload.
  • Made the Google+ and Facebook post descriptions translatable by WPML.
  • Better calculation precision for SEO score
  • Improved 403 headers for illegal file requests as suggested by cfoellmann
  • Synchronized TextStatistics class with changes from the original, this should provide somewhat better results for non-latin languages.
  • CSS and JS files are now minified
  • Rewrote query logic for XML sitemaps
  • Changed default settings for rel=”author”
  • Added option to switch to summary card with image for Twitter cards
  • Made several changes to Open Graph logic
  • Implemented new Yoast License framework
  • Added possibility to create a robots.txt file directly on the server
  • Other:
  • Removed some backward compatibility with WP < 3.5 as minimum requirement for WP SEO is now 3.5
  • Removed some old (commented out) code
  • Deprecated category rewrite functionality


  • Bugfixes
  • Do not include external URLs in XML sitemap (Issue #528) – props tivnet.
  • Get home_url out of the sitemap loop – props tivnet.
  • Add support for html entities – props julienmeyer.
  • Fixed wrong use of __FILE__.
  • Enhancement
  • WPSEO_FILE now has a ‘defined’ check.
  • Removed unneeded dirname calls.
  • i18n
  • Updated cs_CZ, de_DE, fr_FR & tr_TK


  • Bugfixes
  • Removed screen_icon() calls.
  • Fixed a bug in robots meta tag on singular items.
  • Fix double robots header, WP native settings will be respected – props Jrf.
  • When post published data is newer than last modified date, use that in XML sitemap, props mindingdata.
  • Check if tab hash is correct after being redirected from Facebook API, props dannyvankooten.
  • Fix 404 in category rewrites when pagination_base was changed, props raugfer.
  • Make the metabox tabs jQuery only work for WPSEO tabs, props imageinabox.
  • Sitemap shortcode sql had hard-coded table name which could easily cause the shortcode display to fail. Fixed. – props Jrf.
  • Fix issue with user capability authorisation check as reported by scienceandpoetry in issue #492 – props Jrf.
  • Fixed canonical rel links was causing an error when given an invalid taxonomy, issue #306 – props Jrf.
  • Removed add_meta_box() function duplication – props Jrf.
  • Fix issue “Flesch Reading Ease should only be a positive number”. This also fixes the message being unclear. Thanks eugenmihailescu for reporting – props Jrf.
  • Fixed issue with page analysis not taking feature image into account – props darrarski.
  • Enhancement
  • Shortcode now also available to ajax requests – props Jrf.
  • Added gitignores to prevent incorrect commits (Cross platform collab) – props cfoellmann.
  • Adding filters to individual sitemap url entries – props mboynes.


  • Bugfixes
  • Fix for serious sitemap issue which caused all pages of a split sitemap to be the same (show the first 1000 urls) – props Jrf.
  • Fixed a bug in the WPSEO tour in WP Network installs
  • clean_permalink 301 redirect issue when using https – props pirategaspard
  • i18n
  • Updated cs_CZ, fa_IR, fr_FR, hu, hu_HU, pl_PL, ru_RU & zh_CN


  • Bugfixes
  • Reverted change to XML sitemaps stylesheet URL as that was giving issues on multisite installs.
  • Reverted change to XML sitemap loading as we were no longer exposing some variables that other plugins relied upon.
  • Fix bug with author sitemap showing for everyone.
  • Enhancement
  • No longer save empty meta post variables, issue #463. Clean up of DB is coming in future release, if you want to clean your DB now, see that issue for SQL queries.


  • Bugfixes
  • Fix notice for ICL_LANGUAGE_CODE not being defined.
  • Fix missing function in install by adding a require.


  • Bugfixes
  • Fixed bug where posts set to always index would not end up in XML sitemap.
  • Fix Invalid argument supplied for foreach() notice for WPML as reported by pbearne – props Jrf.
  • Yoast tracking cron job will now unschedule on disallowing of tracking, on deactivation and on uninstall, inspired by Bluebird Blvd. – props Jrf.
  • Fix issue #453: setting shop as homepage caused a notice and wrong title with WooCommerce.
  • Fixed a bug #449 where a canonical, when manually set for a category, tag or term, could get pagination added to it on paginated pages, when it shouldn’t.
  • Fixed a bug where manually set canonicals would end up in rel="next" and rel="prev" tags.
  • Fixed a bug #450 where noindexed pages would appear in the HTML sitemap.
  • Fixed a bug where non-public taxonomies would appear in the HTML sitemap.
  • Fixed quotes not working in meta title and description for terms, issue #405.
  • Make sure author sitemap works when they should.
  • Fix some notices in author sitemap, issue #402.
  • Fix breadcrumbs being broken on empty post type archives, issue #443.
  • Fixed a possible caching issue when title_test option remained set, issue #419.
  • Make sure og:description is shown on homepage when it’s left empty in settings, fixes #441.
  • Make sure there are no WPML leftovers in our title, issue #383.
  • Fix padding on fix it buttons with 3.8 design, issue #400.
  • Hide SEO columns in responsive admin ( in 3.8 admin design ), issue #445.
  • Misc
  • Switch back to MailChimp for newsletter subscribe.
  • Default to nofollowing links in RSS feed footers.
  • i18n
    • Updated es_ES, pt_BR & ru_RU
    • Added sk_SK


  • Enhancements
  • Added the option to upload a separate image for Facebook in the Social tab.
  • Added published time, last modified time, tags and categories to OpenGraph output, to work with Pinterests new article pin.
  • Added a filter for post length requirements in the Analysis tab.
  • If there is a term description, use it in the OpenGraph description for a term archive page.
  • Applied a number of settings form best practices – props Jrf.
  • File inclusion best practices applied – props Jrf.
  • Breadcrumbs for Custom Post Types now take the CPT->label instead of CPT->labels->menu_name as text parameter, as suggested by katart17 and Robbert V – props Jrf.
  • Bugfixes
  • Move all rewrite flushing to shutdown, so it doesn’t break other plugins who add their rewrites late.
  • Fixed the wrong naming of the L10n JS object, props Otto.
  • Improved form support for UTF-8 – props Jrf.
  • Corrected faulty multisite option registration – props Jrf.
  • Fixed appropriate use of plugins_url() to avoid breaking hooked in filters – props Jrf.
  • (Temporary) fix for metabox styling for users using the MP6 plugin – props Jrf.
  • Minor fix in localization loading – props Jrf.
  • Fixed Missing argument 3 for wpseo_upgrader_process_complete notice for WP 3.7+, thanks vickyindo, Wendyhihi and Theressa1 for reporting – props Jrf.
  • i18n
    • Updated ru_RU, tr_TK and Hr


  • Unhooking ‘shutdown’ (part of the NGG fix in 1.4.16) caused caching plugins to break, fixed while preserving NGG fix.
  • These changes were pushed in later but were deemed not important enough to force an update:
  • Updated newsletter subscription form to reflect new newsletter system.
  • Documentation
  • Updated readme.txt to reflect support changes.
  • Moved old sections of changelog to external file.
  • i18n
  • Updated pt_PT


  • Missed a line in the commit of the option to stop stop words cleaning.


  • Fix for compatibility with NextGen Gallery.
  • Enhancements
  • Add option to enable slug stop word cleaning, find it under SEO -> Permalinks. It’s on by default.
  • Remove tracking variables from the Yoast Tracking that weren’t used.
  • i18n
  • Updated de_DE, fa_IR, fi, hu_HU, it_IT, pl_PL, sv_SE and tr_TK


  • Bugfixes
  • Fix the white XML sitemap errors caused by non-working XSL.
  • Fixed the errors in content analysis reporting an H2 was not found when it was really there.
  • Fix slug stopwords removal, props amm350.
  • Fix PHP Notice logged when site has capabilities created without 3rd value in args array, props mbijon.
  • Fix the fact that meta description template for archive pages didn’t work, props MarcQueralt.
  • Prevent wrong shortcodes (that echo instead of return) from causing erroneous output.
  • Fix edge cases issue for keyword in first paragraph test not working.
  • Revert change in 1.4.14 that did a do_shortcode while in the head to retrieve images from posts, as too many plugins crash then, instead added wpseo_pre_analysis_post_content filter there as well.


This release contains tons and tons of bugfixes, thanks in large part to Jrf, who now has commit rights to the code on Github directly. Please join me in thanking her for her efforts!

  • Notes:
  • Our GitHub repository moved to https://github.com/Yoast/wordpress-seo, old links should redirect but please check.
  • Bugfixes
  • Switch to stock autocomplete file and fix clash with color picker, props Heinrich Luehrsen.
  • Prevent strip category base code from breaking Custom Post Type rewrites, props Steve Hulet.
  • Fixed issue with canonical links on last page of paginated posts – props maxbugfiy
  • Fixed bug in shortcode removal from meta description as reported by professor44 – props Jrf.
  • Fixed bug preventing saving of taxonomy meta data on first try – props Jrf.
  • Fixed small (potential) issue in wpseo_title_test() – props Jrf.
  • Fixed bug where RSS excerpt would be double wrapped in <p> tags as reported by mikeprince – props Jrf.
  • Fixed HTML validation error: Duplicate id Twitter on Social tab – props Jrf.
  • Fixed undefined index notice as reported by szepeviktor.
  • Fixed error in a database query as reported by Watch Teller – props Jrf.
  • Fixed small issue with how styles where enqueued/registered – props Jrf.
  • Fixed bug in alt text of score dots as reported by Rocket Pixels – props Jrf.
  • Applied best practices to all uses of preg_ functions fixing some bugs in the process – props Jrf.
  • Fixed bug in processing of %%ct_%% as reported by Joy – props Jrf.
  • Fixed: no more empty og: or twitter: tags. Also added additional escaping where needed – props Jrf.
  • Fixed: Meta description tag discovery looked in parent theme header file even when a child theme is the current theme – props Jrf.
  • Fixed: Using the ‘Fix it’ button would remove the meta description tag from the parent theme header file, even when a child theme is the current theme – props Jrf.
  • Fixed: Using the ‘Fix it’ button would fail if it had already been used once (i.e. if a wpseo backup file already existed) – props Jrf.
  • Fixed repeated unnecessary meta description tag checks on each visit to dashboard page – props Jrf.
  • Fixed: Meta description ‘Fix it’ feedback message was not shown – props Jrf.
  • Mini-fix for plugin_dir_url – props Jrf.
  • Fixed Author Highlighting to only show authors as possible choice for Google+ Plus author as reported by Sanoma – props Jrf.
  • Fixed adjacent_rel_links() for Genesis users – props benjamin74 for reporting.
  • Replace jQuery .live function with .on(), as .live() has been deprecated and deleted. Props Viktor Kostadinov & Taco Verdonschot.
  • Fix how breadcrumbs deal with taxonomy orders. Props Gaya Kessler.
  • Fixed some PHP warnings
  • Enhancements
  • Added wpseo_pre_analysis_post_content filter. This allows plugins to add content to the content that is analyzed by the page analysis functionality.
  • Added wpseo_genesis_force_adjacent_rel_home filter to allow forcing of rel=next / rel=prev links on the homepage pagination for Genesis users, they’re off by default.
  • Make $wpseo_metabox a global, props Peter Chester.
  • No need to show Twitter image when OpenGraph is showing, props Gary Jones.
  • Make sure WPML works again, props dominykasgel.
  • Added checks for the meta description tag on theme switch, on theme update and on (re-)activation of the WP SEO plugin including a visual warning if the check would warrant it – props Jrf.
  • Added the ability to request re-checking a theme for the meta description tag. Useful when you’ve manually removed it (to get rid of the warning), inspired by tzeldin88 – props Jrf.
  • OpenGraph image tags will now also be added for images added to the post via shortcodes, as suggested by msebald – props Jrf.
  • Added ‘wpseo_breadcrumb_single_link_with_sep’ filter which allows users to filter a complete breadcrumb element including the separator – props Jrf.
  • Added ‘wpseo_stopwords’ filter which allows users to filter the stopwords list – props Jrf.
  • Added ‘wpseo_terms’ filter which allows users to filter the terms string – props Jrf.
  • Hide advanced tab for users for which it has been disabled, as suggested by jrgmartin – props Jrf.
  • Updated Facebook supported locales list for og:locale
  • i18n
  • Updated languages tr_TK, fi, ru_RU & da_DK
  • Added language hi_IN
  • Updated wordpress-seo.pot file


  • Bugfixes
  • Fixed ampersand (&) in site title in Title Templates loading as &
  • Fixed error when focus keyword contains a / – props Jrf.
  • Fixed issue with utf8 characters in meta description – props Jrf.
  • Fixed undefined property error – props Jrf.
  • Fixed undefined index error for the last page of the tour – props Jrf.
  • Fixed undefined index error for images without alt – props Jrf.
  • Fix output of author for Google+ when using a static front page – props petervanderdoes.
  • Keyword density calculation not working when special character in focus keyword – props siriuzwhite.
  • Reverse output buffer cleaning for XML sitemaps, as that collides with WP Super Cache, thanks to Rarst for finding this.
  • Fix canonical and rel=prev / rel=next links for paginated home pages using index.php links.
  • Fixed og:title not following title settings.
  • Enhancements
  • Improved breadcrumbs and titles for 404 pages – props Jrf.
  • Moved XSL stylesheet from a static file in wp-content folder to a dynamic one, allowing it to work for sites that prevented the wp-content dir from being opened directly, f.i. through Sucuri’s hardening.
  • Added a link in the XSL pointing back to the sitemap index on individual sitemaps.
  • When remove replytocom is checked in the permalink settings, these are now also redirected out.
  • Added filters to OpenGraph output functions that didn’t have them yet.


  • Bugfixes
  • Submit button displays again on Titles & Metas page.
  • SEO Title now calculates length correctly.
  • Force rewrite titles should no longer reset wrongly on update.


  • i18n
  • Updated de_DE, ru_RU, zh_CN.
  • Bugfixes
  • Make rel=”publisher” markup appear on every page.
  • Prevent empty property=’article:publisher’ markup from being output .
  • Fixed twitter:description tag should only appears if OpenGraph is inactive.
  • og:description will default to get_the_excerpt when meta description is blank (similar to how twitter:description works).
  • Fixes only 25 tags (and other taxonomy) are being indexed in taxonomy sitemaps.
  • Fix lastmod dates for taxonomies in XML sitemap index file.
  • Enhancements
  • Changed Social Admin section to have a tab-layout.
  • Moved Google+ section from Homepage tab of Titles & Metas to Social tab.
  • Make twitter:domain use WordPress site name instead of domain name.
  • Added more output filters in the Twitter class.


  • Fixes
  • Caching was disabled in certain cases, this update fixes that.
  • Enhancements
  • Added option to disable author sitemap.
  • If author pages are disabled, author sitemaps are now automatically disabled.


  • i18n
  • Updated .pot file
  • Updated ar, da_DK, de_DE, el_GR, es_ES, fa_IR, fr_FR, he_IL, id_ID, nl_NL, ro_RO, sv_SE & tr_TK
  • Added hr & sl_SI
  • Many localization fixes
  • Bugfixes
  • Fixed sitemap “loc” element to have encoded entities.
  • Honor the language setting if other plugins set the language.
  • sitemap.xml will now redirect to sitemap_index.xml if it doesn’t exist statically.
  • Added filters ‘wpseo_sitemap_exclude_post_type’ and ‘wpseo_sitemap_exclude_taxonomy’ to allow themes/plugins to exclude entries in the XML sitemap.
  • Added RTL support, some CSS fixes.
  • Focus word gets counted in meta description when defined by a template.
  • Fixed some bugs with the focus keyword in the first paragraph test.
  • Fixed display bug in SEO Title column when defined by a template (‘Page # of #’).
  • Fixed a few strict notices that would pop up in WP 3.6.
  • Prevent other plugins from overriding the WP SEO menu position.
  • Enabled the advanced tab for site-admins on a multi-site install.
  • Fixed post save error when page analysis is disabled.
  • OpenGraph frontpage og:description and og:image tags now properly added to the frontpage.
  • Enhancements
  • Added an HTML sitemap shortcode [wpseo_sitemap].
  • Added an XML sitemap listing the author profile URLs.
  • Added detection of Yoast’s robots meta plugin and All In One SEO plugins, plugin now gives a notice to import settings and disable those plugins.
  • Prevent empty image tags in Twitter Cards – props Mike Bijon.
  • Add new twitter:domain tag- props Mike Bijon.
  • Add support for Facebooks new OG tags for media publishers.
  • Allow authorship to be removed per post type.


  • Properly fix security bug that should’ve been fixed in 1.4.5.
  • Move from using several $options arrays in the frontend to 1 class wide option.
  • Instead of firing all plugin options as function within head function, attach them to wpseo_head action, allowing easier filtering and changing.
  • Where possible, use larger images for Facebook Opengraph.
  • Add several filters and actions around social settings.


  • Fix a possible fatal error in tracking.


  • Bug fixes:
  • Fix security issue which allowed any user to reset settings.
  • Allow saving of SEO metadata for attachments.
  • Set the max-width of the snippet preview to 520px to look more like Google search results, while still allowing it to work on lower resolutions.
  • Enhancements:
  • Remove the shortlink http header when the hide shortlink checkbox is checked.
  • Added a check on focus keyword in the page analysis functionality, checking whether a focus keyword has already been used before.
  • Update how the tracking class calculates users to improve speed.


  • Fix changelog for 1.4.3
  • Bugfixes
  • Fix activation bug.
  • i18n
  • Updated es_ES, id_ID, he_IL.


  • Bugfixes
  • Register core SEO menu at a lower than default prio so other plugins can tie in more easily.
  • Remove alt= from page analysis score divs.
  • Make site tracking use the site hash consistently between plugins.
  • Improve popup pointer removal.


  • Bugfixes
  • Made the sitemaps class load in backend too so it always generates rewrites correctly.
  • Changed > to /> in class-twitter.php for validation as XHTML.
  • Small fix in metabox CSS for small screens (thx Ryan Hellyer).
  • Load classes on plugins_loaded instead of immediately on load to allow WPML to filter options.
  • i18n
  • Updated bs_BA, cs_CZ, da_DK, de_DE, fa_IR, fr_FR, he_IL, hu_HU, id_ID, it_IT, nl_NL, pl_PL, pt_BR, ru_RU and tr_TR


  • i18n:
  • Updated .pot file
  • Updated bg_BG, bs_BA, cs_CZ, fa_IR, hu_HU, pl_PL & ru_RU
  • Bugfixes:
  • Focus keyword check now works again in all cases.
  • Fix typo in Video SEO banner.
  • Enhancements:
  • Don’t show banners for plugins you already have.

= 1.4 =

  • i18n & documentation:
  • Updated Hebrew (he_IL)
  • Updated Italian (it_IT)
  • Updated Dutch (nl_NL)
  • Updated Swedish (sv_SE)
  • Updated some strings to fix typos.
  • Removed affiliate links from readme.txt.
  • Bugfixes:
  • Fixed a bug in saving post meta details for revisions.
  • Prevent an error when there are no posts for post type.
  • Fix the privacy warning to point to the right place.
  • Enhancements:
  • Slight performance improvement infunctionality by not resetting query when its not needed (kudos to @Rarst).
  • Slight performance improvement in options call by adding some caching (kudos to @Rarst as well).
  • Changed inner workings of search engine ping, adding YOAST_SEO_PING_IMMEDIATELY constant to allow immediate ping on publish.
  • Changed design of meta box, moving much of the help text out in favor of clicking on a help icon.
  • Removed Linkdex branding from page analysis functionality.

  • Bug with revisions in XML sitemap for some weird combinations.
  • Improved logic for rel=publisher on frontpage.
  • Allow variables in meta description for post type archive.
  • Improved counting of images for page analysis.
  • updated Turkish (tr_TR)
  • updated Russian (ru_RU)
  • updated Indonesian (id_ID)
  • updated French (fr_FR)
  • updated Czech (cs_CZ)
  • added Japanese (ja)

  • Regex annoyances anyone? Sigh. Bug fixed.

  • Added missing filter for meta box priority.
  • Fixed bug in JS encoding.

  • Bug in page analysis regex.


  • Fix bug in custom field value retrieval for new drafts.
  • Fix bug in meta box value for checkboxes (only used currently in News extension).
  • Remove redirect added in 1.3.3 as it seems to cause loops on some servers, will investigate later.
  • Add option to filter wpseo_admin_pages so more pages can use WP SEO admin stylesheets.
  • Prevent notice for images without alt tags.
  • Use mb_string when possible.


  • Properly $wpdb->prepare all queries that need preparing.
  • Fix wrong escaping in admin pointers.
  • Make %%currentdate%% and %%currenttime%% variables respect WP date format settings.
  • Add %%currentday%% format.
  • Force remove Jetpack OpenGraph.
  • Fix the weird addition of noindex, nofollow on URLs with ?replytocom that was added in 3.5.
  • Force XML sitemap to be displayed on the proper domain URL, so XSLT works.


  • Updated wordpress-seo.pot
  • Updated Turkish (tr_TR) filename.
  • Updated Spanish (es_ES) translation.
  • Fixed bug where non-admin users couldn’t save their profile updates.
  • Fixed bug with the same OpenGraph image appearing multiple times.
  • Fixed bug that would prevent import and export of plugin settings.
  • Try to do a redirect back after saving settings.
  • Properly allow for attachment pages in XML sitemaps, default them to off.
  • Fixed annoying bug where checkboxes wouldn’t display as “checked” even when the value was set to true.
  • Show post type name and taxonomy name (as opposed to label) next to labels in XML sitemap settings to more easily identify post types and taxonomies.
  • Switch tracking to a daily cronjob instead of an admin process to prevent tracking from slowing down admin interface.
  • Focus keyword detection now properly works for diacritical focus keywords as well.
  • Properly apply filters to meta desc and titles in admin grid.
  • Properly detect new versions of Facebook plugin too.
  • Allow changing of the number of posts per XML sitemap, to prevent memory issues on certain installs.

  • Some of that escaping was too aggressive.


  • Fix somewhat too aggressive escaping of content.
  • Added notice text for non-existing .htaccess file / robots.txt file.

= 1.3 =

  • Long list of small fixes and improvements to code best practices after Sucuri review. Fixes 3 small security issues.
  • Updated .pot file
  • Updated Danish (da_DK), Indonesian (id_ID), Chinese (zh_CN), Russian (ru_RU), Norwegian (nb_NO), Turkish (tr_TK), Hebrew (he_IL) and Persian (fa_IR).
  • Added Arabic (ar), Catalan (ca) and Romanian (ro_RO).

  • Fixed %%category%% and %%tag%% and some other variables that weren’t working since

  • Revert gplus changes in that were causing issues.
  • Fix a tracking timeout.
  • Fix a bunch of notices throughout variables functions.

  • Fixed a bug for MultiSite due to a missing attribute in calling get_admin_url.
  • Updated Hebrew (he_IL), Dutch (nl_NL) French (fr_FR), Czech (cs_CZ), Italian (it_IT), Brazilian Portuguese (pt_BR).
  • Added Norwegian (nb_NO) and Portuguese (pt_PT).
  • Added a wpseo_robots filter for the robots meta tag.
  • Fixed integration with the Facebook plugin.

  • Fix for double title issues with themes that filter wp_title, by having WP SEO filter a bit later in the process
    (but no too late because the genesis

Even better SEO with Yoast SEO Premium!

  • Optimize your site for the right keywords for your users
  • Avoid dead links in your site
  • Get previews for sharing on Twitter and Facebook
  • Content quality and link suggestions as you write
More info