Pauses after pressing the buy/confirm payment button are the worst. Delays in loading before that may be enough to damage customer confidence in the whole payment process.

No forced registration.
Of course, encouraging customers to register is a good idea, but not at the cost of losing potential sales. It’s a proven barrier to conversions.

Security reassurance.
There’s doubt around which trustmarks to use, and whether the information they convey is actually understood by the customer, but it seems they do have an effect during checkout.

Easy form filling.
People hate forms, so making it painless as possible is the name of the game. Don’t ask for too much, avoid obvious pitfalls, and make sure your error messages are clear.

Progress indicators.
The customer should know where they are in the process and what else needs to be done to complete the purchase. One way to achieve this is to have a progress bar across the top of each checkout page.

Persistent basket summary.
Remind users of the contents of their baskets and the total cost of the order so they don’t have to leave the checkout for this information.

Remove distractions.
Enclosing the checkout ensures that shoppers are focused on the task in hand and not likely to be taken out of the checkout by links.

More here: