Most of what's written about checkout is generic. This list is only the things we find ourselves recommending over and over when an agency client asks us to "fix checkout". None of them require a redesign.
Offer guest checkout, and mean it
"Guest checkout" that hides behind a tab and secretly asks you to create an account at the end isn't guest checkout. Let people buy without an account. You can always invite them to create one on the thank-you page, after the sale is safe.
Show the total price as early as you honestly can
Surprise costs at the final step are the single biggest cause of cart abandonment we see. If shipping depends on address, say so on the cart page with a line like "Shipping calculated at checkout". If you offer free shipping over £50, show how far off they are.
Trim the form
If you don't need phone number, don't ask for phone number. If "address line 2" is optional, mark it clearly as optional (or better, drop it under a "+ Add address line 2" link). Every extra field is a chance for someone to reconsider.
Use the right keyboards on mobile
Email fields should open the email keyboard. Postcode fields should open the numeric keyboard. This sounds trivial, but on mobile — where most people shop — it's the difference between five taps and fifteen.
Show where in the process they are
Three steps, clearly labelled. Don't promise "almost done" on step one. People feel better when they know what's ahead of them.
Display real trust signals
Not badges from 2011. The payment provider logos. A plain-English line about your returns policy. Your support email or a contact link. The stuff that makes someone feel, in the moment they're entering their card, that there's a real business on the other end.
Test the flow on your own phone every month
Apps get updated, themes get changed, payment providers push new versions. The checkout you launched is not the checkout you have today. Running through it monthly catches regressions before customers do.