Why Shopify Creates Duplicate Customer Profiles (and How to Prevent Them)

By The Twinfold teamPublished 9 min read
Short answer

Shopify creates a customer profile automatically when someone orders, abandons checkout, signs up for your mailing list or signs in to an account, and it matches people only by their exact email or phone. A second email, a phone-only checkout, a POS profile or an import row therefore becomes a new profile. You can reduce duplicates in Settings > Checkout and at POS, but not stop them.

Key takeaways
  • Shopify creates a customer profile automatically when someone places an order, abandons a checkout, signs up for your mailing list, or signs up for a customer account.
  • Shopify treats each customer's email and phone number as unique, so the same person using a different email or phone gets a separate profile.
  • With new customer accounts, signing in with an email that matches no profile creates a new profile automatically.
  • The Customer contact method setting in Settings > Checkout decides whether shoppers can check out with a phone number instead of an email.
  • Shopify doesn't warn you when a new profile looks like an existing one, so some duplicates appear in every store and need a regular cleanup.

Shopify creates duplicate customer profiles because it makes a profile automatically every time an unfamiliar email or phone number shows up, and it never checks whether that person already exists under different details. A shopper who orders once with a work email and once with a personal one, checks out with a phone number, gets added at POS, or arrives in an import becomes two customers. You can reduce the main causes with a few settings and habits, but you can't switch duplicates off entirely.

This guide explains each way duplicates get in, which ones you control, and the settings and routines that keep the number low.

Why does Shopify create duplicate customers?

Shopify creates a customer profile on its own whenever someone does something that needs one, and it identifies people only by their exact email address or phone number. Anything that doesn't match exactly becomes a new profile.

According to Shopify's help documentation, a profile is created in your admin when a customer signs up for your mailing list, signs up for a customer account, places an order, or starts an order and abandons checkout. Staff can also add profiles by hand, and in POS, and you can import them from a CSV file.

The matching side is strict. Shopify's GraphQL Admin API describes a customer's email as "the unique email address of the customer" and the phone as "the unique phone number for the customer." The help center adds that each profile can have only one email address, and that an order's email address is used as its unique identifier. So Shopify will never create two profiles with exactly the same email. What it does, constantly, is create a second profile when the same person shows up with different details.

Nothing in the admin flags these. Shopify's own help page acknowledges that you "might have two or more customer profiles that refer to one customer" and points you to merging, but it doesn't detect or warn about likely duplicates.

The six common causes of duplicate customer profiles

Most duplicates trace back to one of these sources. The table shows how each one happens and the main lever you have against it.

CauseHow the duplicate happensWhat you can do
Two email addressesThe customer checks out with a work email one time and a personal email the nextEncourage sign-in; merge after the fact
Phone number checkoutWith Phone number or email allowed, a shopper checks out with a phone only, so the profile has no emailSet Customer contact method to Email
Customer account sign-inSigning in with an email that matches no profile creates a new profileTell customers which email their account uses, especially after a merge
POS profilesStaff create a profile from a name or phone without searching first, or the customer creates one through a digital receiptSearch before adding; use required details on POS Pro
Mailing list and abandoned checkoutsA newsletter sign-up or abandoned checkout creates a profile with a different email from the one they later buy withExpect these; review profiles with no orders
CSV imports and migrationsAn import brings in a second copy of someone who already ordered under a different email or phoneClean the file first and decide on overwriting before you import

The sections below go through the ones you can actually influence.

Does phone number checkout cause duplicate customers?

It can, because a phone-only checkout creates a profile with no email, and Shopify has nothing to tie it to the profile where the same person used an email before.

In Settings > Checkout, the Customer contact method section has two options: Phone number or email, or Email. Shopify's help documentation says Email is the default on new stores. When you allow phone numbers, Shopify's SMS notification documentation says the phone is saved in the customer's information and the order confirmation goes out by SMS, since there's no email to send it to.

Picture a customer who bought from you last spring as jane@example.com. This fall she checks out on her phone and types her mobile number in the contact field. Her existing profile has an email but no phone, so Shopify has nothing to connect the two and creates a new, phone-only profile. Her order history is now split across two customers, and the phone-only profile can't receive your email marketing.

If phone-only buyers aren't a big part of your business, switching the contact method to Email removes this source completely. If they are, keep the option and plan to match profiles by phone number during cleanups. A shipping address phone helps there: in the Customer information section of the same page you can set the shipping address phone number to Don't include, Optional or Required, and a phone on the address gives you something to match against later.

Do customer accounts and guest checkout create duplicates?

Guest checkout doesn't create duplicates by itself, but it lets a returning customer use whatever email they type, and that's where second profiles come from. Customer accounts reduce this, with one catch.

Shopify creates a profile whenever an order is placed, whether or not the shopper signed in. If the guest uses the same email as before, the order lands on their existing profile. If they use another address, it becomes a new profile.

With new customer accounts, customers sign in without a password: they enter their email and receive a one-time 6-digit code, or use Shop, Google or Facebook sign-in where you've turned those on. Shopify's documentation says that if a customer signs in with an email that doesn't match an existing profile, a new profile is created automatically. The same rule applies when a customer uses Google or Facebook sign-in with an account under a different email from the one they used at checkout before.

The same documentation says customers can't merge profiles by changing their email. That matters after a cleanup: once you merge two profiles, the merged one keeps only one email, and if the customer signs in with the other one, Shopify creates a fresh profile. Our guide to merging customer accounts in Shopify covers which email survives and what to tell the customer.

You can also turn on Require customers to sign in to their account before checkout in Settings > Checkout. Shopify notes that customers can then only check out with an email address, and that accelerated checkout buttons such as Apple Pay aren't shown in the online store cart. For most stores the lost conversions outweigh the cleaner customer list, so treat this as a choice for wholesale or members-only shops rather than a general fix.

