Skip to main content
← Back to changelogs overview

Yoast SEO 3.1


  • 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.


  • 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.


  • 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 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.