Ready to get started?Download WordPress

Plugin Directory

WordPress SEO by Yoast

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

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


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


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

  • 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 [wpseo_breadcrumb] 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 cons

Requires: 3.9 or higher
Compatible up to: 4.1.1
Last Updated: 2015-2-23
Active Installs: 1+ Million


4.6 out of 5 stars


51 of 420 support threads in the last two months have been resolved.

Got something to say? Need help?



15 people say it works.
3 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
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 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
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,4,4 84,25,21
100,1,1 67,46,31 33,3,1 42,26,11 71,7,5 100,1,1 86,7,6
0,1,0 0,1,0 50,2,1 60,10,6 0,9,0 83,18,15