Hoth was a succesful withdrawal under pressure despite a number of brutal errors on the rebels' part, mitigated by even more egregious errors on the empire's part.
The ground delaying op defence made no sense. Nothing the rebels had could meaningfully repel the AT-ATs and their embarked platoons. The rebels surely could have sacrificed a few drois or what have you to remotely fire the ground turrets, but every infantry soldier out on foot was squandered.
The X-Wing escorts of the transports made little sense. X-wings would do nothing against Star Destroyers, and the SDs each carried 6 TIE squadrons; enough to be utterly overwhelming had they been used. The X Wings would have been better used smoking AT-ATs or hitting drop ships; the X-Wings were much more heavily armed than the snowspeeders, capable of atmospheric flight, and afforded a more reliable escape to orbit and hyperspace.
Somehow despite this, most of the rebel pilots switched airframes and got out. I assume the infantry mostly died.
The Empire could have deployed fighters and bombers in mass numbers for utter air supremacy. They could have held their capitol ships back more out of range of the Ion Cannon, and relied on fighters and interceptors to interdict transports. They could have played it slow and put SOF down to conduct reconnaissance and maybe take out the shield generator, opening the site to planetary bombardment.
Both sides sucked, but the Rebels were luckier.