Skip to main content

Troubleshoot WooCommerce (WordPress) Connection Issues

Resolve WooCommerce plugin connection errors, authorization loops, API access issues, and firewall blocking in Omnisend

Ira avatar
Written by Ira
Updated over a week ago

If you're unable to connect your WooCommerce store to Omnisend, see an "Omnisend Is Unable to Connect" error, or get stuck in an authorization loop, this guide will help you diagnose and fix the issue.

Most connection problems stem from plugin conflicts, firewall/security settings, API access restrictions, or incorrect store setup. Follow the diagnostic steps below to identify and resolve the problem.

Before troubleshooting: Ensure you've followed the main WooCommerce setup guide and completed the installation steps.


Before You Begin

Verify these prerequisites are met. If any are missing, the connection will fail regardless of troubleshooting steps.

Required for Connection:

  • WooCommerce 3.6+ and WordPress 5.0+. Earlier versions don't support REST API v3 (required by Omnisend). Go to Plugins → Installed Plugins to check versions.

  • Active HTTPS (SSL certificate). Your store URL must start with https://. Omnisend can't access stores without valid SSL certificates.

  • WordPress installed at domain root. WordPress must be at yourdomain.com or subdomain.yourdomain.com, not yourdomain.com/store. Plugin fails if WordPress is on a page-level path.

  • REST API access enabled. Open yourdomain.com/wp-json/wc/v3/products in your browser. If you see product data or an error message, the API works. If you see a 404 error, REST API is blocked – see REST API Blocked section.

  • ⚠️ Empty store slot (if you already have another platform connected). If you have Shopify, BigCommerce, or another store connected to Omnisend, you must create a new store slot before connecting WooCommerce. Each platform requires its own store to prevent data mixing.


Connection Diagnostic Checklist

Work through these steps in order. After each step, try reconnecting. If the connection succeeds, you've found the issue.

Step 1. Verify Prerequisites

