All posts

How to Verify WooCommerce Customer Emails Before Moving Them to an ESP

··5 min read

To verify WooCommerce customer emails, export them from WooCommerce, then Customers, then Download, run the CSV through an email verifier, and import only the valid rows of customers who opted in to marketing into your email platform. WooCommerce's checkout accepts any address that looks like an email, so a store's customer list nearly always holds some typos that will bounce on the first campaign.

Facts below are from WooCommerce and WordPress documentation, read on 2 November 2026.

Why WooCommerce lists have bad addresses

WooCommerce runs on WordPress, and WordPress's address check is is_email(). Its own documentation says it is "Not RFC compliant" and "does not correctly test for invalid characters". It checks the shape of the address. Nothing in it asks the mail server whether the mailbox exists.

So jane@gmial.com and jane@company.con go straight through checkout. The order still completes, the customer gets nothing, and the address sits in your customer table until the day you import it into Mailchimp or Klaviyo and it bounces.

WooCommerce sells a Customer Email Verification extension that adds a one-time code and an MX check ("confirms the email's domain has a working mail server"). That helps new customers. It does nothing for the ones you already have.

Step 1: Export your customers

From the WooCommerce Customers report docs:

  1. In your WordPress admin, go to WooCommerce, then Customers.
  2. Use the advanced filters if you only want part of the list. Email, Number of orders and Total spend are among the filters, which makes "customers with two or more orders" an easy segment.
  3. Click Download to export the current view as a CSV.
  4. For large stores, WooCommerce builds the export in the background and emails you a download link.

You need an account that can view WooCommerce reports. Our WooCommerce export page keeps the same steps short.

For scheduled exports, WooCommerce's paid Customer / Order / Coupon Export extension exports customers as CSV and can send files by email, FTP or HTTP POST.

Step 2: Separate marketing consent from purchase

A customer list is not a marketing list. Before verifying, split it:

Group Goes into
Customers who ticked a marketing opt-in at checkout Your marketing list
Customers with no opt-in recorded Order and account email only, or a permission request where the law allows it
Customers who unsubscribed in your email tool before Your suppression file, never the import

If you use a checkout opt-in plugin, its field shows up in the order or customer data; filter on it. If you have no opt-in field at all, that is the first thing to fix, before any import.

Your email platform's terms usually say the same. Mailchimp, Klaviyo and others are permission-based, and an import of every past buyer is a common reason for an account review.

Step 3: Clean the file

  1. Remove duplicates. Guest checkouts create repeat rows for the same person. Remove duplicate emails treats case variants as one address.
  2. Fix obvious typos. The email typo corrector suggests corrections such as gmial.com to gmail.com. Treat these as suggestions; the corrected address still has to be checked.
  3. Take out test orders. Filter for your own domain and addresses like test@ used during setup.
  4. Remove past unsubscribes. Export unsubscribed contacts from your email platform and remove them with compare email lists.

Step 4: Verify the addresses

Upload the CSV on the verify page. Each address is checked against its mail server, and your other columns (name, order count, total spend) stay in the file. To try a sample first, use the CSV email verifier.

Result Import?
Valid Yes
Catch-all Yes, as a separate segment sent after the valid group
Unknown Hold and re-check later
Invalid No; keep the customer record in WooCommerce, leave the address out of email
Disposable Usually no

Shoppers mostly use Gmail, Outlook, Yahoo and iCloud, which reject unknown mailboxes during the check, so most results come back clearly valid or invalid. Catch-all results are more common for business buyers on company domains. Should you email catch-all addresses explains how to handle them.

Step 5: Import the good rows into your ESP

Use your email platform's own import with the valid file:

  • Mailchimp. The official, free Mailchimp for WooCommerce extension syncs store data from then on. For customers who are already in the store, import the verified file into your audience. Our Mailchimp list clean-up guide covers the import side.
  • Klaviyo. Import the file into a list and keep a property for the verification result. See how to clean a Klaviyo list.
  • Zapier. WooCommerce's own Zapier guide says the Zapier method "does not retroactively add past or existing customers. To accomplish this, you need to import them." So the CSV route is still how the back catalogue gets in.

Add a tag such as woo-verified-2026-11 on import, and a separate tag for catch-all rows, so you can tell later which customers came from this clean-up.

Step 6: Keep new bad addresses out

Two options, depending on how much friction you will accept at checkout:

  • A code-by-email step at account creation, through an extension such as the one above.
  • A live check on the checkout email field using an email verification API, which flags gmial.com and dead mailboxes while the customer can still fix them. Verify emails on WordPress forms covers the WordPress side, and the API docs have the request format.

Either way, re-check the list before big sends such as Black Friday. Black Friday email list prep has the timing.

Worked example (illustrative)

A store exports 3,000 customers. Six hundred never ticked the marketing box, so they stay out of the import. Of the 2,400 opted-in customers, about 120 are duplicate guest checkouts. Verification on the remaining rows flags a few dozen invalid addresses, mostly misspelt free-mail domains, and a smaller group of catch-all business addresses. The valid rows go into the main list, the catch-all rows get their own tag, and the invalid rows stay in WooCommerce for order history only.

Checklist

  • Customers exported from WooCommerce > Customers > Download
  • Only opted-in customers in the marketing file
  • Duplicates, test orders and past unsubscribes removed
  • Every address verified; invalid ones left out of email
  • Valid and catch-all rows imported with separate tags
  • A check on new checkout addresses in place

Verify before you upload

Upload your WooCommerce export on the verify page. You get 100 free email checks when you sign in with Google, no card, enough to see how a sample of your customer list holds up. For bigger stores, monthly plans are on the pricing page.

Common questions

How do I export customer emails from WooCommerce?

In your WordPress admin, go to WooCommerce, then Customers. Filter the list if you only want some customers, then click Download to export the current view as a CSV. For larger reports WooCommerce prepares the export in the background and emails you a download link.

Does WooCommerce check that a customer's email address is real?

Not by default. WordPress's is_email() function, which handles basic address checks, only looks at the format and its documentation says it is not RFC compliant. It does not contact the mail server. Extensions such as Customer Email Verification add a code-by-email step and an MX check.

Can I send marketing email to every WooCommerce customer?

Not automatically. Buying something is not the same as agreeing to marketing email in many places, and most email platforms ask for opt-in. Import customers who ticked a marketing box, or check the rules that apply to you before emailing past buyers.

Will the Mailchimp or Zapier connection add my old customers?

WooCommerce's guide for the Zapier method says it does not retroactively add past or existing customers, and that you need to import them. Export them as a CSV, verify the file, and import the valid rows.

Should I delete invalid customers from WooCommerce?

No. Keep the customer and order records for accounting and support. Just leave invalid addresses out of your email list, and correct obvious typos if the customer confirms the right address.

Check your list before you send

Real mailbox checks over SMTP, and nothing is sent to the address. Sign in with Google and your first 100 email checks are free, no card. Plans for bigger lists are on the pricing page.