Know what a good developer looks like
You could hire and pay someone for three months before you realise they can't do what you asked. When outsourcing you don't need to know every technical detail, but you do need to have an appreciation of what good looks like. Upwork et al. can be great for finding good value developers, but you need to know how to sort the wheat from the chaff. If you don't know how to, find someone who does.
Don't forget to interview
Okay, so you're not going to be as diligent as you would be with a permanent hire. However, if it's a substantial piece of work then you need to interview the people you'll be working with for both technical and cultural fit. Again if you don't know what good looks like, get help.
Prefer individuals to agencies
Personally, I prefer working with individuals rather than agencies. There's an added overhead of having to coordinate and build your own team. You get better visibility and individuals aren't going to hold back when calling out other peoples shoddy work. The downside is it can turn into a bun fight with you in the middle. With an agency, you're less likely to get this. But when everything goes south, an agency will close ranks, cover up their mistakes and keep you in the dark all while you pay for it.
Find out where the developers are based
It's relatively common for an agency to have a London office for sales and marketing. The actual development team will be based elsewhere. Sometimes they will play a game of smoke and mirrors and have the team in London when you visit. Find out exactly where the team is based and make sure that you are being charged accordingly.