Troubleshooting
Common problems, symptom by symptom, with the fix for each. For general questions about how the plugin works rather than something being broken, see Frequently Asked Questions. If your issue isn’t here, the most useful first step is almost always Settings → Sending → Send mode (is it stuck on Log-only?) and Tracking & Reporting (what does the email log say happened?).
Sending
My emails aren’t going out
Work through these in order – it’s almost always one of them:
- Send mode. Go to Settings → Sending. If Send mode is Log-only, nothing is actually sent – messages are only recorded. If it’s Redirect, everything is going to your test address instead of the real recipients. Set it to Live. (A coloured banner across the SSE admin warns you whenever you’re not in Live mode.)
- Is WP-Cron running? Email is sent by a background queue that runs on WordPress cron every minute. On low-traffic sites cron can stall. Check the queue isn’t stuck (Dashboard shows pending count), and if your host disables WP-Cron, set up a real system cron hitting
wp-cron.php. - Is a provider configured / can the server send mail at all? With None (wp_mail) selected, delivery depends entirely on your server or SMTP plugin being able to send. Test with a connected provider like Mailgun, or an SMTP plugin, if plain
wp_mail()isn’t delivering. See Choosing & Configuring an Email Provider. - Check the email log. Tracking & Reporting shows each message’s status –
queued,sent,failed(with the error), orsuppressed. That tells you exactly where it stopped.
On a low-traffic site, don’t rely on WordPress’s built-in cron. It only fires when someone visits a page, so a quiet hour can stall the send queue. Disable WP-Cron and add a real server cron hitting wp-cron.php once a minute, so sends go out on a predictable schedule regardless of traffic.
Emails send but land in spam
Deliverability is about authentication and reputation:
- Send from an address on a domain you control, with SPF, DKIM, and DMARC set up. A connected provider (Mailgun) walks you through the DNS – see MailGun Setup.
- Don’t send from a free-mailbox address (
@gmail.cometc.) as the From – mailbox providers reject or spam-fold it. - Keep your list clean: double opt-in (Double Opt-in) and automatic bounce/complaint suppression (Bounces, Complaints & Deliverability) protect your reputation.
A specific person isn’t receiving emails
They’re probably suppressed. Go to Suppressions and search their address. They may have unsubscribed, hard-bounced, or filed a spam complaint – each adds a suppression at a particular scope. See Email Categories, Unsubscribes & Suppressions. If it was a mistake (e.g. a temporary bounce), you can remove the suppression – but do so carefully.
For any “did this person actually get my email?” question, the per-subscriber Email history tab is the definitive answer. It shows sent, delivered, bounced, or suppressed with timestamps, so you never have to guess.
I got duplicate sends
The pipeline is built to prevent this (each send is logged and de-duplicated). If you genuinely see duplicates, check you don’t have the address on two different lists that both received the same campaign, and that you’re not running a manual send and the cron at the same time for support emails (the system de-duplicates those by version, but a misconfigured reference could defeat it – see the developer guide).
Forms & signups
The signup form isn’t submitting / shows an error
- “Security check failed” usually means a cached page served a stale nonce. Clear your page cache; exclude the page from caching if it persists.
- “Too many requests” is the rate limiter – wait a minute. It allows 20 signups per IP per 10 minutes.
- Check the form’s Status is Active (an inactive form rejects submissions).
Signups feel slow
Confirm Ultra Ajax is active under Settings → Advanced. If it says Not Installed, your wp-content/mu-plugins/ folder may not be writable – see Native-Speed AJAX Signups.
I’m getting spam signups
The form has a honeypot and per-IP rate limiting built in (Spam Protection). Turning on double opt-in for the list stops fake addresses from ever becoming confirmed subscribers – the single most effective measure.
My digest didn’t go out
- The digest runs on an hourly cron and only fires when the current GMT day and hour match a slot you configured on the Newsletter page. Check a slot exists and matches.
- Posts only appear in a digest if their category is in your enabled categories list, and only posts published since the last digest run are included.
- Subscribers must have marketing opt-in and be on the digest frequency (not instant) to receive it.
An instant alert didn’t send when I published
Instant alerts go only to subscribers on the instant frequency whose category preferences include the post’s category, and the post must be in an enabled category. A post older than a day when first published (e.g. backdated) is skipped.
WooCommerce / My Account
The “Email Preferences” tab 404s
After enabling the tab (or changing its slug) the URL rules need refreshing. The plugin does this automatically, but if the tab still 404s, go to Settings → Permalinks and click Save Changes (no edits needed) to force a flush. See WooCommerce Integration.
A logged-in customer who never subscribed sees the tab
That’s intentional – the tab shows every list they can join, so it doubles as an opt-in. Saving creates their subscriber record.
Unsubscribes
The unsubscribe link 404s
The /sse/u/ unsubscribe route is registered on activation. If links 404, flush permalinks (Settings → Permalinks → Save). The link still works as a one-click unsubscribe from the email client’s own “unsubscribe” button regardless.
Someone unsubscribed but still got an email
Check which opt-out they used. Product-update (support) emails and marketing emails have separate unsubscribes by design – opting out of marketing doesn’t stop a product-update email, and vice-versa. Only a global opt-out stops everything. See Unsubscribes & the Preference Centre.

Comments