=== Yoast SEO ===
Contributors: yoast, joostdevalk, tacoverdo, omarreiss, atimmer, jipmoors
Donate link: https://yoa.st/1up
License: GPLv3
License URI: http://www.gnu.org/licenses/gpl.html
Tags: SEO, XML sitemap, Content analysis, Readability
Requires at least: 5.3
Tested up to: 5.4
Stable tag: 14.1
Requires PHP: 5.6.20

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

== Description ==

### Yoast SEO: the #1 WordPress SEO plugin

Since 2008 Yoast SEO has helped millions of websites worldwide to rank higher in search engines. This WordPress SEO plugin helps you with your search engine optimization. Are you not entirely convinced? Yoast SEO is the favorite WordPress SEO plugin of millions of users worldwide!

As Yoast’s mission is **SEO for Everyone**, the plugin’s users range from the bakery around the corner to some of the most popular sites on the planet.

#### DON’T LET YOUR COMPETITORS WIN
Do you know who your competitors are in your niche? There’s a reason why they are your competitors: they do what you do. And they might even do it better right now. That does not mean you can't win from them, but it does mean you need all the help to get on top and stay on top! Yoast SEO is here to help you out as we’ve helped millions of people worldwide with their WordPress SEO efforts.

#### TAKING CARE OF YOUR WORDPRESS SEO
Yoast SEO does everything in its power to please both visitors and search engine spiders. A dedicated team of developers, testers, architects and SEO experts work daily to improve the plugin with every release. Yoast SEO offers:

