=== The SEO Framework ===
Contributors: Cybr
Donate link: http://theseoframework.com/
Tags: seo, description, automatic, title, og, type, meta, ogtype, multisite, multibyte, search engine optimization, canonical, keywords, options, domain, mapping, genesis, robots, nofollow, noindex, noarchive, noodp, noydir, redirect, icon, facebook, twitter, author, article, taxonomy, rtl, screenreader, framework, sitemap, sitemaps
Requires at least: 3.6.0
Tested up to: 4.4.0
Stable tag: 2.3.0
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

The SEO Framework makes sure your Website's SEO is always up-to-date without any configuration needed. It also has support for extending.

== Description ==

= The SEO Framework =

**The fast all in one automated SEO optimization plugin for WordPress**

> <strong>This plugin strongly helps you create better SEO value for your content.</strong><br />
> But at the end of the day, it all depends on how entertaining or well-constructed your content or product is.
>
> No SEO plugin does the magic thing to be found instantly. But doing it right helps a lot.<br />
> The SEO Framework helps you doing it right. Give it a try!
>
> The Default Settings are recommended in the SEO Settings page. If you know what you're doing, go ahead and change them! Each option is also documented.

= What this plugin does, in a few lines =
* Automatically configures your SEO, title, description, etc...
* Allows you to adjust the SEO.
* Shows you how to improve your SEO with a beautiful SEO bar for each post/page/tag/category.
* Helps your site get ranked better.
* Helps your site get shared more beautiful through e.g. Facebook and Twitter.
* Allows plugin authors to easily extend this plugin.

= Formerly AutoDescription =
**This plugin has just received a new name. The functionality has also been improved.**

