The SEO Framework

★︎ My account
  • Extensions
  • Documentation
  • Pricing
  1. Home
  2. Feature Highlights
  3. Five years of TSF: Catching up

Five years of TSF: Catching up

March 8, 2026 by Sybre Waaijer

Our last “Featured Highlights” post was in September 2020, so we have some catching up to do! Since then, TSF went from v4.1.2 to v5.1.4, and the Extension Manager from v2.4.0 to v2.7.2. That’s two major TSF releases, several Extension Manager milestones, dozens of minor updates, and a complete codebase rewrite. Let’s walk through the highlights.

Schema.org structured data, rebuilt from scratch

TSF v5.0 replaced the old structured data system with a relational Schema.org graph generator. Instead of emitting isolated JSON-LD blocks, TSF now wires entities together by ID. If a Person appears once, their full entity is written inline; if they appear again, TSF outputs an ID reference. No duplicate data, no wasted bytes.

The graph generates on every page, post, archive, and custom post type. It outputs WebSite, WebPage, BreadcrumbList, Organization or Person, Logo, and SearchAction for the Sitelinks Searchbox — all wired together. Archives get CollectionPage, search pages get SearchResultsPage. Developers can hook into the_seo_framework_schema_graph_data to add or remove entity builders.

Breadcrumb shortcode

TSF v5.0 added a breadcrumb shortcode: [tsf_breadcrumb]. Drop it in your theme templates — or any shortcode-capable area — and it outputs navigational breadcrumbs for the current page. You set the separator, homepage label, and CSS class via attributes.

A PHP function, tsf_breadcrumb(), does the same for template files. The output is filterable via the_seo_framework_breadcrumb_shortcode_output. The corresponding Schema.org BreadcrumbList now covers all page types, not just singular posts.

In v5.1.4, we added a setting and shortcode attribute to choose between meta titles (your custom SEO titles) and page titles (the plain editor titles) for breadcrumb output.

Post type archive settings

TSF v4.2 brought full post type archive management to the SEO Settings page. You can now set titles, descriptions, Open Graph and Twitter metadata, social images, canonical URLs, redirect URLs, and robots directives for every public post type archive. WooCommerce shops, portfolio archives, custom post types — all configurable from one place.

Custom site title

TSF v4.2 added a “Site Title” option under Title Settings. It overrides WordPress’s blog name for SEO purposes only — your theme’s site title stays untouched, but meta titles, Open Graph tags, and structured data all use the custom value. Handy when your WordPress site title is stylized or abbreviated but you want search engines to see the full name.

Headless mode

TSF v4.1.4 introduced headless mode. Disable the settings interface, meta output, or both — the API keeps working. Developers who want TSF’s engine without its opinions can define THE_SEO_FRAMEWORK_HEADLESS and go build whatever they want.

WordPress Core Sitemaps integration

When WordPress 5.5 introduced Core Sitemaps, TSF v4.1.2 added full integration. Pick between TSF’s optimized sitemap and Core Sitemaps right from the SEO settings. TSF’s sitemap prerenders its output, rate-limits requests to prevent DoS abuse, and integrates with Polylang out of the box.

TSF v5.0.5 later extended this by integrating WPML and Polylang’s language-specific sitemap URLs into robots.txt.

Canonical URL Notation Tracker

TSF v5.1 introduced a real-time canonical URL tracker. When you edit a page or term, the canonical URL placeholder updates as you type — reflecting your slug, parent page, author, date, and category selections. You see the URL search engines will use, before you hit Save.

The tracker turns itself off when a multilingual plugin is active — those rewrite URLs in ways we can’t reliably predict from the admin area. We’ll sort this out in a future update.

Robots.txt generator and AI blocking

TSF v5.1 replaced the old robots.txt writer with a priority-based generator. Two new checkboxes under SEO Settings → Robots Settings let you block AI language model trainers and SEO analysis crawlers. The blocked user agents cover the major AI training bots and SEO crawlers. If you need finer control, the_seo_framework_robots_txt_sections lets you append, remove, and modify sections.

