All in One SEO on PHP 8.6: deprecation notices and the fix

On PHP 8.6 (due 19 November 2026), All in One SEO 5.0.4 logs a deprecation notice on every ordinary page load in our test. We found 4 places in its code that PHP 8.6 flags. Nothing stops working; the notices go to your PHP error log and show on pages where errors are displayed.

Tested on 28 October 2026 with the official PHP 8.6.0RC4 build and WordPress 7.1.1, plugin version 5.0.4 (2,000,000+ active installs) from WordPress.org, activated alone with default settings.

The messages you will see

Deprecated: Returning a value from a constructor is deprecated
Deprecated: Calling is_a() with a string when $allow_string is false

Where they come from

File:lineWhatWhen PHP 8.6 complainsIn our WordPress test
app/Common/Models/Model.php:144returns a value from a constructorCompile time: logged when PHP loads the fileon every front-end page load
app/Common/Models/Model.php:147returns a value from a constructorCompile time: logged when PHP loads the fileon every front-end page load
app/Common/Models/Model.php:150returns a value from a constructorCompile time: logged when PHP loads the fileon every front-end page load
app/Common/Traits/Helpers/WpContext.php:249calls is_a() with a stringSeen in our testin wp-admin

The fix

Site owners: you don't need to change anything to keep the site working. Keep display_errors off on the live site, and update All in One SEO when a release mentions PHP 8.6. If a notice shows on your pages, set define( 'WP_DEBUG_DISPLAY', false ); in wp-config.php.

Plugin developers, line by line:

What a PHP 8.6 deprecation notice does, and what it doesn't

All 39 affected plugins out of the 100 most popular, and the 61 with no findings: PHP 8.6 and WordPress plugins.

Sources

Did this fix it?

What's still not working?

Describe what happens and paste any error message. We read every report and fix the page.