One side effect of bot signups and bot abandoned checkouts is an inflated customer list full of bots. Shopify creates a customer profile when someone signs up for a mailing list or a customer account, places an order, or starts a checkout and leaves. A bot that submits a generated name and a throwaway inbox takes that same path. What shows up in Customers is usually the profile from that abandoned checkout, not a store account anyone logged into. After a week of fake abandoned checkouts, most of those rows have never placed an order.
How to bulk delete spam customers in Shopify
- In the Shopify admin, go to Customers.
- Select the profiles you want to remove. Shopify only deletes profiles with no orders. Abandoned-checkout spam sits in that same group, next to newsletter signups, unused accounts, and real shoppers who left for an ordinary reason.
- Open the menu next to Bulk edit, then choose Delete customers.
- Confirm Delete.
To remove one profile, open it and choose More actions → Delete customer. Deleting a customer profile can’t be undone. Shopify also redacts that person’s name and address from its records.
Choosing the rows yourself means guessing which ordinary name belongs to a script. A fake abandoned checkout often uses a name that looks real. Clearing the list once makes it shorter today. The next bot checkout creates a new profile the same way, because deleting rows does not stop the next email from being entered at checkout.
What Shopify will not delete
Shopify refuses the delete in these cases:
- The customer is associated with one or more orders
- The customer has ever had a subscription
- The customer is the recipient of a scheduled gift card that has not been delivered yet
- The customer has a pending redaction from a data-erasure request
Only the profiles Shopify allows are removed. The rest stay in the list. A bot that got one cheap order through — a card-testing charge, a $3 sticker — is stuck there. For a customer who did order and asks to be forgotten, the separate tool is a data erasure request on the same help page: Shopify redacts the name, email, phone, and address, and the profile and order history remain.
The Admin API follows the same rule. customerDelete deletes a customer only when they have not placed any orders.
The abandoned checkout stays
The customer profile and the abandoned checkout are different records. Orders → Abandoned checkouts is the incomplete checkout. Shopify’s help page is explicit: there is no way to manually delete a specific abandoned checkout. Abandoned checkouts older than three months are removed on their own.
Deleting the customer leaves that checkout in place. It also leaves the address that already synced to Klaviyo, Omnisend, or Mailchimp, so cleaning your customer list does not stop recovery emails that already have it. Some bot checkouts never create a customer profile at all. In that case there is nothing to remove in Customers, and the checkout can still be there.
What CartWatch deletes
CartWatch scores the checkout after Shopify creates it. On the Starter plan and above, it tags the customer and keeps the address out of Klaviyo, Omnisend, Mailchimp, Drip, and Brevo before a recovery send.
Deleting the Shopify customer record is separate. It is available on the Standard plan and above, and it stays off until you turn it on. Under Settings → Customer Record Cleanup, set the minimum bot score. The default is 100, which covers only the checkouts CartWatch is certain about. The lowest setting covers every checkout shown as Very High risk.
About an hour after a checkout is flagged at or above that score, CartWatch deletes the Shopify customer profile. That hour leaves room for a fresher checkout update, or for you to clear the flag, before the profile is removed. Shopify still refuses the delete when that customer has an order, and the abandoned checkout stays under Orders → Abandoned checkouts.
If that checkout is later cleared, CartWatch recreates the profile from the checkout details: name, email, phone, addresses, marketing consent, tags, and note. A store account login is not restored.
Payment blocking, also on the Standard plan, is the other control. It refuses the payment when a bot attempts it, so the order is never completed.
If your customer list is full of profiles that never ordered, install CartWatch from the Shopify App Store. Detection runs on every plan. Deleting very-high-risk bot customer records is on the Standard plan and above, and it stays off until you turn it on.
FAQ
Can I delete a Shopify customer who placed an order? Shopify will not delete a customer associated with one or more orders, or one who has ever had a subscription. A data erasure request redacts personal details and leaves the profile and order history in the admin.
Does deleting a customer remove the abandoned checkout? No. Deleting the customer profile leaves the abandoned checkout in Orders → Abandoned checkouts. They are different records, and Shopify does not give you a way to delete that checkout yourself. Checkouts older than three months are removed automatically.
How do I bulk delete spam customers in Shopify? In Customers, select the profiles and choose Delete customers from the menu next to Bulk edit. Shopify removes only the profiles it allows. A real customer who never ordered is removed too if you select them.
Why do fake accounts from abandoned checkouts show up in Customers? Shopify adds a customer profile when a checkout is abandoned after contact details are entered. That profile is what shows up in your customer list. It is not a store account with a login.
Does CartWatch delete every bot customer? No. Deletion is optional, on the Standard plan and above, and off by default. It removes profiles at or above the score you set, about an hour after the checkout is flagged, and only when Shopify allows the delete. The abandoned checkout stays. The default score is 100.