Twitter Card type per post

TSF v5.0 added per-post Twitter Card type selection. Override the default card type on any post, term, or post type archive — summary card or large image card, your call. Yes, it’s still called “Twitter Card.” Blame X, or thank Discord.

New color scheme and accessibility

v5.0 added a low-contrast color palette for the SEO Bar. Toggle it and only red — the one that means something needs fixing — stays vibrant. Tooltip backgrounds and border accents follow your WordPress admin color scheme again, too.

TSF v5.1 took this further with a full color scheme overhaul. We adopted WordPress 5.7’s higher-contrast palette and tuned it for TSF. The SEO Bar is darker and easier on your eyes. Pixel and character counters look more vigorous. We also fixed a long-standing regression where WordPress 5.3 changed checkbox marks from colorable items to immutable images — colored default/warned indicators are back.

Advanced Query Protection

TSF v4.2.7 and v4.2.8 expanded Advanced Query Protection to block SEO attacks that inject rogue query variables. These attacks create duplicate content and tank your rankings. The system now detects plugin query variables dynamically, so it covers hundreds of WordPress plugins without per-plugin configuration.

SEO Bar improvements

v5.0 normalizes special characters for SEO Bar assertions — entities like &, curly quotes, and apostrophes no longer throw off the title and description checks. The word counter recognizes connector punctuation now, too: we're counts as one word, not two (v4.2). Length calculations are more accurate as well — special characters in site titles that previously caused branding mismatches (like ' vs ') now resolve correctly.

Homepage canonical and redirect URL

TSF v5.1 added canonical URL and redirect URL fields for the homepage in the SEO settings. If your homepage is a page, the global setting overrides the page’s individual metadata — so you control it from one place instead of two.

Quick edit and bulk edit

TSF v5.1.3 added primary term selection to quick edit and bulk edit on post overview pages. Combined with the title and description quick-edit fields that have been around since v4.1, you can now manage core SEO metadata for dozens of posts without opening each one.

The same update added option visibility toggles under General Settings, letting you hide TSF’s term, user, and quick/bulk edit interfaces where you don’t need them.

Image type warnings

TSF v5.1 warns you when a social image uses a format that most platforms can’t display. WebP and HEIC trigger a warning; SVG, BMP, and ICO trigger an error. You’ll see it right next to the image preview — no more wondering why Facebook shows a blank box.

Theme and plugin compatibility

Avada: TSF v5.1.3 now hides Avada’s built-in SEO settings that conflict with TSF and disables their duplicate Open Graph and structured data output.

Bricks: TSF v5.1 prevents Bricks’ unsupported templates from appearing in search results and sitemaps.

Elementor: v5.1.3 forces noindex on Elementor’s Landing Pages and Templates post types. Elementor should have done this years ago — those post types are internal scaffolding, and leaving them indexable has been silently hurting millions of sites’ rankings.

WooCommerce: Improved throughout. When no proper Shop page is assigned, TSF now correctly treats the shop as a Post Type Archive (v5.0). Breadcrumbs no longer conflict on product pages.

Polylang and WPML: TSF now writes language-specific sitemap URLs into robots.txt, warns you when multilingual plugins conflict with TSF’s output, and reads WPML String Translation values for homepage and post type archive metadata.

Performance

Every major release pushed performance further:

  • v4.1.2: Sitemap prerendering and DoS protection.
  • v4.2: Faster image fetching from content. Twitter Cards generate 61% quicker. Title and description counters sync at 60fps instead of 75-100fps sporadically.
  • v4.2.4: Image processing improvements reduced TSF’s load impact by roughly 20%.
  • v5.0: Complete rewrite. The main object lost 558 methods and 15,668 lines. Methods load selectively per request. Generated image metadata use a fiber-like caching principle. Sitemap generates up to 6% faster by rewriting the URL generator and eliminating redundant queries.
  • v5.1: Removed jQuery dependencies from core scripts. Fading animations handled via bespoke vanilla JS. Reduced stylesheet payload with modern CSS.