But now, it also features pluggable functions. All functions are working and can be called within the WordPress Loop.
We also provided an API documentation located at [The SEO Framework API Docs](http://theseoframework.com/docs/api/).
*This site is very new (September 28) and is still being set up.*

= Still not convinced? Let's dive deeper =
**This plugin automatically generates:**

* Description
* Title, with super-fast 'wrong themes' support (so no buffer rewriting!)
* og:image
* og:locale
* og:type
* og:title
* og:description
* og:url
* og:site_name
* Canonical, with full WPMUdev Domain Mapping and HTTPS support
* LD+Json, extended search support for Google Search and Chrome
* Knowledge Graph (partially)
* Publishing and editing dates
* Link relationships, with full WPMUdev Domain Mapping and HTTPS support
* Various Facebook and Twitter meta tags
* And a Sitemap

**This plugin allows you to manually set these values for each post, page and taxonomy:**

* Title
* Description
* Canonical
* Robots (nofollow, noindex, noarchive, noodp, noydir)
* Redirect, with Multisite spam filter
* Local on-site search settings

**This plugin allows you to adjust various site settings:**

* Document Title Separator
* Document Title Additions Location
* Robots for Archives
* Robots for the whole site
* Home Page Description, Title and various other options
* Facebook Social integration
* Twitter Social integration
* Open Graph meta output
* Shortlink tag output
* Post publishing time output
* Link relationships
* Google/Bing Webmaster verification
* Google Knowledge Graph
* Sitemaps
* Robots.txt
* Etc.

**This plugin helps you to create better content, at a glance. By showing you:**

* If the title is too long, too short and/or automatically generated.
* If the description is too long, too short and/or automatically generated.
* If the description uses some words too often.
* If the pages are indexed.
* If the page is indexed, redirected, followed and/or archived.
* If your blog is public.

**We call this The SEO Bar. Check out the [Screenshots](https://wordpress.org/plugins/autodescription/screenshots/#plugin-info) to see how it helps you!**

> This plugin is fully compatible with the [Domain Mapping plugin by WPMUdev](https://premium.wpmudev.org/project/domain-mapping/) to **prevent canonical errors**.
>
> This plugin is also completely ad-free and has a WordPress integrated clean layout. As per WordPress.org plugin guidelines and standards.
>
> No initial configuration is needed. Either Network Activate this or use it on a single site.

= Caching =

This plugin's code is optimized on PHP-level and uses object caching. This means that there's little extra page load time from this plugin, even with more meta tags used.
If you love posting content with about 80,000 words, e.g. books, be sure to use a caching plugin. Because this plugin will read the book.

**If you use object caching:**
The output will be stored for each page, if you've edited a page the page output meta will stay the same until the object cache expires. So be sure to clear your object cache or wait until it expires.

= Compatibility =

* Full internationalisation support
* Extended Multibyte support (CJK)
* Complete screen-reader support for accessibility

This plugin will automatically shut down on almost every part if other popular SEO plugins are active. This is to prevent big SEO mistakes.
It will however output robots metadata and og:image, among various other things which are bound to social media.

= Other notes =

**This plugin copies data from the Genesis SEO meta, this means that when you use Genesis, you can easily upgrade to this plugin without editing each page!**

*Genesis SEO will be disabled upon activating this plugin. The new SEO Settings page adds extended SEO support.*

***The Automatic Description Generation will work with any installation. But it will exclude shortcodes. This means that if you use shortcodes or a page builder, be sure to enter your custom description!***

> <strong>Check out the "[Other Notes](https://wordpress.org/plugins/autodescription/other_notes/#Other-Notes)" tab for the API documentation.</strong>

*I'm aware that radio buttons lose their input when you drag the metaboxes around. This issue is related to the WordPress Core and is being discussing at [WordPress Core Trac](https://core.trac.wordpress.org/ticket/16972).*
*But not to worry: Your previous value will be returned on save. So it's like nothing happened.*

== Installation ==

1. Install The SEO Framework either via the WordPress.org plugin directory, 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!
1. Let the plugin automatically work or fine-tune each page with the metaboxes beneath the content or on the taxonomy pages.

== Screenshots ==
1. This plugin shows you what you can improve, at a glance. Try to aim for all green!
2. Hover over any of the SEO bar's color to see how you can improve the page's SEO.
3. The Post/Page SEO settings box. This box is also neatly implemented in Categories and Tags.
4. The SEO settings page Title Settings. Also shows you a glance of the Robots Meta Settings.
5. The SEO settings page Home Page Settings.

== Changelog ==

= 2.3.0 - Securely Optimized Framework =
**Quick note:**

* This plugin is now complete with features. All required features for good SEO are in this plugin.
* Advanced SEO features, like Knowledge Graph telephone numbers and location for Businesses will be added through seperated plugins.
* If new SEO developments take place, for example when the Google Authorship comes back, then it will be added to this plugin, of course. We try to stay on top of SEO trends with The SEO Framework's base plugin.
* Future updates until then will only include enhancements (performance, bugfixes, etc.). This plugin maintains active development.

**Why so many bugfixes took place:**

* WordPress is huge and has many variables which determine what kind of page we're dealing with, on top of that there are many options which determine how a page should be output. Through permalinks, taxonomies, plugins, themes, etc. I pushed many, many features through in the past month to complete an all-in-one SEO solution.
* This plugin is also something special: It deals with each and every kind of page within WordPress, instead of just one place. Most plugins at this scale took many years to become where they are now. This plugin is at that stage.
* Therefor, because this plugin is at the end of growing in features, all bugs should gradually be fixed all together. The most important aspects are all fixed now and to date I haven't found any more bugs. Don't forget: this is a one-man project, completed within 3 months with over 11500 lines of code and comments. Each update parsed about 1500 to 5000 line changes, within 1 to 3 days span.

**For everyone:**

* Added: Sitemap transient flush on permalink structure update, the plugin will also try to ping search engines when that happens (depending on options).
* Changed: Rewrite rules are now enqueuing the rewrite flush at PHP shutdown (end of page load) when needed, instead on $_POST. Now other plugins can safely add rewrite rules whenever they want.
* Changed: Sitemap generation timestamp has been changed from am/pm to a 24 hour format.
* Changed: This plugin now uses less processing power demanding sanitation for title and description.
* Fixed: Minor security fix in admin area where the Linkedin profile link isn't sanitized correctly. But don't worry: this didn't cause an XSS vulnerability. On the front end the code is passed through json_encode so the browser can't parse unwanted scripts put in place.
* Fixed: For Multisite with Domain Mapping by WPMUdev: The rewrite rules are flushed by this plugin. This is a bug within Domain Mapping. So we flush the rules again on 'init' once per site while adding back the SOO (Single Sign On) script.
* Fixed: Negative priority values in sitemaps when dealing with many posts. This was a rare bug and had no impact on SEO.
* Fixed: Canonical URL's in Sitemaps when special types are used in Permalink Structure. Had no impact on SEO. This also fixes the Canonical URL placeholder, which did impact SEO in rare cases.
* Fixed: Various Dutch Typos.
* Fixed: Shortlinks on taxonomies now work again.
* Fixed: Double /wp-admin/ disallow on robots.txt. Had no impact on SEO.
* Removed: Genesis Canonical archive noindex support. Since it's been supported by this plugin itself since 2.2.4.

**For developers:**

* Added: Domain Mapping by WPMUdev check.
* Added: A filter for almost every front-end output. This plugin is more plugable than ever :). (20+ new filters)
* Added: All pluggable filters, again! They (almost) all contain 'the_seo_framework_' base now. They take values from the older filters as a default until 2.3.5. This is to maintain consistency as this plugin has been renamed from AutoDescription to The SEO Framework a few versions back.
* Added: All pluggable actions, again! They all contain 'the_seo_framework_' base now. The previous available actions are still in place until 2.3.5.
* Added: All pluggable constants, again! They all contain 'THE_SEO_FRAMEWORK_' base now. They take values from the older constants as a default until 2.3.5.
* Added: Better compatibility with outdated server configurations.
* Changed: A lot of functions have been split up into multiple functions to maintain readability of the code. This also improves speed with Opcode.
* Changed: Minor improvements for speeding up Opcode caching by using typecasting, mainly works well in PHP7 since there are more types accepted.
* Cleaned up code.

**Note:**

* Filters, functions and constants which have been deprecated are "marked for removal". Use the alternative a few lines later. The new filters take priority over the old filters, if both are applied.
* 2.3.5 will happen after November 10th 2015. Then I will clean up all old filters, actions and constants. On removal and when still applied, nothing happens.
* A free plugin is underway which contains all current filters and actions for some advanced customization. The same goes for promised updates.
* Because of all renamed filters/actions/constants the API docs requires an overhaul. This will happen next week.

= 2.2.9 - Robotic XML Sitemaps =
**For everyone:**

* Added: Sitemaps! Read more about this change below.
* Added: Sitemaps options. The output is defaulted to 'disabled' for existing users. It's defaulted to 'enabled' for new users of this plugin.
* Added: Robots.txt adjustment - Sitemaps support through the robots_txt filter. If you have a static robots.txt file in your document root, read this: [Make your sitemap available to Google](https://support.google.com/webmasters/answer/183668?hl=en#addsitemap)
* Added: Blocked query strings from search index through robots.txt. This will be adjustable in a future update.
* Added: Blocked wp-admin and wp-includes from search index through robots.txt. This will be adjustable in a future update.
* Added: The sitemap's output is cached in the database when it's called, when a post is deleted or published, the sitemaps are updated and Google, Yahoo and Bing are pinged (optional).
* Added: Pinging of search engines. This is configurable and can occur normally at maximum once per hour.
* Added: Generic-Admin icons on General Settings tabs.
* Added: Icons on the Robots Meta Settings tabs, something to easier familiarize yourself with.
* Added: Sitemaps flush on SEO settings change.
* Changed: (textual) The "add my logo from customizer" title in the Knowledge Graph metabox has been changed from a question to a statement.
* Changed: (layout) The extra information about noodp and noydir has been moved above the checkboxes.
* Changed: The Robots metabox has been moved down a few places on new installations.
* Changed: The link relationship urls no longer use the canonical url option.
* Changed: This plugin has acquired maximum priority within the document head tags, this is to counter SEO mistakes some "SEO friendly" themes make. This doesn't affect Genesis themes.
* Changed: Sanitation calls are now only run on the SEO Settings page and nowhere else (previously everywhere in the dashboard).
* Changed: Removed the brackets around the Home Page "Checked in Page" warning message to improve RTL support.
* Updated: .POT file.
* Updated: Dutch Translation Files.
* Fixed: Search script markup caused by sanitation.
* Fixed: Various typos in Dutch translation.
* Fixed: Shortlink URL for post page if front page is static.
* Note: This update has been thorougly tested on both single and multisite. If however your sitemap doesn't show up:
	* Either: Try to save the SEO settings again.
	* Or: Please go to the Permalink Settings of your site and save the settings (no need to adjust them). This will force a flush.
* Note: If you're running your WordPress installation within a subdirectory, the sitemaps will not work unless you have a .htaccess file located in the subdirectory root.

**For developers:**

* Added: New filters.
* Added: New plugable functions. Be sure to compare to 2.2.9 as shown in Generator - The SEO Framework example plugin.
* Added: The the_url() now accepts the canonical parameter, to fetch the url from options or not.
* Added: Fetching the url externally through the_url() or the_url_from_cache() where the page id is home, will now give the canonical home url.
* Changed: The the_url_from_cache() function now accepts parameters.
* Fixed: PHP notice in ld_json_knowledge().
* Cleaned up code.
* Note: I'm lagging behind on updating the API docs, but don't worry: It'll be updated within a week!
* Other: Version 2.3.0 of this plugin will focus more on the API and pure code optimalizations and less on new features. Since we're all moving to PHP7 this year (I hope!) we can focus more on making programming easier for everyone.

= 2.2.8 - Social Business SEO =
**For everyone:**

* Added: (Google) Knowledge Graph support. Connect personal or business (social) sites to be (sometimes) shown in the widget of Google search.
* Added: Options for the Knowledge Graph.
* Added: The Business SEO also takes your Site Icon (WordPress 4.3 and up) for an automatically generated Logo for the Knowledge Graph. This is optional.
* Added: Automatic noindex for empty categories. There are no plans for making this optional as these empty pages always hurt your site's SEO value.
* Added: This new feature also reflects on The SEO Bar.
* Added: An Open Graph alternative for Post/Page modified time if both Open Graph Tags and article:modified_time are active (og:updated_time).
* Added: Automated description prefix 'Latest posts:' for the Posts Page if the Home Page is static.
* Added: Automated Description now uses the Custom Post/Page title if set.
* Added: Link to options page from plugin dashboard (single site only).
* Added: Link in the plugin's activation page to The SEO Framework's homepage (single site only). This is the only and final link we'll ever place.
* Fixed: The SEO Bar now determines the real length of the title if it's manually set.
* Fixed: Page description placeholder for pages which are assigned to the Posts Page through customizer now represent what they output on the front-end.
* Fixed: Page description placeholder for pages which are assigned to the Front Page through customizer now represent what they output on the front-end.
* Fixed: Page description input for pages which are assigned to the Posts Page through customizer now correctly render the input.
* Fixed: Page title for pages which are assigned to the Posts Page through customizer now aren't empty on the front-end.
* Fixed: Untitled pages now correctly render the "Untitled" title in the automated Description.
* Fixed: The Dutch translation files now work again (accidentally left capitalized).
* Fixed: Added missing quotes in the LD+Json search helper. Shouldn't have had any impact on SEO.
* Fixed: Highly unlikely bug: On the SEO Bar for the Home Page, if you disabled indexing for the Home Page through Genesis Settings and Archiving is allowed, it would show that Noarchive is active.
* Removed: Genesis Home Page description from the SEO settings output (because it isn't accessible anymore).
* Removed: Genesis Post Type Archive SEO output rendering, since it's replaced with this plugin's.
* Removed: The (AutoDescription) addition in the plugin's title on the plugin page.
* Other: Made the icon of this plugin sharper :).
* Updated: Language files.

**For developers:**

* Added: New filters.
* Changed: The AutoDescription_Generate::title() function is now split up into multiple functions. Useage and output stays the same.
* Fixed: PHP Notice when adding a tag or category through AJAX.
* Removed: Deprecated hmpl_og_image filter from 2.0.5
* Cleaned up code.

**The full changelog can be found [here](http://theseoframework.com/?cat=3).**

== Other Notes ==

== Filters ==

= Add any of the filters to your theme's functions.php or a plugin to change this plugin's output. =

Learn about them here: [The SEO Framework filters](http://theseoframework.com/docs/api/filters/)

== Constants ==

= Overwrite any of these constants in your theme's functions.php or a plugin to change this plugin's output by simply defining the constants. =

View them here: [The SEO Framework constants](http://theseoframework.com/docs/api/constants/)

== Actions ==

= Use any of these actions to add your own output. =

They are found here: [The SEO Framework actions](http://theseoframework.com/docs/api/actions/)

== Settings API ==

= Add settings to and interact with The SEO Framework. =

Read how to here: [The SEO Framework Settings API](http://theseoframework.com/docs/api/settings/)
