The usual WordPress deliverability advice starts with "install plugin X". That is fine when the plugin earns its keep — an SMTP plugin does. But stacking another plugin just to read a placement number is overkill, and it adds load time and attack surface to a site that probably already has 20+ plugins.
This walkthrough shows how to verify Inbox vs Spam for your WordPress mail using a browser tab and a copy-paste of seed addresses. No plugin install, no WP-admin changes.
A native wp-admin plugin is in private beta — run placement tests from your dashboard and alert on drops.
Why avoid yet another plugin
Every plugin you add to WordPress brings three costs: page load weight, a possible update-time breakage, and an extra security surface. Deliverability testing is a periodic activity — weekly, maybe daily during a crisis — not something that needs a live listener in your site.
- Performance: plugins add PHP execution, database queries and HTTP requests. A pure-external tester costs you zero.
- Update risk: the fewer plugins, the fewer surprise incompatibilities on the next WordPress or PHP release.
- Security: every plugin that stores API keys or writes files is another potential incident. Keep the blast radius small.
- Vendor lock-in: if the testing service disappears, you do not have a stale plugin sitting in production.
The 2-minute walkthrough
You need: access to WordPress admin, and a browser tab on our free tester. That is it.
- Open the free tester and start a new placement test. It gives you a list of seed mailboxes — unique addresses across Gmail, Outlook, Yahoo, Mail.ru, Yandex, GMX, ProtonMail and more.
- Copy the seed list to your clipboard. Keep the test page open — results stream in there.
- Go to WordPress admin. Pick the email flow you want to test: order confirmation, password reset, contact form acknowledgement, WooCommerce new account, and so on.
- Trigger the flow for every seed address. For a password reset, that is visiting
/wp-login.php?action=lostpasswordand submitting each address. For a Contact Form 7 or Gravity Forms notification, submit the form with the seed as the sender field (or as the internal notification recipient if that is what you want to test). - Wait 30–60 seconds. Placement results appear on the tester page. You get per-provider Inbox/Spam/Promotions, plus SPF/DKIM/DMARC verdict and the full rendered message.
Which WordPress flow should you test
Pick the highest-stakes flow first. In order of how much it matters when it breaks:
- Password reset: a user locked out of their account is a support ticket and a lost customer. Test this first.
- Order confirmation (WooCommerce): customer anxiety and chargebacks if the email does not arrive.
- New account activation: abandoned signups on day one.
- Contact form notification: missed leads if your own inbox filters them into Spam.
- Abandoned cart / recovery: high commercial impact per email.
A placement test on just the first three covers 90% of the revenue risk from broken WordPress email.
Reading the results like an engineer
Per-provider placement is the headline number, but three side panels tell you why:
- Authentication: SPF, DKIM and DMARC alignment for the sending domain. A DKIM fail on Gmail explains almost every Promotions-tab landing.
- Content / spam score: the free SpamAssassin-style verdict on the rendered HTML and subject line. Scores above 5.0 correlate strongly with Spam folder placement.
- Headers: the raw received chain. If you are routing through an SMTP plugin (Mailgun, SendGrid, SES), this is where you confirm the relay is doing its job.
Authentication-Results: mx.google.com;
dkim=pass header.i=@yoursite.com header.s=mg;
spf=pass (google.com: domain of bounce+xyz@yoursite.com
designates 69.72.43.7 as permitted sender);
dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=yoursite.comAll three passes, dmarc=pass, Gmail Inbox — this is the shape of a healthy WordPress setup. Anything short of this is a specific, fixable problem.
Common failure patterns and the one-line fix
All providers Spam, SPF pass, DKIM fail
Your SMTP plugin is not signing with DKIM. Go to the plugin settings, turn on DKIM signing, publish the selector record in DNS. Retest.
Gmail Promotions, Outlook Inbox
Content, not auth. Promotional styling (big hero image, many links, marketing words in subject) is being classified correctly. If this is transactional mail, strip the marketing wrapper and use plain, single-column HTML.
Outlook Spam, Gmail Inbox
Usually a reputation issue on the sending IP or an IP listing on an Outlook-specific DNSBL (Spamhaus XBL, SpamCop). Check the outbound IP from the Received: header against the major blocklists.
Some providers no delivery at all
Hard block, not spam. Your domain or IP is on a Spamhaus listing. Resolve the listing first (delist + fix the root cause), then retest.
When the native plugin makes sense
External testing is enough for periodic checks. If you want scheduled tests, dashboard alerts and on-send validation, the beta WordPress plugin adds those without you having to wire up cron or the API yourself. Join the waitlist if you want early access — otherwise, the free web tester covers the 80% use case perfectly.
Frequently asked questions
Do I need an SMTP plugin just to test?
wp_mail() via the server's PHP sendmail. If the test shows all Spam, that is a reason to add an SMTP plugin — not a reason to add one before testing.How many seed addresses should I send to?
Will the seeds show up in my users table?
Can I automate this from WordPress?
/api/tests endpoint and a WP-CLI one-liner or a small mu-plugin. For the native workflow with dashboard alerts, the beta plugin wraps all of this with a UI.