There was nothing wrong with the bridge itself. To build a stand alone bridge capable of withstanding that sort of impact is virtually impossible without engineering it to be a castle on the water. No one would pay to do that.
However, it is cost effective to protect the critical supports near the ship channel with barriers, such as concrete islands, barriers, dredged spoil alongside the channel, etc., to cause the ship to run aground before it can strike the central bridge supports.
When the Skyway Bridge across Tampa Bay was rebuilt after it was taken out by a barge in 1980, they dredged the shipping channel and dumped the spoil in front of the supports, and also build round concrete islands in front of the supports. Any ship veering from the channel would either run aground, or be stopped by the concrete barriers.
This is something that really needs to be considered, as it is cost effective, and there are many bridges in our ports just as vulnerable as the Key bridge.