Troubleshooting
REST API not working? Here is how to find and fix the problem.
SEOWorkerAI talks to your WordPress site through the WordPress REST API. If that connection is blocked or broken, the plugin cannot read your content, push changes, or keep your site in sync. This page explains what causes REST API problems and how to fix each one.
How to check whether your REST API is working
Inside your WordPress admin, go to SEOWorkerAI > Diagnostics. The page runs a set of automatic checks and tells you exactly which part of the connection is failing and what to do about it. Start there before working through the steps below.
Common causes and fixes
1. Permalinks are set to Plain
WordPress needs a permalink structure other than Plain in order to route REST API requests correctly. If you leave it on Plain, the /wp-json/ address simply will not work.
Fix: Go to Settings > Permalinks in your WordPress admin and choose any option other than Plain. Post name is recommended. Click Save Changes. No other configuration is needed.
2. A security plugin is blocking the REST API
Some security plugins include a setting labelled something like “Disable REST API”, “Block REST API for non-logged-in users”, or similar. When that setting is on, SEOWorkerAI cannot reach your site even though everything else looks fine.
Fix: Open each active security plugin and look for a REST API restriction setting. Turn it off, or add an exception for authenticated requests. Common plugins with this setting include Wordfence, iThemes Security, WP Cerber, and All In One WP Security. If you are not sure which plugin is responsible, the Diagnostics page in SEOWorkerAI will tell you.
3. Your server is not rewriting URLs correctly
WordPress relies on your web server to forward requests for /wp-json/ to WordPress itself. If that rewriting is not set up properly, the REST API address returns a 404 or an HTML error page instead of data.
Fix on Apache: Make sure mod_rewrite is enabled and that your .htaccess file in the WordPress root contains the standard WordPress rewrite rules. Go to Settings > Permalinks and click Save Changes. This regenerates the .htaccess file automatically.
Fix on nginx: Your server block needs a try_files directive that passes unknown URLs to WordPress. A standard WordPress nginx configuration includes this line: try_files $uri $uri/ /index.php?$args;. If it is missing, add it or ask your host to add it.
4. A firewall or CDN is blocking requests
Some hosting firewalls, Cloudflare WAF rules, or CDN configurations block requests to /wp-json/ because they look like automated traffic. The REST API response never reaches WordPress.
Fix: Log in to your hosting control panel or CDN dashboard and look for firewall rules that might block /wp-json/ or flag API-style requests. In Cloudflare, check your WAF rules and make sure no Page Rule is redirecting or caching /wp-json/*. If you use managed hosting, contact your host and ask them to allowlist REST API requests.
5. The site cannot make requests to itself (loopback blocked)
Some WordPress features, including certain health checks and background tasks, require your server to send an HTTP request back to your own site address. Some hosting environments, particularly certain VPS or containerised setups, block this by default.
Fix: If you have set WP_HTTP_BLOCK_EXTERNAL to true in your wp-config.php, add your own site hostname to WP_ACCESSIBLE_HOSTS on the same line, for example: define( 'WP_ACCESSIBLE_HOSTS', 'yoursite.com' );. If you have not set that constant yourself, contact your host and ask whether outbound HTTP requests from the server back to the same server are permitted.
6. A plugin or theme is printing output before the REST response
If a plugin or theme outputs text, even a single blank line or a PHP notice, before WordPress sends its REST API response, the response body becomes invalid and SEOWorkerAI cannot read it.
Fix: Enable WP_DEBUG and WP_DEBUG_LOG in your wp-config.php and check the debug log for PHP notices or warnings. Deactivate plugins one at a time and re-run the Diagnostics check after each deactivation until the problem disappears. The offending plugin is usually the last one you deactivated.
Still not working? Get help.
If you have worked through the steps above and the Diagnostics page still shows failures, use the form below to contact us. Include a copy of your Diagnostics report. There is a Copy Report button on the Diagnostics page, so we can understand the problem quickly.