Why does Shopify POS create duplicate customers?

POS creates duplicates when a new profile is made for someone who already has one, which is easy at a busy counter.

Shopify's POS documentation says staff can create a profile from a first name, last name, email or phone number, either from the cart with Add customer or after the sale. Customers can also create their own profile in store when they choose a digital receipt, using their email or phone number. Searching for an existing customer in the cart works by name or email.

So a cashier who types "Jane" and a phone number, without searching first, can create a second Jane. A customer who picks an emailed receipt with a different address than their online one does the same. A common variant is staff typing the store's own address or phone on walk-in profiles, which doesn't create duplicates but makes unrelated profiles look alike when you later search for them.

Three habits help:

  1. Search by surname and email before tapping Add new customer.
  2. On POS Pro, set customer details to recommended or required, so staff are prompted to add missing information during checkout rather than leaving a name-only profile.
  3. Never enter the store's own address or phone as a placeholder.

How do imports and migrations create duplicates?

An import adds duplicates when the file contains people who already exist in Shopify under a different email or phone, or when one person appears in the file twice under different details.

Shopify's import rules catch exact repeats. The help page says customers with duplicate email addresses or phone numbers in the file are skipped and aren't tagged, and that only the last profile with a duplicated email or phone is imported. They don't catch near-repeats: jane@example.com and Jane.Doe+old@example.com are different emails to the importer.

The import also offers Overwrite existing customers that have the same email or phone number. Shopify warns that overwriting replaces all of that customer's data, including import tags. Leave it unticked unless you mean to replace those profiles with the file's version.

Before any migration, export your current customers, normalize the emails in the file you're about to import, and remove people you already have. Our guide on how to find duplicate customers in Shopify has the spreadsheet formulas for exactly this kind of check.

How to prevent duplicate customers in Shopify

You can't prevent every duplicate, but these steps cut the volume to something a quarterly cleanup handles easily.

StepWhereTrade-off
Set Customer contact method to EmailSettings > CheckoutShoppers who prefer a phone number must give an email
Set the shipping address phone to Optional or RequiredSettings > Checkout > Customer informationA required field adds a little friction
Encourage customer account sign-inCustomer accounts and checkoutRequiring it hides accelerated checkout buttons in the cart
Search before adding a POS customerShopify POS cartA few seconds per sale
Require customer details on POS ProShopify POSPOS Pro only
Deduplicate import files and decide on overwriteBefore ImportExtra prep time before a migration
Tell merged customers which email to useAfter each mergeA short email per customer

Then accept that a few will still get through. Mailing list sign-ups, abandoned checkouts and customers who simply own three email addresses will keep producing new profiles. The practical goal is a known, regular cleanup rather than zero duplicates.

What to do about the duplicates you already have

Find them, check them, and merge the ones that are clearly one person. The native merge at Customers > [customer] > More actions > Merge customer handles two profiles at a time, can't be undone, and refuses some profiles, such as those with store credit or a subscription history. The full procedure is in how to merge duplicate customers in Shopify.

A sensible rhythm is a pass after every import or migration, plus a quarterly check. Stores with heavy POS traffic or phone-number checkout may want a monthly one.

How Twinfold helps

Twinfold is a Shopify app by NewClick (independent, not made by Shopify) that handles the cleanup side. It doesn't stop duplicates from being created; it finds the ones that already exist.

Scan for duplicates reads your whole customer list through Shopify's bulk export, and scanning is free on every plan. It matches the patterns the causes above produce: Email variant (the same address after lowercasing, removing a "+tag", and removing Gmail dots), Same phone (one profile's phone found on another profile's address, with matching names), and Same name and address. Values shared by more than 20 customers, like a store address typed on POS sales, are ignored. Every merge is previewed with Shopify before you confirm, and you can mark a group Not duplicates so it doesn't return on the next scan.

Run a scan after a settings change, and again a month later, and you'll see whether the change actually slowed down the flow of new duplicates.

Frequently asked questions

Why does Shopify create a new customer for every order?

It doesn't, if the shopper uses the same email. Shopify attaches an order to the profile with the order's email. A new profile appears when the email or phone used at checkout doesn't match any existing profile, for example a work address one time and a personal address the next, or a phone number instead of an email.

Does guest checkout create duplicate customers in Shopify?

Guest checkout still creates a customer profile, because Shopify makes one whenever an order is placed. It only becomes a duplicate when the guest uses contact details that differ from their existing profile. Requiring sign-in reduces this but adds friction and hides accelerated checkout buttons such as Apple Pay in the online store cart.

Can I stop Shopify from creating duplicate customers completely?

No. Shopify has no setting that blocks a new profile because it looks similar to an existing one. You can cut the main sources, such as phone-only checkout, quick POS profiles and messy imports, and then find and merge the rest on a routine.

Does changing a customer's email merge their profiles?

No. Shopify's customer accounts documentation says customers can't merge profiles by changing their email address. If a customer has two profiles, a staff member merges them in the Shopify admin.

Do duplicate customers come from Shopify POS?

They can. In Shopify POS, staff can create a profile from just a first name, last name, email or phone number, and customers can create their own profile when they choose a digital receipt. If nobody searches for the existing profile first, a returning customer can end up with a second one.

Sources

  1. Shopify Help Center: Managing customers
  2. Shopify Help Center: New customer accounts
  3. Shopify Help Center: Editing the checkout form options
  4. Shopify Help Center: Creating a customer profile in the Shopify POS app
  5. Shopify Help Center: Importing and exporting customers
  6. Shopify Help Center: Setting up SMS notifications