* Title and meta description templating for better branding and consistent snippets in the search results.
* A state-of-the-art Schema implementation helps search engines make sense of your site and increases the chance on those coveted rich results.
* The most advanced XML Sitemaps functionality at the push of a button.
* Full control over your site's breadcrumbs.
* Automatically set canonical URLs to avoid duplicate content.
* **[Premium]** support for our [Yoast SEO Premium](https://yoa.st/1v8) users.
* **[Premium]** the ability to expand Yoast SEO with the [News SEO](https://yoa.st/1uv), [Video SEO](https://yoa.st/1uw), [Local SEO](https://yoa.st/1uu) and [WooCommerce SEO](https://yoa.st/3rh) extensions.

#### WRITE KILLER CONTENT WITH YOAST SEO
We know content is king, that's why Yoast SEO is famous for its readability analysis and its SEO analysis. Yoast SEO gives you:

* The SEO analysis: an invaluable tool to write SEO-friendly texts with the right (focus) keywords in mind.
* The readability analysis: make sure that you are writing easy-to-digest, engaging content for both visitors and search engines.
* Our snippet preview that shows you how your post or page will look in the search results. Even on mobile! 
* An **FAQ** and **HowTo** block for the WordPress editor so search engines know when you are serving a FAQ page or HowTo guides.
* **[Premium]** Social previews to show you how your content will be shown on Twitter and Facebook.
* **[Premium]** The Insights tool that shows you what your text focuses on. This way you can keep your article in line with your keyphrases.
* **[Premium]** The ability to optimize your article for synonyms and related keyphrases.
* **[Premium]** We now recognize different word forms of your keyphrase, like singular and plurals, but also different tenses of verbs (just in English for now). It helps you improve your text in a more natural way.
* **[Premium]** Automatic internal linking suggestions: write your article and automatically get suggested posts to link to! 

#### KEEP YOUR SITE IN PERFECT SHAPE

Whether you are a **business owner** or **blogger**, a **content creator**, a **developer** or an **SEO expert**: Yoast SEO helps you keep your website in perfect shape. Yoast SEO:

* Tunes the engine of your website so you can focus on creating great content.
* Gives you cornerstone content and internal linking features to help you rank for the right keywords with the right pages.
* Helps you manage your team's WordPress SEO efforts: with our SEO roles you can give colleagues access to specific sections of the Yoast SEO plugin.
* Has a bulk editor so you can make large-scale edits to the titles and meta descriptions of your website.
* Translates your content to structured data where possible to help search engines understand your website.
* **[Premium]** Gives you social previews to manage the way your page is shared on social networks like Facebook and Twitter.
* **[Premium]** Has a full redirect manager to keep your site healthy by easily redirecting deleted pages and changed URLs.

### Premium support

The Yoast team aims to provide regular support for the Yoast SEO plugin on the WordPress.org forums. But please understand that we do prioritize our premium support. This one-on-one email support is available to people who [bought Yoast SEO Premium](https://yoa.st/1v8).

Did you know that the [Yoast SEO Premium](https://yoa.st/1v8) also has several extra features: 

* It gives you the option to have **synonyms and related keyphrases**.
* A **redirect manager** that f.i. helps you prevent 404 Page Not Found errors.
* **Internal linking** suggestions while you write.
* Write more natural with our automatic **recognition of word forms**
* **Cornerstone content checks** to point search engines to your main pages.

The [Yoast SEO Premium plugin](https://yoa.st/1v8) is well worth your investment!

#### Our addons to further improve your WordPress SEO
You should also check out these other products by Yoast:

* **[Yoast Local SEO](https://yoa.st/1uu)** to optimize all website that serve a local audience, like certain small businesses, or businesses with multiple locations.
* **[Yoast Video SEO](https://yoa.st/1uw)** to make sure Google understands what you video is about, thus increasing your chances to rank in video results.
* **[Yoast News SEO](https://yoa.st/1uv)** for news publishers who want to improve their visibility and performance in Google News.
* **[WooCommerce SEO](https://yoa.st/3rh)** for all online shops that want to perform better in search engines and on social platforms.

They work with the FREE version of Yoast SEO already, and these premium extensions of course come with support too.

Oh, and don't forget: our **[Yoast Academy](https://yoa.st/3ri)** is for all the business owners, bloggers and everyone else who wants to learn more about optimizing websites, improving their WordPress SEO and taking their online content to the next level.

### Bug reports

Bug reports for Yoast SEO are welcomed in our WordPress SEO [repository on GitHub](https://github.com/Yoast/wordpress-seo). Please note that GitHub is not a support forum, and that issues that aren’t properly qualified as bugs will be closed.

### Further Reading

For more info on search engine optimization and WordPress SEO in specific, check out the following:

* The [Yoast SEO Plugin](https://yoa.st/1v8) official homepage.
* The [Yoast SEO Knowledgebase](https://yoa.st/1va).
* [WordPress SEO - The definitive Guide by Yoast](https://yoa.st/1v6).
* Other [WordPress Plugins](https://yoa.st/1v9) by the same team.
* Follow Yoast on [Facebook](https://facebook.com/yoast), [Instagram](https://www.instagram.com/yoast/) & [Twitter](https://twitter.com/yoast).

== Installation ==
Starting with Yoast SEO consists of just two steps: installing and setting up the plugin. Yoast SEO is designed to work with your site’s specific needs, so don’t forget to go through the Yoast SEO configuration wizard as explained in the ‘after activation’ step!

### INSTALL YOAST SEO FROM WITHIN WORDPRESS

1. Visit the plugins page within your dashboard and select ‘Add New’;
1. Search for ‘Yoast SEO’;
1. Activate Yoast SEO from your Plugins page;
1. Go to ‘after activation’ below.

### INSTALL YOAST SEO MANUALLY

1. Upload the ‘wordpress-seo’ folder to the /wp-content/plugins/ directory;
1. Activate the Yoast SEO plugin through the ‘Plugins’ menu in WordPress;
1. Go to ‘after activation’ below.

### AFTER ACTIVATION

1. You should see (a notice to start) the Yoast SEO configuration wizard;
1. Go through the configuration wizard and set up the plugin for your site;
1. You’re done!

== Frequently Asked Questions ==

= How do the XML Sitemaps in the Yoast SEO plugin work? =

Having an XML sitemap can be beneficial for SEO, as Google can retrieve essential pages of a website very fast, even if the internal linking of a site isn’t flawless.
The sitemap index and individual sitemaps are updated automatically as you add or remove content and will include the post types you want search engines to index. Post Types marked as noindex will not appear in the sitemap. [Learn more about XML Sitemaps](https://yoa.st/3qt).

= How can I add my website to Google Search Console? =

It is straightforward to add your website to Google Search Console. 
1. Create a Google Search Console account and login into your account.
2. Click ‘Add a property’ under the search drop-down.
3. Enter your website URL in the box and click ‘Continue’.
4. Click the arrow next to ‘HTML tag’ to expand the option.
5. Copy the meta tag.
6. Log in to your WordPress website.
7. Click on ‘SEO’ in the dashboard.
8. Click on ‘General’.
9. Click on the ‘Webmaster Tools’ tab.
10. Paste the code in the Google field and click ‘Save Changes’.
11. Go back to Google Search Console and click ‘Verify’.

If you want more details steps, please visit [our article on our knowledge base](https://yoa.st/3qu).

= How do I implement Yoast SEO breadcrumbs? =

The steps below are a temporary solution as manual edits made to theme files may be overwritten with future theme updates. Please contact the theme developer for a permanent solution. We’ve written an article about the [importance of breadcrumbs for SEO](https://yoa.st/3qv). 

To implement the [breadcrumbs](https://yoa.st/3qw) function in Yoast SEO, you will have to edit your theme. We recommend that prior to any editing of the theme files, a backup is taken. Your host provider can help you take a backup.
Copy the following code into your theme where you want the breadcrumbs to be. If you are not sure, you will need to experiment with placement:

```
<?php
if ( function_exists( 'yoast_breadcrumb' ) ) {
    yoast_breadcrumb( '<p id="breadcrumbs">','</p>' );
}
?>
```

Common places where you could place your breadcrumbs are inside your `single.php` and/or `page.php` file just above the page’s title. Another option that makes it really easy in some themes is by just pasting the code in `header.php` at the very end.

In most non-WooTheme themes, this code snippet should not be added to your `functions.php` file. 
Alternatively, you can manually add the breadcrumb shortcode to individual posts or pages: `[wpseo_breadcrumb]`

If you need more details or a step by step guide, read our [Implementation guide for Yoast SEO breadcrumbs](https://yoa.st/3qx).

= How do I noindex URLS? =

Yoast SEO provides multiple options for setting a URL or group of URLs to noindex. [Read more about how to do this in this guide](https://yoa.st/3qy/).

= Google shows the wrong description, how do I fix this? =

If you’ve crafted nice meta descriptions for your blog posts, nothing is more annoying than Google showing another description for your site completely in the search result snippet. 

Possible causes could be:
1. wrong description in code
2. Google cache is outdated
3. Search term manipulation
4. Google ignored the meta description

You can [read more here on how to solve the issue with the wrong description](https://yoa.st/3qz).

= How often is Yoast SEO updated? =

Yoast SEO is updated every two weeks. If you want to know why, please read [this post on why we release every two weeks](https://yoa.st/3q-)!

= How do I get support? =

As our free plugin is used by millions of people worldwide, we cannot offer you all one on one support. If you have trouble with the Yoast SEO for WordPress plugin, you can get help on the support forums here at [wordpress.org](https://wordpress.org/support/plugin/wordpress-seo/) or by checking out or knowledge base at [kb.yoast.com](https://yoa.st/3r1). 

The plugins you buy at Yoast are called ‘premium plugins’ (even if Premium isn’t in its name) and include a complete year of free updates and premium support. This means you can contact our support team if you have any questions about that plugin.

[Read more on how to get support](https://yoa.st/3r2)

= I have a different question than listed here =

Your question has most likely been answered on our knowledge base: [kb.yoast.com](https://yoa.st/1va).

== Screenshots ==

1. The Yoast SEO plugin general meta box. You'll see this on edit post pages, for posts, pages and custom post types.
2. Example of the SEO analysis functionality.
3. Example of the readability analysis functionality.
4. Overview of site-wide SEO problems and possible improvements.
5. Control over which features you want to use.
6. Easily import SEO data from other SEO plugins like All In One SEO pack, HeadSpace2 SEO and wpSEO.de.

== Changelog ==

= 14.1 =
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](https://yoa.st/release-14-1)!

Bugfixes:

* 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](https://github.com/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](https://github.com/amitsidhpura).

Enhancements:

* 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](https://github.com/rafaelbernard).
* Improves the transition word assessment for Hungarian. Props to [@Zsoru](https://github.com/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](https://github.com/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.

Other

* Deletes the unnecessarily created indexables of private taxonomies.

= 14.0.4 =
Release Date: April 30th, 2020

Bugfixes:

* Fixes a bug where robots meta values defaulted to 0 instead of null because of a [bug in WPDB](https://core.trac.wordpress.org/ticket/12819). 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](https://yoa.st/wp-cli-index).

= 14.0.3 =
Release Date: April 30th, 2020

Bugfixes:

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

Enhancements:

* Adds a missing index to the new indexables table. Props to [@pagelypete](https://github.com/pagelypete).

Other:

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

= 14.0.2 =
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](https://yoa.st/wp-cli-index).

Bugfixes:

* 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 indexing would continue indefinitely under specific circumstances.

Other:

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

= 14.0.1 =
Release Date: April 28th, 2020

Bugfixes:

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

Other:

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

= 14.0 =
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](https://yoa.st/release-14-0)!

Bugfixes:

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

Enhancements:

* 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](https://github.com/stodorovic).
* Bing has added support for the same opt-in `meta robots` values as Google has, see their [announcement post](https://blogs.bing.com/webmaster/april-2020/Announcing-new-options-for-webmasters-to-control-their-snippets-at-Bing). We have decided to opt-in users of Yoast SEO by default to Bingbot crawling.
* No longer removes the default robots meta values.

Other:

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

= Earlier versions =
For the changelog of earlier versions, please refer to [the changelog on yoast.com](https://yoa.st/yoast-seo-changelog).
