-
v3.0.1 Stable
released this
2026-07-18 16:19:22 +00:00 | 2 commits to main since this release3.0.1 [2026-07-18]
Fixed
- Self-healing v3 migration. If
noindex_seo_config_versionclaims migration completed (version >= 3) but the consolidatednoindex_seo_settingsoption is somehow missing,noindex_seo_check_migration()now re-runs the migration automatically. This recovers silently from partial failures: object-cache staleness after the write, request interrupted mid-migration, a third-party plugin clearing options, or DB write errors that did not raise a PHP error. Without this guard, the front-end would fall back to all-zero defaults (site fully indexable) until someone re-saved the settings page.
Compatibility
- WordPress: 5.7 - 7.1
- PHP: 7.2 - 8.5
Tests
- Added test for the self-healing migration path.
3.0.0 [2026-07-18]
Major release — storage consolidation. Settings are now stored in a single autoloaded option (
noindex_seo_settings) instead of ~110 individual options. Reduceswp_optionsautoload weight on every page load. Legacy options are preserved (marked non-autoloaded) for one major version to allow safe rollback to 2.x; they will be removed in 4.0.Added
- "Apply recommended defaults" button on the settings page. One click enables all 12 contexts flagged as "Recommended" in the UI (privacy policy, date archives, pagination, search results, attachment pages, preview/customize-preview, and 404). Previously required ~60 individual checkbox toggles.
- Filterable conflict-detection list. The list of plugins that may conflict with noindex SEO is now passed through
apply_filters('noindex_seo_conflicting_plugins', ...). Third-party code can extend or replace the list without editing the plugin.
Changed
- Storage consolidated: 110 directive options (
{directive}_seo_{context}) + 5 config options (noindex_seo_config_*) merged into onenoindex_seo_settingsarray. Reads go through new accessors (noindex_seo_get_settings(),noindex_seo_get_setting(),noindex_seo_get_config()). The hourly transient cache is preserved on top. - Transient invalidation is now automatic: any update to
noindex_seo_settingsclears thenoindex_seo_optionstransient via theupdate_option_noindex_seo_settingshook. Previously only the admin form save cleared it, leaving WP-CLI / REST / programmatic edits stale for up to one hour. - Migration: existing 2.x installs are migrated automatically on
plugins_loaded(idempotent, version-gated bynoindex_seo_config_version). Legacy options are kept and marked non-autoloaded so a rollback to 2.x restores the pre-3.0 state. - Uninstall retrocompatibility:
uninstall.phpdeletes both the new consolidated option and all legacy individual options (via wildcard SQL). Sites that upgrade from 2.x and later uninstall will be cleaned up completely regardless of whether migration ran.
Compatibility
- WordPress: 5.7 - 7.1
- PHP: 7.2 - 8.5
Tests
- Added PHPUnit test suite (previously the project shipped only a plugin-header smoke test). Coverage: contexts helper, settings accessors, v2→v3 migration, form save, bulk actions, meta box save, conflict-detection filter.
Downloads
- Self-healing v3 migration. If