Everybody obsesses over the homepage. The hero image, the headline, the fonts. Meanwhile the checkout is a four step form with a required account signup and shipping that appears out of nowhere at the end.
Somebody who reached checkout has already decided to give you money. Everything after that point is you giving them chances to change their mind.
Forced account creation
This is the big one. A person wants to buy one thing and you are asking them to make an account with a password and confirm an email.
They will not. They will close the tab. Guest checkout, always. Offer the account after the order is done, when they already have a reason to want one.
Shipping that appears at the end
The cost is not usually the problem. The surprise is the problem.
Somebody spent ten minutes picking things out with a price in their head, and at the final step it goes up by eighteen dollars. That does not feel like a shipping charge. It feels like being tricked.
Show it early. Put it on the product page or the cart. If you have free shipping over a number, say the number everywhere, because that is your best sales tool and it should not be a secret.
Too many fields
Company name for a personal order. Address line two as required. A phone number you never call. Every field is a small tax and they add up fast on a phone keyboard.
Go through your own checkout and delete anything you do not genuinely use to fulfill the order. It is usually a third of the form.
The phone test
Here is the one nobody does. Take your actual phone, get off wifi, and buy something from your own store with a real card.
Feel how long it takes. Notice when the buttons are too small for your thumb. Notice if the card field zooms weird. Notice if you had to pinch to read the total.
That is the experience most of your customers are having and almost no store owner has ever sat through it themselves. Do it once a quarter. It is free and it will show you more than any analytics dashboard.