Troubleshooting
/sitemap.xml returns 404
Flush rewrite rules. Open Settings > Permalinks and click Save Changes. The plugin's activation hook calls OSeo_Sitemap::flush_rewrite_rules_on_activate() but the cache can be clobbered by other plugins. After flushing, hit /sitemap.xml directly.
My robots.txt edits do not appear
WordPress only filters the virtual robots.txt. If a static robots.txt file sits in the web root, the filter never runs. SSH in and delete it (or rename it). Then reload /robots.txt to confirm the filtered output is served.
Redirects do not fire
OSeo_Redirects::maybe_redirect() runs on template_redirect. Make sure:
- The redirect is enabled (toggle on the row)
- Source and destination both start with
/or include a full URL - No higher-priority plugin (security, cache) is short-circuiting the request before
template_redirect
Check the redirect chain with OSeo_Redirects::check_loop( $source, $destination ) to confirm no self-loop.
404 monitor is not logging
Confirm oseo_404_monitor_enabled is 1 under Settings. If oseo_filter_bots is enabled, normal bot hits are dropped - that includes Googlebot's discovery requests. Disable the bot filter temporarily to confirm logging works, then re-enable.
Broken-link scan stuck
The scanner is cron-driven. Check Tools > Site Health for cron status. If WP cron is disabled, broken-link scans never run. Either enable WP cron or set up a system cron to hit wp-cron.php.
Database upgrade did not run
OSeo_DB::needs_upgrade() is checked on plugins_loaded. If you copied the plugin files manually rather than via the upload flow, deactivate and reactivate so the comparison runs again. The current schema version is in OSEO_DB_VERSION (1.1.0 at time of writing).

