Plugin Directory

Yoast SEO

Improve your WordPress SEO: Write better content and have a fully optimized WordPress site using Yoast SEO plugin.


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.


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.


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.


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.


Release Date: April 20th, 2015

  • Features:

  • 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 200x200 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:


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.


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.


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

Earlier versions

For the changelog of earlier versions, please refer to the separate changelog.txt file.

Requires: 4.0 or higher
Compatible up to: 4.4
Last Updated: 6 days ago
Active Installs: 1+ million


4.3 out of 5 stars
5 stars 1,227


152 of 651 support threads in the last two months have been resolved.

Got something to say? Need help?


Broken :(

11 people say it works.
52 people say it's broken.

100,16,16 70,10,7 80,25,20 100,2,2 100,4,4 100,6,6 100,4,4 100,3,3 100,3,3 100,1,1 0,1,0 0,1,0 0,1,0
100,5,5 100,7,7 100,7,7
96,26,25 100,1,1
67,15,10 100,1,1 0,1,0
100,3,3 100,3,3 100,3,3 100,1,1 0,4,0 100,1,1 0,1,0
91,35,32 75,4,3 91,11,10 91,22,20 77,26,20 100,5,5 100,1,1 83,6,5 0,1,0 100,1,1 100,1,1 0,1,0
100,3,3 56,9,5 100,1,1 86,7,6 100,6,6 86,29,25 100,1,1 100,1,1 0,1,0 50,2,1 100,1,1
93,15,14 50,2,1 100,1,1 100,8,8 33,3,1 79,24,19 63,8,5 100,5,5 0,1,0
100,4,4 63,35,22 94,47,44 0,1,0 0,1,0 0,1,0 0,1,0
100,7,7 100,1,1 100,1,1 0,1,0
92,12,11 100,1,1
83,60,50 100,3,3 100,9,9 95,21,20 80,5,4 90,10,9 83,18,15 91,105,96 100,3,3 100,2,2 67,3,2 100,5,5 100,1,1 100,1,1 0,1,0 0,1,0 0,1,0 0,1,0 0,1,0 0,1,0
50,8,4 44,16,7 90,20,18 96,71,68 0,1,0 0,1,0 100,3,3 100,1,1
100,1,1 100,27,27 44,9,4 89,35,31 94,201,189 100,3,3 100,2,2 100,3,3 100,1,1 100,1,1 100,2,2 0,1,0 100,2,2 100,1,1 100,1,1
90,63,57 83,18,15 88,17,15 0,5,0 97,63,61 33,9,3 91,11,10 67,3,2 50,6,3 50,4,2 0,2,0 100,1,1
0,2,0 57,28,16 67,52,35 75,4,3 29,7,2 0,1,0
0,1,0 44,9,4 75,133,100 58,24,14 69,45,31 0,23,0 63,27,17 70,23,16 68,22,15 67,6,4 33,3,1 50,2,1 0,1,0 0,1,0
80,5,4 83,52,43 65,26,17 90,21,19 83,104,86 33,3,1 69,13,9 100,5,5 100,2,2 100,2,2 100,1,1 100,1,1 0,1,0
33,3,1 38,16,6 100,1,1 91,32,29 50,2,1 79,19,15 86,21,18 100,2,2 100,1,1 0,1,0 0,1,0
85,33,28 100,2,2 92,13,12 13,8,1 100,5,5 50,2,1 0,1,0 73,11,8 60,10,6 85,20,17 100,2,2 76,17,13 81,53,43 0,5,0 0,5,0
10,21,2 13,8,1 88,16,14 82,39,32 75,4,3 0,1,0 0,1,0 100,4,4 100,1,1
87,15,13 11,19,2 87,39,34 0,2,0
100,8,8 86,42,36
25,4,1 100,1,1
0,1,0 98,43,42 0,1,0 100,1,1 100,1,1
100,2,2 100,1,1 73,11,8 62,29,18 94,16,15 93,15,14 100,1,1
83,29,24 25,20,5 50,4,2 0,1,0 40,5,2 31,16,5 82,17,14 30,10,3 33,3,1 48,27,13 23,13,3 100,1,1 100,1,1
63,8,5 100,1,1 100,1,1
100,9,9 100,2,2 100,1,1 0,1,0 100,1,1
69,13,9 45,20,9 100,2,2 100,1,1 100,1,1 100,1,1 100,1,1 100,1,1 100,2,2 100,1,1
40,5,2 67,6,4 50,4,2 81,26,21 91,23,21 33,3,1 100,5,5 83,23,19 100,1,1 0,1,0 100,1,1 100,1,1
100,8,8 88,8,7 0,2,0 0,7,0 50,32,16 81,16,13 100,2,2 100,1,1
100,7,7 50,18,9 75,28,21 100,3,3 79,33,26 100,7,7 67,3,2 100,1,1 0,1,0 0,1,0 100,1,1
100,4,4 84,25,21 100,1,1
100,1,1 67,46,31 33,3,1 42,26,11 71,7,5 100,1,1 78,9,7 100,1,1 100,3,3 100,4,4 0,1,0 100,1,1 100,1,1
0,1,0 100,1,1 0,1,0 50,2,1 60,10,6 0,9,0 84,25,21 81,27,22 93,15,14 86,21,18 100,3,3 100,3,3
58,12,7 100,1,1
83,23,19 80,10,8 73,26,19 50,14,7 86,7,6 89,9,8 100,1,1
100,1,1 94,16,15 100,2,2
40,5,2 50,6,3 27,26,7
100,1,1 33,18,6 100,2,2
100,1,1 100,2,2 96,25,24 20,5,1 10,48,5 0,13,0 17,63,11