Complete codebase rewrite

TSF v5.0 “Apex” rewrote the entire plugin. Over 1.20 million characters were written and over 0.87 million were removed. The changelog registered 1,229 changes, adding 70+ new classes, 220+ new methods, and 20+ new filters.

The old god object was split into a pool-based API: tsf()->query(), tsf()->title(), tsf()->description(), tsf()->uri(), tsf()->robots(), tsf()->schema(), tsf()->image(), and many more. Each pool provides dynamic deprecation — if we remove a method you depend on, your site won’t crash; you’ll get a deprecation notice and a temporary fallback.

All meta tags now generate through a single registry, filterable via the_seo_framework_meta_render_data. This replaced dozens of individual output filters with one unified system.

TSF v5.1.3 then purged all deprecated code from before v5.0 — roughly 388 methods, 7 classes, 13 properties, and 35 filters. If you had custom code from before 2023, this is the update that made you resolve those deprecation notices.

Extension Manager highlights

Transport extension: Extension Manager v2.6 introduced the Transport extension. Migrate your SEO data from Yoast SEO, Rank Math, or SEOPress to TSF. This was the most requested feature we’d been sitting on, and it finally makes switching painless.

Google Analytics 4: v2.6.2 updated the Cord extension for Google Analytics 4 before Universal Analytics shut down. If you updated Cord on time, the transition was seamless.

Honeypot improvements: v2.7 upgraded the Honeypot extension to catch spammers that virtually accelerate time to bypass time-based detection.

Performance: The Extension Manager itself became almost twice as fast in v2.7 after a year of optimization work.

Troy update system: v2.7.2 added support for Troy, our new decentralized update infrastructure. Troy Client is a lightweight plugin that delivers updates independently of WordPress.org — and independently of the plugins it updates. If Extension Manager ever breaks or is inactive, Troy Client can still fetch and install a fix. New installs use Troy automatically; existing users will be migrated later.

Focus: The API grew, Block Editor compatibility bugs were squashed, and inflection lookup now covers 8 languages.

Environment requirements

Since v4.1.2, minimum requirements have been raised to keep TSF fast and maintainable:

  • PHP: From 5.6 (v4.1) to 7.2 (v4.2) to 7.4 (v5.0). Each jump let us adopt modern syntax, improve performance, and focus on new features instead of workarounds.
  • WordPress: From 5.1 (v4.1) to 5.5 (v4.2) to 5.9 (v5.0) to 6.0 (v5.1). Newer WordPress versions bring security patches, Core Sitemaps, and admin UI improvements that TSF leverages directly.

These bumps affect a small minority of sites — over 80% already met the requirements at each release. But they’re the reason we can keep shipping features instead of writing polyfills.

Filed Under: Feature Highlights

About Sybre Waaijer

Developer of The SEO Framework plugins.
Twitter  GitHub  WordPress

Looking for something?

Do more with extensions

Local

View extension
Get more customers to your restaurant and shop.

Articles

View extension
Google News and structured data.

Get Extension Manager

Commercial

The SEO Framework
Trademark of CyberWire B.V.
Leidse Schouw 2
2408 AE Alphen a/d Rijn
The Netherlands
KvK: 83230076
BTW/VAT: NL862781322B01

Twitter  GitHub

Professional

Pricing
About
Support
Press

Rational

Knowledge Base
Blog
Privacy Policy
Terms and Conditions
Refund Policy

Practical

Documentation
TSF on WordPress
TSF on GitHub
TSFEM on here
TSFEM on GitHub
Deploy Troy
Feature Highlights

Anything in 2026 › The SEO Framework