WordPress7 min read

Test WordPress email placement without installing a plugin

Your WordPress site already sends email — order receipts, password resets, contact form notifications. The question is where that mail actually lands. Here is the 2-minute way to check, with no new plugin on your site.

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.

WordPress integration in beta

A native wp-admin plugin is in private beta — run placement tests from your dashboard and alert on drops.

→ Join the beta waitlist

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.

  1. 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.
  2. Copy the seed list to your clipboard. Keep the test page open — results stream in there.
  3. 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.
  4. 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).
  5. 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.com

All 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?

No. You can test whatever WordPress is sending right now, including the default 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?

All of them. The tester gives you 20+ seeds covering the major providers. Sending to all of them is how you get a full picture — sending to just Gmail is how you miss Outlook problems.

Will the seeds show up in my users table?

For a password reset or lost-password flow, WordPress will try to look the address up and fail silently without creating a user. For a contact form, they appear as a form submission. No real user is created.

Can I automate this from WordPress?

Yes, with the /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.
Related reading

Check your deliverability across 20+ providers

Gmail, Outlook, Yahoo, Mail.ru, Yandex, GMX, ProtonMail and more. Real inbox screenshots, SPF/DKIM/DMARC, spam engine verdicts. Free, no signup.

Run Free Test →

Unlimited tests · 20+ seed mailboxes · Live results · No account required