How to diagnose, repair, and monitor your Google Search Console health — step by step.
If every SEO plugin update quietly reintroduces Search Console warnings like Duplicate page without canonical or Page with redirect, you are fighting a storage problem, not a settings problem. Plugins store canonical state in two places, and updates can leave one of them stale.
WordPress SEO plugins keep canonical data in plugin-specific tables (Yoast's indexables) and classic postmeta (_yoast_wpseo_canonical). Repair one and not the other and the next render or update flips the page back. A durable fix writes the same canonical value to both stores, replaces NULLs with self-referencing values, and re-checks after every plugin update.
Four diagnostics and repairs cover exactly these classes: NULL canonical detection and repair, stale postmeta alignment (both stores written to match), canonical redirect-loop detection (canonical vs resolved permalink with an HTTP probe), and canonical shape-drift repair that resolves which shape your site actually serves before writing. Every repair captures scoped rollback SQL, so a repair can be reverted precisely. A drift-detection run re-diffs the stores weekly so the next plugin update does not surprise you.
It depends on your SEO plugin and version, which is exactly why one-store fixes break. Sync both and the question stops mattering.
Plugin updates routinely rewrite indexable tables or change the precedence between stores. Your content did not change; the read path did.
Repairs that write both stores with current resolved URLs do, because that is the state the plugin expects. Fixes that edit plugin files do not, because updates overwrite the files. Brambyl writes data, not files.