Gmail Dots, Plus Addresses and Duplicate Customers in Shopify
Gmail ignores dots and anything after a plus sign, so jane.doe@gmail.com, janedoe@gmail.com and janedoe+shop@gmail.com all reach one inbox. Shopify stores each customer's email as a unique value and its documentation doesn't mention ignoring dots or tags, so treat the variants as separate profiles. Find them by normalizing emails, then merge them in Shopify.
- Google says dots don't matter in personal Gmail addresses, so john.smith@gmail.com and johnsmith@gmail.com are the same inbox.
- In Google Workspace accounts on a company or school domain, dots do change the address, so dot removal is only safe for gmail.com addresses.
- Gmail and Exchange Online both deliver mail sent to name+tag@domain to the name@domain mailbox.
- Shopify's API describes each customer's email as unique, and its docs don't say it treats dotted or plus-tagged variants as the same address.
- With new customer accounts, signing in with an email that matches no profile creates a new profile, so a customer typing a different variant can create a duplicate.
Gmail dots cause duplicate customers in Shopify because Gmail treats jane.doe@gmail.com and janedoe@gmail.com as one inbox, while Shopify stores each customer's email as its own unique value. Plus addresses like janedoe+shop@gmail.com work the same way. The customer gets every email either way and never notices; your admin ends up with two or three profiles, each holding part of their order history. You find these by normalizing emails before comparing them, and you fix them with a merge.
This guide explains the email rules behind these duplicates, where the normalization is safe and where it isn't, and how to clean them up without merging strangers.
Why do Gmail dots create duplicate customers?
Because the same person can type their address several ways and Gmail delivers all of them to the same place, so nothing ever tells them they used a "different" email.
Google's Gmail help is direct about it: if someone adds dots to your address, you still get the email. Its example treats johnsmith@gmail.com, john.smith@gmail.com and j.o.h.n.s.m.i.t.h@gmail.com as the same address. Google also says nobody else can sign up for a dotted version of your username, because it counts as already taken. So two Gmail addresses that differ only by dots belong to one account owner.
Shopify sees it differently. The GraphQL Admin API describes a customer's email as "the unique email address of the customer," and Shopify's help documentation says each profile holds one email and that an order's email is used as its unique identifier. Nothing in Shopify's documentation says it strips Gmail dots or plus tags before comparing addresses. The safe assumption is that Shopify compares the address as written, so jane.doe@gmail.com on one checkout and janedoe@gmail.com on the next can produce two profiles.
Shopify creates profiles on its own when someone signs up for your mailing list or a customer account, places an order, or abandons a checkout. Each of those is a chance to type the address a little differently.
What are plus addresses, and why do customers use them?
A plus address is a regular address with a tag added after a plus sign, like jane+shop@gmail.com. Mail to it lands in jane@gmail.com.
Gmail's help suggests exactly this habit: add a word after your username, such as yourname+work@gmail.com or a tag for shopping and newsletters, then filter on it. Microsoft documents the same feature for Exchange Online, where it's called plus addressing or subaddressing and is turned on by default. Exchange first tries to deliver to the full address, and if no mailbox matches, it drops the plus sign and tag and delivers to the base address.
Privacy-minded shoppers use a tag per store so they can see who sells their address. That's reasonable behavior, and it means your newsletter sign-up might hold jane+yourstore@gmail.com while her orders sit under jane@gmail.com.
Which email variants point to the same person?
Some variants are safe to treat as one inbox and some are not. The table sums up what the providers' own docs support.
| Variant | Example | Same inbox? | Safe to normalize? |
|---|---|---|---|
| Capital letters | Jane@Example.com vs jane@example.com | Not covered by these docs | Yes, lowercase everything |
| Dots in a Gmail address | jane.doe@gmail.com vs janedoe@gmail.com | Yes, per Google | Yes, for gmail.com |
| Dots on a Workspace or custom domain | j.doe@company.com vs jdoe@company.com | No, Google says dots matter there | No |
| Plus tag on Gmail | jane+shop@gmail.com vs jane@gmail.com | Yes, per Google | Yes |
| Plus tag on Exchange Online | sam+news@contoso.com vs sam@contoso.com | Yes, on by default (admins can turn it off) | Usually; review the group |
| Different addresses entirely | jane@work.com vs jane@home.com | No | No; match on phone or address instead |
Two rows deserve emphasis.
Dots only collapse for Gmail. Google's page says that if you use Gmail through a work or school domain, dots do change your address. A shop selling to businesses may have j.smith@acme.com and jsmith@acme.com as two real people. Remove dots only when the domain is gmail.com. Many cleanup tools, Twinfold included, apply the same rule to googlemail.com, Gmail's alternative domain; Google's dots page doesn't mention it, so give those groups a quick look.
Plus tags are a strong signal, not a proof. Gmail and Exchange Online both deliver tagged mail to the base mailbox, but other mail systems may not support it or may use a different separator. Treat a plus-tag match as very likely the same person and glance at the names before merging.
Does signing in with a different variant create a new profile?
It can. Shopify's new customer accounts documentation says that when a customer signs in with an email that isn't tied to an existing profile, a new profile is created automatically.
With new customer accounts, sign-in is passwordless: the customer enters an email and gets a one-time 6-digit code. Here's how that plays out. Jane's profile, with three orders, has janedoe@gmail.com. She comes back on a new phone, autofill offers jane.doe@gmail.com, and she types the code that arrives in her one Gmail inbox. If Shopify doesn't recognize that string as her profile's email, she's now signed in to an empty new profile, and she writes to support asking where her orders went.
The same documentation says customers can't merge profiles by changing their email address. Combining them is a job for staff in the admin.
How to find Gmail and plus-address duplicates
You need a normalized copy of each email: one version that ignores the harmless differences. Then you look for repeats.
- In Shopify admin, go to Customers and click Export, choose All customers and Plain CSV file, then Export customers. Exports over 50 customers arrive by email.
- Lowercase every email and trim spaces.
- Remove everything from a plus sign up to the @ sign: jane+shop@example.com becomes jane@example.com.
- Only if the domain is gmail.com or googlemail.com, remove every dot before the @, and write the domain as gmail.com.
- Count how many rows share each normalized email, and filter to counts of 2 or more.
- Review each group: the names, addresses and orders should look like one person.
A worked example. Your export has these four rows:
| Email as stored | Normalized | Group |
|---|---|---|
| Jane.Doe@gmail.com | janedoe@gmail.com | A |
| janedoe+spring@gmail.com | janedoe@gmail.com | A |
| janedoe@googlemail.com | janedoe@gmail.com | A |
| j.doe@acme.com | j.doe@acme.com | (none) |
The first three are one person with three profiles. The Acme address keeps its dot because it isn't Gmail, so it stays out of the group even if the name matches. If you suspect it's Jane's work address, look for a matching phone number or shipping address instead.
Our guide on how to find duplicate customers in Shopify has a ready-made Google Sheets formula for this exact email key, plus phone and address keys for the duplicates email can't catch.
For a single customer who writes in, the quicker route is search. Open their profile, click More actions > Merge customer, and in Find a customer to merge with search by the part of the address before the @ with and without dots, and by their last name.
Which email should the merged profile keep?
Keep the exact address the customer types when they sign in, because the merged profile keeps only one email and the other is removed.
For Gmail dot variants, both reach the same inbox, so the choice only matters for sign-in: ask the customer, or keep the variant on their most recent order. For plus addresses, keep the plain address unless the customer clearly prefers the tagged one, since a tagged sign-up address is often a one-off they won't remember.
Whatever you keep, tell the customer. If they sign in later with the removed variant, Shopify can create a fresh profile and the duplicate comes back. Merging customer accounts in Shopify covers which profile survives and what else moves in the merge. Remember that a Shopify merge can't be undone, so check each group before you confirm.
How to keep these duplicates from coming back
You can't stop customers typing variants, but you can make the variants rarer.
- Encourage sign-in before checkout. A signed-in customer checks out with their profile's email instead of typing a new one. Requiring sign-in is a separate setting with real trade-offs; why Shopify creates duplicate customer profiles walks through them.
- Normalize before imports. If you import a list from a newsletter tool or old platform, normalize its emails and compare them with an export of your current customers first.
- Check after big sign-up pushes. Giveaways and newsletter forms are where tagged addresses pile up.
How Twinfold helps
Twinfold is a Shopify app by NewClick (independent, not made by Shopify) that finds these groups for you. Scan for duplicates reads your full customer list through Shopify's bulk export, and scanning is free on every plan.
Its Email variant match uses the rules in this guide: the same address after lowercasing, removing a "+tag", and, for Gmail and Googlemail only, removing dots. Each group shows "Why they match" and a High, Medium or Low confidence rating. On the group page you pick the main profile and which name, phone and default address to keep, and the merged profile keeps the main profile's email, per Shopify's rule. Every merge is previewed with Shopify before you confirm, and a group you decide isn't one person can be marked Not duplicates so it doesn't return on the next scan.
Frequently asked questions
Are jane.doe@gmail.com and janedoe@gmail.com the same customer?
They are the same Gmail inbox, so almost certainly the same person. Google's Gmail help says dots in a Gmail username don't matter and that nobody else can register a dotted version of your address. In Shopify they can still be two separate customer profiles, which you merge in the admin.
Does Shopify ignore dots in Gmail addresses?
Shopify's documentation doesn't say it does. Its API describes a customer's email as unique and doesn't mention normalizing Gmail dots or plus tags, so the safe assumption is that Shopify compares the address as typed and a dotted variant can become a separate profile.
Can I remove dots from every email address when looking for duplicates?
No. Only for gmail.com (and googlemail.com) addresses. Google says that for Gmail used through a work or school domain, dots do change the address, and other providers make no promise either. On a custom domain, j.smith@company.com and jsmith@company.com can be two different people.
Why do customers use plus addresses at checkout?
To sort or track mail. Gmail suggests adding a word after a plus sign, such as yourname+shopping@gmail.com, and filtering on it, and Exchange Online has plus addressing on by default. A customer who signs up as jane+yourstore@gmail.com and later checks out as jane@gmail.com creates a second profile.