Confirm all requirements from Before You Begin are met:

  • WooCommerce 3.6+ installed

  • HTTPS active (URL starts with https://)

  • WordPress at domain root (not /store subdirectory)

  • REST API accessible (test at yourdomain.com/wp-json/wc/v3/products)

  • Empty store slot created (if you have other platforms connected)

Step 2. Disable Known Problematic Plugins

These plugins frequently block Omnisend connections. Temporarily disable them one at a time, then retry connecting after each:

To disable a plugin, go to WordPress Admin → Plugins → Installed Plugins → click Deactivate.

  • WP Crontrol – Interferes with Omnisend cron jobs

  • LiteSpeed Cache – Strips Authorization headers

  • Really Simple Security – Blocks REST API requests

  • Wordfence / Cloudflare – Firewall blocks Omnisend IPs

  • Perfmatters – May disable REST API or scripts

💡 After connection succeeds: Re-enable plugins one by one to identify the culprit.

Step 3. Whitelist Omnisend IP Addresses

If you use Wordfence, Cloudflare, Really Simple Security, or any firewall plugin, they may be blocking Omnisend requests.

→ Jump to Firewall & Security Plugin Fixes section to whitelist Omnisend IPs and user-agents.

How to whitelist:

Step 4. Clear Cache & Test in Incognito

  1. Clear your browser cache (Ctrl+Shift+Delete on Chrome/Edge, Cmd+Shift+Delete on Safari).

  2. Open an incognito/private window.

  3. Log in to WordPress and try connecting again.

If the issue persists in incognito mode, a browser extension or cached session is likely causing the problem. Disable extensions temporarily or use a different browser.

Step 5. Verify Connection Status

In WordPress: Go to the Omnisend plugin page. Status should show "Connected."

In Omnisend: Go to Store Settings → Contact Information → verify your store URL matches your live domain (not localhost or staging).

Test endpoint:
Open yourdomain.com/wp-json/omnisend-api/v1/connected in your browser. It should return true.


Specific Error Scenarios

If the diagnostic checklist didn't resolve your issue, find the error scenario below that matches your symptoms.

Authorization Redirect Loop

What you see:

  • You click "Approve" in the WooCommerce consent window.

  • You're redirected back to "Connect your account" without completing setup

  • Connection never finishes.

Why this happens: A caching plugin, security plugin, or WP Crontrol is stripping the Authorization header during the approval process.

How to fix:

  1. Disable WP Crontrol: Go to Plugins → Installed PluginsDeactivate WP Crontrol.

  2. Disable caching plugins temporarily: Deactivate LiteSpeed Cache, WP Rocket, or any caching plugin.

  3. Clear browser cache and open an incognito window.

  4. Try connecting again.

  5. If the loop persists: Contact your hosting provider (SiteGround, Bluehost, GoDaddy) and ask them to confirm the Authorization header isn't being stripped at the server level.

💡 After successful connection: Re-enable plugins one by one to identify the blocker.


Plugin Shows Connected, But Omnisend Says "Unable to Connect"

What you see:

  • Omnisend plugin in WordPress shows "active" or "connected."

  • Omnisend dashboard displays a red banner: "Omnisend Is Unable to Connect to Your WooCommerce."

  • Data isn't syncing between WooCommerce and Omnisend.

Why this happens: Omnisend can't access your WooCommerce REST API, even though the plugin is installed.

How to fix:

  1. Check API Key: Go to WooCommerce → Settings → Advanced → REST API and verify the Omnisend API key exists and is not expired or revoked.

  2. Test API Access: Open yourdomain.com/wp-json/omnisend-api/v1/connected in your browser.

    • If it returns true, the connection is working – wait 10 minutes and refresh your Omnisend dashboard.

    • If it returns false or 404, the API is blocked – see REST API Blocked section.

  3. Whitelist Omnisend IPs: Add Omnisend IP addresses to Wordfence, Cloudflare, or your firewall – see Firewall & Security Plugin Fixes section.

  4. Verify Store URL: Go to Omnisend → Store Settings → Contact Information and confirm your store URL matches your actual domain (not localhost or a staging URL like staging.yourdomain.com).


"Add Permissions" Button Missing

What you see: After installing the plugin, you don't see the "Add permissions" button on the Omnisend plugin page.

Why this happens: An old Omnisend API key is still active, preventing the new permissions prompt from appearing.

How to fix:

  1. Go to WooCommerce → Settings → Advanced → REST API.

  2. Find the Omnisend key in the list.

  3. Click Revoke to delete it.

  4. Return to the Omnisend plugin page.

  5. The "Add permissions" button should now appear. Click it and approve.


Blank Page or "Not Found" Error During Connection

What you see: When you click "Connect" or "Approve," you see:

  • A blank white page.

  • "The requested URL was not found on this server" (404 error).

  • Browser error instead of the approval pop-up.

Why this happens: Your server is stripping the Authorization header, or the WooCommerce REST API is disabled.

How to fix:

  1. Add Authorization Header to .htaccess:
    Open your .htaccess file (in your WordPress root folder via FTP or cPanel File Manager) and add this line:

    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1

  2. Save the file and retry connecting.

  3. Check REST API Access:
    Go to yourdomain.com/wp-json/wc/v3/products in your browser.

  4. Contact Your Host:
    Some hosts (Bluehost, GoDaddy, WP Engine) block REST API endpoints by default. Ask them to enable /wp-json/ access.


REST API Blocked

What you see: Connection fails, and yourdomain.com/wp-json/wc/v3/products returns a 404 error or "REST API is disabled."

Why this happens: REST API is disabled by your host, security plugin, or theme settings.

How to fix:

  1. Check Security Plugins:

    • In Wordfence: Go to Wordfence → Firewall → Firewall Options and ensure REST API is not blocked.

    • In Really Simple Security: Go to Settings → REST API and allow REST API access.

  2. Check Theme Settings: Some themes (e.g., Divi, Avada) include options to disable REST API. Check theme settings and re-enable it.

  3. Add .htaccess Rule: Add the Authorization header fix from Blank Page or "Not Found" Error During Connection section.

  4. Contact Hosting Provider: Ask them to confirm /wp-json/ endpoints are not blocked at the server level (common with Bluehost, GoDaddy, and WP Engine).


"Store Already Connected" Error

What you see: A banner appears:

  • "This Omnisend store is already connected. Select another store from your account and try again."

  • "No available store slot"

Why this happens: You already have a store (Shopify, WooCommerce, BigCommerce, etc.) connected to Omnisend, and you haven't created a new store slot for this WooCommerce site or your WooCommerce domain was previously connected to a different Omnisend account (including test accounts).

How to fix:

  • If you have another platform connected:

  1. Create a new store slot in Omnisend:
    Go to Account Settings → Stores → Add New Store.

  2. Switch to the new empty store:
    Click the store switcher (top right of the Omnisend dashboard → Switch store) and select the new store.

  3. Return to WordPress and click "Connect your account" again.

  4. Approve the connection in the pop-up.

💡 Why? Each platform (Shopify, WooCommerce, BigCommerce) must connect to a separate store in your Omnisend account to prevent data mixing.

  • If your domain was previously connected to a different Omnisend account:

Contact our support at [email protected] or in-app chat to disconnect the old link.


Connection Worked Before (Stopped Suddenly)

What you see:

  • The plugin was connected for weeks or months.

  • Suddenly shows "unable to connect" or sync stops.

  • No changes were made (that you remember).

Why this happens:

  • Your store URL changed slightly (added/removed www.).

  • Recent plugin or WooCommerce update revoked API permissions.

  • Firewall settings changed during a server update.

  • SSL certificate expired.

How to fix:

  1. Check if your store URL changed: Go to Omnisend → Store Settings → Contact Information. If the URL doesn't match your actual domain (check for www. differences), update it.

  2. Verify API key exists: Go to WooCommerce → Settings → Advanced → REST API. If the Omnisend key is missing, go to the Omnisend plugin page → click "Add permissions"Approve.

  3. Check your SSL certificate: Test at SSL Checker. If expired or invalid, renew via your hosting provider (many offer free Let's Encrypt certificates).

  4. If none of these work: Go to the Omnisend plugin page → click "Add permissions"Approve → wait 10 minutes → refresh.


Plugin Update Banner Won't Disappear

What you see: You updated the Omnisend plugin, but a banner still says "Update required" or "Connection issue."

Why this happens: Temporary delay in syncing plugin permissions with Omnisend.

How to fix:

  1. Go to the Omnisend plugin page in WordPress.

  2. Click Add permissions (if the button appears).

  3. Click Approve in the WooCommerce consent window.

  4. Wait 5–10 minutes for changes to propagate.

  5. Clear your browser cache and refresh the page.


Firewall & Security Plugin Fixes

If you use Wordfence, Cloudflare, Really Simple Security, or any firewall plugin, you must whitelist Omnisend IP addresses and user-agents.

Omnisend IP Addresses to Whitelist:

Add these IPs to your firewall allowlist:

  • 34.170.162.11

  • 34.56.62.59

  • 34.56.108.215

  • 34.133.59.36

  • 34.58.66.146

  • 35.184.130.5

  • 35.232.14.89

Wordfence

To whitelist Omnisend IPs in Wordfence:

  1. Go to WordPress Admin → Wordfence → Firewall.

  2. Click Manage Firewall → scroll to "Allowlisted IP addresses."

  3. Paste each Omnisend IP address on a new line.

  4. Click Save Changes.

  5. Return to WordPress and retry connecting.

Cloudflare

To whitelist Omnisend in Cloudflare:

  1. Log in to your Cloudflare dashboard

  2. Go to Security → WAF (Web Application Firewall)

  3. Click Create Rule

  4. Set Rule Name: Allow Omnisend (or similar)

  5. Set Field: User Agent | Operator: contains | Value: Omnisend/1.0 (case-sensitive)

  6. Set Action: Skip

  7. Select all components to skip

  8. Click Deploy

To whitelist Omnisend IPs:

  1. Go to Security → WAF → Tools

  2. Scroll to IP Access Rules

  3. Add each Omnisend IP (see list above) and set Action to Allow

  4. Click Add

After saving, reinstall the Omnisend plugin in WordPress and reconnect.

Really Simple Security

To allow Omnisend requests:

  1. Go to WordPress Admin → Really Simple Security → Settings

  2. Click REST API

  3. Ensure REST API is not disabled

  4. Go to Firewall → IP Allowlist

  5. Add each Omnisend IP address (see list above)

  6. Save and retry connecting


Plugin Conflicts & Permanent Fixes

If disabling a plugin fixed your connection, use these permanent fixes so you can keep the plugin active.

WP Crontrol

Issue: Manages WordPress cron jobs and blocks Omnisend background processes.

Fix: Keep it disabled during connection. After connecting, re-enable only if you need it for other tasks. If issues persist, leave it disabled.

LiteSpeed Cache

Issue: Strips Authorization headers, causing connection failures.

Fix:

  1. Go to WordPress Admin → LiteSpeed Cache → Exclude

  2. Under URI Exclude, add: /wp-json/omnisend*

  3. Save settings and retry connecting

Cloudflare (Turnstile / Forms Module)

Issue: Blocks Omnisend bot requests.

Fix: Whitelist the user-agent Omnisend/1.0 (case-sensitive) in Cloudflare WAF rules – see Cloudflare section.

Perfmatters

Issue: May disable REST API or JavaScript required for connection.

Fix:

  1. Go to Perfmatters → Settings → Disable

  2. Ensure REST API is not disabled

  3. Retry connecting


Advanced Troubleshooting

Cloning Your WooCommerce Store (Staging/Test Environments)

When you clone your WooCommerce store to create a test or staging environment, it allows you to safely test new features, updates, and other changes without affecting your live store.

How the Omnisend Plugin Works:  The Omnisend plugin ensures a clear distinction between your production and staging environments by automatically disconnecting the staging environment from sending data to your live store. It also requires the staging environment to be connected to a test brand.

Steps to Set Up a Staging Environment

Step 1: Actions in Your Production Store. Clone your store using your hosting provider's tools, a WordPress plugin (WP Staging, Duplicator), or manual FTP/database copy. This creates the desired environment for testing or other purposes.

Step 2: Actions in Your Staging Store. Connect the staging plugin to a separate test brand in Omnisend (not your production brand). This ensures that the staging environment is linked to a different brand from your live store. The plugin displays the brand name, making it easier to distinguish which Omnisend brand it's connected to.

Important Notes

⚠️ Automatic Disconnect: When a production copy is created, the staging plugin will automatically disconnect from the main store, preventing it from sending data back to the production environment.

The Omnisend plugin detects when a staging environment has been created and disconnects from your live store so that no non-production data is sent there. For the plugin to detect the environment change, your cloned staging environment must have the WP_ENVIRONMENT_TYPE WordPress variable set to "staging" or "development".

This should either be set automatically by your cloning tool of choice or, if you're cloning manually, could be set in your wp-config.php file, such as:

define('WP_ENVIRONMENT_TYPE', 'staging');

How to Verify Your Staging Setup

If you're using a third-party tool to clone your shop and you want to ensure that the setup it created is correct, you can do so by:

  1. Go to your cloned shop's WordPress admin dashboard

  2. Navigate to Tools → Site Health → Info → WordPress Constants

  3. Verify that WP_ENVIRONMENT_TYPE is set to "staging" or "development"

Values such as "production" or "Undefined" should only appear in your production store. If they appear in your cloned shop, that indicates an incorrect setup, as the Omnisend plugin would not be able to detect that it needs to disconnect.

For detailed steps on how to clone your WooCommerce store and create a testing or staging environment, please follow these guides:

Brand Name Display: The Omnisend plugin displays the brand name to help you easily identify which brand it is connected to.


Permalink Structure Issues

Issue: Some 404 errors resolve when the permalink structure is reset.

Fix:

  1. Go to WordPress Admin → Settings → Permalinks.

  2. Click Save Changes (even without making changes).

  3. Retry connecting.


SSL Certificate Issues

Issue: An Invalid or expired SSL certificate prevents API access.

Fix:

  1. Check your SSL certificate at SSL Checker.

  2. If expired or invalid, renew via your hosting provider (many offer free Let's Encrypt certificates).

  3. After renewal, retry connecting.


Server-Level Authorization Header Blocking

Issue: Some hosts (SiteGround, Bluehost, GoDaddy) strip the Authorization header by default.

Fix:

  1. Add this line to your .htaccess file (in WordPress root):

    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
  2. If the issue persists, contact your hosting provider and ask them to enable the Authorization header passthrough for REST API requests.


How to Fix API Access Issues

Due to API access issues, your store data won't be synchronized to Omnisend. This prevents us from sending messages to your audience. If your store's data isn't syncing, API access may be blocked by:

  • Security plugins (3rd party).

  • Custom PHP code preventing API access.

  • WordPress or WooCommerce security settings.

Please contact your developers to identify and resolve any potential causes.

To check if WooCommerce API is accessible:

  1. Go to WooCommerce → Settings → Advanced → REST API.

  2. Click Add key.

  3. Enter any name and click Generate API key.

  4. Take the consumer key and secret, then enter this URL in your browser:

    {shopDomain}/wp-json/wc/v3/products?consumer_key={consumer_key}&consumer_secret={consumer_secret}
  5. If the product list appears, the API works.

  6. Delete the test API key after checking.

To check if the Omnisend API is accessible:

  1. Update to the latest Omnisend plugin version.

  2. Open {shopDomain}/wp-json/omnisend-api/v1/connected in your browser—it should return true.


Verify Your Fix Worked

After applying any fix, confirm the connection is active:

  • In WordPress: Go to the Omnisend plugin page. Status should show "Connected."

  • In Omnisend: Go to Audience → Contacts and confirm store contacts appear.

  • Test Endpoint: Open yourdomain.com/wp-json/omnisend-api/v1/connected in your browser. It should return true


FAQ

The plugin shows "connected" in WordPress, but Omnisend says "unable to connect." Why?
It means that Omnisend can't access your WooCommerce API, even though the plugin is active. Check that your WooCommerce REST API is accessible, whitelist Omnisend IP addresses in your firewall, and verify your store URL in Omnisend matches your actual domain (not localhost).

What does "The requested URL was not found on this server" mean during connection?
This error means your server is blocking or misconfiguring WooCommerce REST API endpoints. Add SetEnvIf Authorization "(.*)\" HTTP_AUTHORIZATION=$1 to your .htaccess file, or contact your hosting provider to enable REST API access.

Why does clicking "Connect" show a blank white page?
A blank page during connection indicates your server is stripping the Authorization header or a plugin is blocking API requests. Add the Authorization header fix to .htaccess (see above), disable caching/security plugins temporarily, and retry.

I updated the plugin, but the banner still says "update required." What now?
After updating, go to the Omnisend plugin page in WordPress and click "Add permissions." Wait 5–10 minutes, clear your browser cache, and refresh. If the banner persists, see Plugin Shows Connected, But Omnisend Says "Unable to Connect" section.

WP Crontrol is causing issues. What does this plugin do?
WP Crontrol manages WordPress cron jobs (scheduled tasks). It can interfere with Omnisend's background processes. Disable it temporarily, complete the connection, then re-enable. If issues persist, leave it disabled or contact support.

Which IP addresses do I need to whitelist for Omnisend?
Whitelist these IPs in Wordfence, Cloudflare, Really Simple Security, or any firewall plugin: 34.170.162.11, 34.56.62.59, 34.56.108.215, 34.133.59.36, 34.58.66.146, 35.184.130.5, 35.232.14.89.

I use Cloudflare. How do I whitelist Omnisend?
Go to Cloudflare → Security → WAF → Create a rule. Whitelist the user-agent Omnisend/1.0 (case-sensitive) and add Omnisend IP addresses (see FAQ above) to your allowlist. After saving, reinstall the Omnisend plugin.

My store URL changed (from localhost or staging). How do I reconnect?
Go to Omnisend → Store Settings → Contact information and update your store URL to the live domain. Wait 10 minutes, then log out and log back in. If the issue persists, disconnect and reconnect the plugin from WordPress.


If you have any questions or need assistance, contact our Support Team at [email protected] or via in-app chat.

Did this answer your question?