Here’s my official answer as a professional comedy writer, best man speech expert and wedding guest:
Aim for about 5 minutes.
Why do I say “about 5 minutes?”
Because if it’s a little more or a less than 5 minutes, you’re still in the right ballpark.
If you don’t have a lot to say, or you don’t know the person well and you keep it short and sweet at 3 minutes, that’s totally fine.
If your speech creeps up to 7-ish minutes, that’s ok too.
Because size isn't the most important thing. (The size of your speech -- get your mind out of the gutter!)
The most important thing is the structure of your speech – and by that I mean, does it have one?
Of course your best man speech is going to be heartfelt and funny. You love the guy. You’ve got a ton of stories. But your listeners have to be able to follow those stories.
A great best man speech has a clear beginning, middle and end.
There’s nothing worse than listening to a speech that gets off to a great start and then watching it sink like a stone.
Your best man speech should be a snowball rolling downhill, gathering momentum, telling us everything we need to know in a clear, easy to follow way, building to a strong natural finish — your toast.