Over the past two months, with over 50 commits and 81 file changes, roughly 50 feature changes have been implemented for The SEO Framework 3.0 release.
Let’s call The SEO Framework “TSF” henceforth.
The most notable changes
With TSF 3.0, I’ve:
- Completely reworked the (canonical) URL generation.
- Completely reworked the admin tooltips.
- Completely reworked breadcrumb generation.
- Updated the Open Graph protocol output to the latest specifications.
- Added primary term selection.
- Added pixel counters.
- Added authorial SEO options.
- Perfected title “hover placeholder” input fields.
- Improved WooCommerce 3.0+ compatibility.
- Changed the used colors, adhering to the selected admin color scheme.
- Added the ability to upload logos, for usage in Schema.org structured data.
The most important fixes
Sometimes, bugs stack up because I’ve either started out with a wrong approach or I’ve expanded functionality beyond the initial intended specification. When this happens, bugs can only effectively be taken down through refactorizations or rewrites.
Perfect URL generation
For many users, the URL generation rework is most important. It ensures compatibility with WPML, Polylang, and other translation plugins. It also ensures compatibility with all plugins that use custom post types.
What I’ve done is using WordPress’ own URL generation, instead of guessing the page query and working from there. The code is now neatly compacted, easily understandable, and a few caller methods have been added for upcoming features.
In short: If the URL is incorrect, it’s very unlikely a bug in TSF.
WooCommerce 3.0 compatibility
Another very important change is regarding the breadcrumb generation. WooCommerce 3.0 added new LD-JSON scripts at the bottom of the page. Because TSF outputs the scripts with an identifier related to the same page, the ones with product specifications from WooCommerce were seen as unbound.
This issue resulted in that Google notoriously ignored WooCommerce’s scripts. Another effect, because multiple breadcrumb scripts were outputted, was that the scripts gave off incorrect signals to Google and other search engines. This was because the scripts were erratically referring.
With 3.0, these issues should no longer arise. In short: What I’ve done is limiting the breadcrumb scripts to one from many, and I’ve removed the current page’s identifier.
Enqueue SQL
A huge issue with TSF 2.9.3 was the addition of archival exclusion. This feature allows users to remove a post from all archival listings. To make this work seamlessly, I’ve added a “meta query”. Briefly explained, this tells the SQL management system to test each found result for the input data.
Although WordPress allows for meta queries to support special request like these, this is an issue. Because unfortunately, TSF is not the only plugin that wants to make use of meta queries. This caused incompatibilities where sometimes no data is returned from the query.
To top it off, as your database grows, this query can be very resource intensive. Let’s say you own a news website with over 50,000 articles… each of those articles is being tested against this meta query, in whatever configuration, multiple times on every page.
To alleviate this issue, in TSF 2.9.4, I’ve added settings affecting this. So, webmasters experiencing issues could change this behavior–by either disabling it or moving the exclusion to a different mechanism that could lead to 404 pages–, but it wasn’t perfect. These settings can be found in the “General” settings meta box, under the “Performance” tab, and they will stay available.
To permanently fix this, I’ve converted this meta query into something else: It’s now an “ID exclusion” query. This works by preemptively caching all post IDs with exclusion settings, and then perform the exclusion right before the query is finished. This exclusion is done in the database management system; therefore, pagination calculation will remain correct, so no 404 errors should arise.
In theory, this fix makes it at least 10 times faster. Most SQL servers can cache these queries internally as well, which makes its presence even more obscure. Even more importantly, if you do not make use of this feature it won’t affect performance any longer.
Start testing
Feel free to test TSF 3.0 beta on any website you’d like to. Please note that beta software shouldn’t be used on production websites and might hurt ranking if SEO output is incorrect.
To start testing, follow these steps:
- Download TSF GitHub master version.
- Unpack the contents of the ZIP file.
- Connect to your website using FTP.
- Go to FTP folder
…/wp-content/plugins/autodescription/
. - Move files from ZIP folder
the-seo-framework-master
into the FTP folder. - Log in to your WordPress admin dashboard as administrator to complete the upgrade.
The finer details
> View code changes here.
> View closed issues here.
> View the detailed log here (Markdown).
Commence more changes
This update is still in beta. This means I’m not fully confident it will run smoothly on production websites. I’m also not done with the update, but all that’s important has been implemented.
Keep an eye on the commits page to see if anything has changed since you last installed the beta.
These items are still on the to-do list:
Adding RTL compatibility.Closing, moving, and opening meta boxes can cause graphical glitches.Cross-browser interface testing(e.g. on iOS 11, primary term buttons look off).Perform a complete security review.WordPress.org user translation preparation.Testing the plugin upgrade from any previous version.Testing the plugin on a new and clean website.
Extension Manager
The Extension Manager (TSFEM) 1.3.2 and below isn’t fully compatible with this update. There I’ve found that only the Articles extension will generate an incorrect URL and will output deprecation warnings.
TSFEM 1.4.0 is already available, with all necessary compatibility improvements, including a new extension:
> Download TSFEM 1.4.0.
Feedback
Feel free to leave feedback in the comments below, or use the following form.
Feedback form and forums are closed.