=== The SEO Framework – Fast, Automated, Effortless. ===
Contributors: Cybr
Donate link: https://github.com/sponsors/sybrew
Tags: seo, xml sitemap, google search, open graph, structured data
Requires at least: 5.9
Tested up to: 6.4
Requires PHP: 7.4.0
Stable tag: 5.0.6
License: GPLv3
License URI: http://www.gnu.org/licenses/gpl-3.0.html

The fastest feature-complete SEO plugin for professional WordPress websites. Secure, fast, unbranded, and automated SEO. Do less; get better results.

== Description ==

**The fastest and only feature-complete SEO plugin that follows the guidelines and rules imposed by WordPress and search engines.**

**[Preview The SEO Framework in WordPress Playground.](https://playground.wordpress.net/?plugin=autodescription&login=1&url=/wp-admin/edit.php)**

Start using proven SEO tactics to improve your website's ranking. Clean, dedicated, extensible, unrestricted, ad-free, and no strings attached.

To top it off, this is the [fastest full-featured SEO plugin](https://twitter.com/TheSEOFramework/status/1493352649445580804/photo/1), and it blends right into your WordPress website, without leaving you in the dark.

It's easy to get started. Activate this plugin, and your site's instantly protected against prominent SEO attacks. The SEO Framework will also prefill all critical meta tags for you. A real time-saver. Ingenious.

[Migrate](https://theseoframework.com/?p=511) | [Setup](https://theseoframework.com/?p=2428) | [Improve](https://theseoframework.com/?p=2663) | [Extensions](https://theseoframework.com/extensions/) | [API](https://theseoframework.com/?p=82) | [Support](https://theseoframework.com/?p=3478) | [Privacy](https://theseoframework.com/?p=1701#pluginprivacyinformation)

### We poured over 27&#160;000 hours of love into this plugin. <br>Here are the results:

* **It is brilliant.**
The SEO Framework is an [expert system](https://en.wikipedia.org/wiki/Expert_system) for SEO. It is the only solution that can intelligently generate critical SEO meta tags in any language by reading your WordPress environment. This automation saves you a considerable amount of time that could be used to write more content or focus on other tasks. It also removes the need for advanced SEO knowledge.

* **It comes preconfigured.**
With The SEO Framework, we provide an excellent starting point for your website by rationally optimizing all your pages. Naturally, you can also tweak it however you like. If you're not an SEO expert, learn what you may wish to optimize in our [Setup guide](https://theseoframework.com/?p=2428).

* **It helps you optimize your metadata.**
We made the only SEO plugin that follows Google's webmaster guidelines to the letter. It took years of research and tweaking to translate this well inside your WordPress interface. Finally, you can freely optimize your pages without having to worry about making critical mistakes.

* **It creates a beautiful overview.**
On your post overview pages, you'll find color-coded guidelines. They suggest how to improve your pages as you hover over them with your mouse cursor. For example, when your titles are unbranded or when WordPress blocks indexing. Instinctively, touch-and keyboard navigation is also supported.

* **It includes exceptional support.**
We don't outsource our support. We're here for you. Feel free to drop by [our support forums](https://wordpress.org/support/plugin/autodescription/) at any time to ask a question. More than 1400 inquiries have been answered personally, typically within 48 hours in the past five years.

* **It leaves no room for errors.**
We focus on the quality of features you need over the quantity on features you don't. This trait makes this plugin unique, faster, more accurate, nearly bug-free, and more sustainable. The added benefit is that your site is unlikely to get penalized by search engines. We won't steer you into writing unnatural content or allow you to trick search engines.

* **It remains genuine and pure.**
We built The SEO Framework for small to large corporations and enterprises. The interface is entirely accessible and seamlessly integrates within your dashboard. Therefore, interacting with this plugin feels natural. It might feel dull, but your WordPress dashboard shouldn't be a billboard for our branding. We won't ever change this.

* **It improves search presence.**
The SEO Framework ranks your website distinctively by enabling breadcrumbs for Google Search via structured data. It also automatically generates titles and descriptions according to Google's guidelines and quickly helps search engines find the website's latest changes via the built-in optimized sitemap.

* **It makes social sharing easy.**
The SEO Framework automatically supports and allows you to further tailor the Open Graph, Facebook, and Twitter Cards protocols. It helps your posts stand out when they're shared on various social networks, including Pinterest, Discord, and WhatsApp.

* **It feels more than accessible.**
We handpicked our color scheme so that people with any medically recognized color-vision deficiency can distinguish the guidelines set by search engines. We also implemented full keyboard-navigation and screen-reader support.

* **It protects you from mistakes.**
The SEO Framework steers you from making significant and common SEO mistakes. It leaves little room for you to mess up because the plugin already does everything SEO for you. For example, it automatically prevents duplicated content mistakes by enforcing strict canonical rules.

* **It follows best-practices and beyond.**
The biggest problems with WordPress plugins are security and compatibility. As part-time security researchers, we focus on making this plugin impenetrable. The SEO Framework also uses WordPress's API whenever possible, making this plugin integrate neatly with every other plugin written with that in mind.

* **It has developers at heart.**
We encourage other developers to enhance and add functionality to this plugin. We've done so ourselves, already, with our [extensions](https://theseoframework.com/extensions/). Check out [our API](https://theseoframework.com/?p=82), and feel free to [contribute](https://tsf.fyi/contributing)!

* **It respects your privacy.**
The SEO Framework sends us no information and does not create cookies. Learn more from our strictly adhered-to [privacy policy](https://theseoframework.com/?p=1701#pluginprivacyinformation).

### Getting started

* Used another plugin? Easily [migrate your SEO data](https://theseoframework.com/?p=511).
* Need a helping hand getting started? Read our [quick setup guide](https://theseoframework.com/?p=2428).
* Want to improve your pages? Learn how to [optimize your metadata](https://theseoframework.com/?p=2663).

### Do more with extensions

For additional functionality, check out our free companion plugin [Extension Manager](https://theseoframework.com/?p=2760). It provides numerous free and paid extensions, such as:

* [Focus](https://theseoframework.com/?p=2305) guides you through the process of writing targeted content that ranks with **focus keywords and synonyms**.
* [Articles](https://theseoframework.com/?p=2303) **enhances your published posts** by automatically adding important Structured Data.
* [Transport](https://theseoframework.com/?p=3962) **migrates and transforms metadata** from Rank Math, Yoast SEO, and SEOPress to this plugin.
* [Honeypot](https://theseoframework.com/?p=2300) **catches comment spammers** through five lightweight yet powerful ways.
* [Cord](https://theseoframework.com/?p=3404) helps you connect your website to **Google Analytics and Meta Pixel**.
* [Local](https://theseoframework.com/?p=2306) lets you set up **important local business information** for search engines to consume.
* [AMP](https://theseoframework.com/?p=2304) **binds The SEO Framework to the AMP plugin** for AMP supported articles and pages.
* [Monitor](https://theseoframework.com/?p=2302) **keeps track of your website's SEO** optimizations and statistics.
* [Incognito](https://theseoframework.com/?p=2301) **hides all development-comments** from The SEO Framework.
* [Origin](https://theseoframework.com/?p=2299) **redirects attachment-page visitors** back to the parent post.
* [Title Fix](https://theseoframework.com/?p=2298) makes sure your **title output is as configured**. Even if your theme is doing it wrong.

Visit our [extensions overview page](https://theseoframework.com/extensions/) for more information.

### Unbranded, free and for the professionals

The SEO Framework is a uniquely white label plugin that blends seamlessly into your WordPress dashboard. This means that we don't even put the name "The SEO Framework" anywhere within your WordPress interface. No ads, no nags. Nobody has to know about the tools you've used to create your website. Note that we output standardized development-comments distinguishing the plugin output in source code. You can remove these with our free [Incognito extension](https://theseoframework.com/?p=2301).

### Behind the screens

The SEO Framework works on many things without notifying you, because the best software is fast, nimble, responsive, and should save you precious time. Here are a few things it does behind the screens.

* It prevents canonical errors for categories, pages, subdomains, and WordPress Multisite domain mapping.
* It stops SEO attacks that are caused by pagination exploits in WordPress by telling the search engine to look at the existing last page instead.
* It discourages 404 pages and empty categories from being indexed, even when they don't send a 404 response.
* It automatically notifies Google and the Bing network on website updates when sitemaps are enabled.
* It discourages search engines from indexing feeds and the sitemap. This doesn't mean they won't use them; only, they won't show them in their search results.
* It directs search engines from the comment pages back to the post storing those comments.

### Compatibility

**The SEO Framework supports:**

* Internationalization through WordPress.org. You can [contribute here](https://translate.wordpress.org/projects/wp-plugins/autodescription/).
* Unicode (UTF-8) character recognition and rendering, including Emoji and CJKV (Chinese, Japanese, Korean, Vietnamese).
* Right to Left (RTL) languages (Arabic, Hebrew, Farsi, etc.), through its interface and metatag generation.
* Complete color-vision deficiency accessibility thanks to a carefully picked color scheme.
* Full keyboard navigation, so that you can inspect tooltips quickly without ever having to reach for your mouse.
* Full screen-reader accessibility via field anchors, ARIA labels, and title attributes.
* WordPress Multisite setups, this plugin is in fact built upon one.
* Detection and output of robots.txt and sitemap.xml files.
* Full integration with WordPress Core sitemaps.
* Primary term (category) selection to influence breadcrumbs and links.
* Output of structured data via Schema.org JSON-LD scripts.
* Altering oEmbed for improved sharing on Discord.
* Detection of various other SEO tools to help you switch graciously.
* Translation plugins like WPML, Polylang, WPGlobus, and MultilingualPress.
* E-commerce plugins like WooCommerce and Easy Digital Downloads.
* Forum plugins like bbPress and wpForo.
* Editing posts and terms via WordPress's native bulk-and-quick-edit interfaces.
* Headless mode via a single [constant definition](https://kb.theseoframework.com/?p=136).

== Installation ==

### This plugin requires:

* PHP 7.4 or higher.
* WordPress 5.9 or higher.
* Any modern browser for administration.

### Installation instructions:

1. Install **The SEO Framework** either via your WordPress dashboard using plugin search or by uploading the files to your server.
1. Either network-activate this plugin or activate it on a single site.
1. That's it! The plugin now improves your website with SEO. It also protects your website against SEO attacks.

### This plugin auto-configures its global settings

However, it would be best if you read up on our [plugin setup guide](https://theseoframework.com/?p=2428) to get the most out of The SEO Framework.

### This plugin auto-configures SEO meta settings

However, you may want to read up on our [page improvement guide](https://theseoframework.com/?p=2663) to learn how you can optimize your pages.

### Get more SEO power

Optionally, also install our free [Extension Manager](https://theseoframework.com/?p=2760) plugin for additional SEO solutions.

== Screenshots ==

1. The SEO Framework shows you how your site is performing, at a glance. This is what we call the SEO Bar.
2. Hover over, tap on, or focus any SEO Bar item and it will tell you what's asserted from your environment.
3. The SEO meta box is displayed on all pages. It's everything you need. Here you can see the pixel counters.
4. These SEO settings are shown on the term edit screen. It seamlessly blends into your WordPress interface.
5. The SEO settings page of The SEO Framework. Every setting is explained thoroughly. You're in full control.

== Frequently Asked Questions ==

= Is The SEO Framework free? =

Absolutely! It will stay free as well, without ads, tracking, bloat, or nags!
This plugin is slim yet all-inclusive. It's 100% freeware, not crippleware.

= Is there a premium version? =

No. We treat this plugin as a premium plugin already.

However, we do offer many free and paid extensions that help support this free plugin. We provide these via our free [Extension Manager plugin](https://theseoframework.com/?p=2760).

= Why is there no analytics, tracking, or 404 monitoring? =

SEO experts that use advanced tools such as Ahrefs, SEMrush, Screaming Frog, and Google Analytics prefer using The SEO Framework because it doesn't try to do their job haphazardly.

To correctly analyze your website, it must be done from the outside. If we load these features on your site, bad robots will cause thousands of false positives that fill your database with useless information that doesn't apply to search engines. We refrain from this because it won't ever help you anyway.

= I have a feature request, a question, or found a bug. =

Please visit [the support forums](https://wordpress.org/support/plugin/autodescription) and kindly tell us about it.

We'll try to get back to you within a week. Typically, we reply within three days.

= I am a developer; how can I help? =

Any input is much appreciated, and everything will be considered.
Please visit the [GitHub project page](https://github.com/sybrew/the-seo-framework) to submit issues or even pull requests.

Learn more [about contributing](https://tsf.fyi/contributing).

= What do the colors tell me? =

We use different colors to convey messages. Red is an error that you must resolve. Yellow is a non-critical warning that you may want to address. Green is good. Blue is informational and situational. Gray is undefined or unprocessable.

= The sitemap doesn't contain categories, images, etc. =

Not having every single page listed is not an issue. Search engines love crawling WordPress because its structure is consistent and well known.

If a visitor can't find a page, then why would a search engine? Don't rely on your sitemap, but on your content and website's usability.

Check out our [Extension Manager](https://theseoframework.com/?p=2760). It brings extensions, like [Articles](https://theseoframework.com/?p=2303), that fill in the gaps via modern and more robust means.

= The sitemap contains unwanted links. =

The SEO Framework takes all publicly queryable posts, pages, and CPT and puts them in the sitemap.

If you don't want a page in the sitemap, consider enabling the `noindex` option for it. This option will also remove the page from search engine result pages.

If the link shouldn't be in the sitemap because it's meant for structural reasons, then inform the plugin or theme author that created them.
You should tell the author to check out the "`public` and `rewrite` post type arguments." The plugin or theme author should know what that means.

In the meantime, you can disable SEO for the unwanted entries via the "General SEO Settings" under "Exclusions."

= Why aren't focus keywords included? =

[Google warns](https://developers.google.com/search/docs/advanced/guidelines/irrelevant-keywords) about the keyword stuffing approach implemented by some other SEO plugins. It forces users to write unnatural content, and it can have adverse effects on your site's ranking.

Modern search engines use AI to understand the context of your articles. This means that as long as you write relevant content, you shouldn't have to worry about keywords.

However, we implemented the same API Google uses to help you find appropriate synonyms and inflections for your keywords. This functionality is part of our premium suite of extensions.

= What do the application/ld+json scripts do? =

The JSON-LD scripts are search engine helpers that tell search engines how to connect and index the site. We do this via the Schema.org standard.

They can tell the search engine if your site contains an internal search engine, which social sites you're connected to, and what page structure you're using. This is also referred to as **structured data**.

= How do I display breadcrumbs? =

The SEO Framework outputs hidden breadcrumbs for search engines to find via its Schema.org settings.

You can also output these breadcrumbs visually in your theme by [using a shortcode](https://kb.theseoframework.com/?p=212).

== Changelog ==

### 5.0.6

This patch addresses an issue where [WordPress 6.0 and higher mistakenly tweaks unpaginated queries as comment-paginated](https://core.trac.wordpress.org/ticket/60806), causing indexing issues when using Full Site Editing or themes that [prerender Blocks before TSF](https://theseoframework.com/?p=4244).

### 5.0.5

In this minor sitemap-centric update, we've integrated WPML and Polylang's language-specific sitemap URLs into robots.txt, clarified support for complex sitemaps, and removed deprecated pinging functionality. We also added seconds to timestamps, resolved issues pertaining to the number 0, and remotely [fixed another compatibility issue in Polylang](https://theseoframework.com/?p=4234).

### 5.0.4

This tiny update [addresses an issue](https://theseoframework.com/?p=4215) that affected detection of the assigned blog page.

### 5.0.3

This minor update fixes compatibility with Polylang Pro. We also perfected the detection of unassigned home and blog pages and improved the Block Editor's load time by [resolving a glitch](https://theseoframework.com/?p=4204).

### 5.0.2

This minor update fixes more issues our community found after the release of TSF v5.0.0. We also improved the calculation of primary terms with child terms and how breadcrumbs handle post type archives. And again, we [improved the performance](https://theseoframework.com/?p=4174).

### 5.0.1

This minor update fixes issues our community found after the release of TSF v5.0.0. We also [improved the performance](https://theseoframework.com/?p=4158).

### 5.0.0 - Apex

*We become just by doing just acts, temperate by doing temperate acts, brave by doing brave acts. - [Aristotle](https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext%3A1999.01.0054%3Abook%3D2%3Achapter%3Dpos%3D17%3Asection%3D4)*

**Release highlights**

* There's a brand-new relational Schema.org structured data generator.
* We added a new shortcode (and function) for breadcrumbs to put in your templates.
* You can now select a preferred Twitter Card type for every post, term, and custom post type.
* Do you fancy the SEO Bar but find it distracting? Toggle the new dull, low-contrast color scheme.
* Special characters are now normalized for SEO Bar assertions, so it is now far more accurate.
* Users with an author role anywhere in a multisite network can now have their SEO meta tweaked from any site.
* Tooltip backgrounds and various border accents now adhere to the admin color scheme (once more).

**Apex**

Even though we dubbed TSF v4.2 "perfect," it couldn't be even better because of its legacy codebase. Many features and tweaks weren't possible because those would've created bugs or made maintenance impossible. In v5.0, we overhauled everything while keeping in mind the future. In doing so, we managed to ascend to a new apex, and we can now see the next summit ahead.

Its code is unrecognizable, yet somehow very familiar. TSF v5.0 "Apex" is just the beginning of what comes next, and it won't be downhill from here.

**New breadcrumb shortcode**

You can now use shortcode `&#91;tsf_breadcrumb&#93;`. This shortcode is meant to be implemented in your theme and will output the current breadcrumb. It will listen to your meta title settings. You can learn more about its syntax in our [Knowledge Base about the Breadcrumb shortcode](https://tsf.fyi/kb/a/212).

**Important for developers**

* We refactored the entire codebase in this update -- over 1.20 million characters were written, and over 0.87 million were removed.
* The code counts **1229 registered changes**; we added over 70 new classes, 220 new methods, 20 new filters, and a shortcode.
* For the main object, `tsf()`, we deleted 19 classes, deprecated 388 methods and 1 property, and deleted 110 methods and 10 properties.
* `uid` is now an accepted custom query parameter for almost all meta-generator methods. If your custom filters for TSF act odd on profile pages, [reach out to us in the forums](https://tsf.fyi/support/tsf/new-topic) and show us your code. **We'll fix it for you.**
* So, if you ever used the `the_seo_framework()` or `tsf()` function, you almost certainly will get a deprecation notice. If you need assistance resolving this, please [open a new support topic](https://tsf.fyi/support/tsf/new-topic) and **show us your code**.

**New meta tag generator**

TSF now generates all meta tags via a registry. You can alter the population of the registry via filters `the_seo_framework_meta_generator_pools` and `the_seo_framework_meta_generators`, and you can modify the final registry via filter `the_seo_framework_meta_render_data`. For that, you can [find an example at Github](https://gist.github.com/sybrew/272b746296114cd93c3320e9544a1618).

**New Schema.org graph generator**

We added a new Schema.org structured data generator to TSF. This generator supports every page, post, archive, and custom post type. We built it to be referential and expansive by generating an ID-based graph. For example, if you refer to a Person once, their entity will be put right there, but if you refer to it again, it will use an ID-based reference. This keeps the output code neat and will not waste time generating an entity twice. You can filter it via `the_seo_framework_schema_graph_data`.

**Environment upgrade notes**

WordPress 5.5 through 5.8 are no longer supported. Here's why:

* [Over 75% of all WordPress sites](https://wordpress.org/about/stats/) are using WordPress v5.9 or later.
* Newer versions of WordPress are faster, more reliable, and easier to work with --- for both you and us.
* Supporting past versions takes time away that's better used implementing new features.

PHP 7.2 and 7.3 are no longer supported. Here's why:

* [Almost 80% of all WordPress sites](https://wordpress.org/about/stats/) are using PHP v7.4 or later.
* Newer versions of PHP are faster and more secure. For us, they're also easier to work with.
* Again, supporting past versions takes time away that's better used implementing new features.

**Support the development**

We hope you'll love this update as much as we do. Please consider supporting us by sharing [a fantastic review](https://wordpress.org/support/plugin/autodescription/reviews/#new-topic-0), [get a license](https://theseoframework.com/pricing/), or do your friends and colleagues a favor by installing TSF for them.

**Detailed log**

We become brave by training ourselves to despise and endure terrors, and we shall be best able to endure terrors [when we have become brave](https://theseoframework.com/?p=4135#detailed).

### Full changelog

* **You can find the full changelog [here](https://theseoframework.com/?cat=2).**

== Upgrade Notice ==

= 5.0.0 =

This is a major upgrade. Make a backup of your database before updating. WordPress v5.9 or higher and PHP v7.4 or higher are now required. If you use the Extension Manager, update it to v2.6.3 or higher before updating this plugin. Downgrading to v4.2.8 is possible, but the description's HTML parsing method will revert to its default setting.

== Other Notes ==
