While the above is true in theory, it has just moved the problem into the states with all-or-nothing electorate systems. So, a party can run a candidate that is popular in urban areas and win even if those policies are destructive to rural areas and vice versa. There does tend to be a correlation in ideologies between urban and rural areas.
What has happened in the US, as an aggregate, is this division spread over multiple states depending on their urban and rural ratio. The all-or-nothing system for each state magnifies this problem by giving out-sized representation to one or the other (rural or urban) relative to other states. The assumption that this averages out over all states is not necessarily true.
Much more damaging consequence is that the all-or-nothing has enabled a way to game the system with a calculation of narrow wins in just a few states which is wholly out of touch with a fair representation in ANY metric.
Even if Electorate system is to be kept, it would be better to have a proportionate electorate system within each state where its current allocation of electorates can be split between candidates depending on their internal ratio of votes. This would bring it more in line with over-all popular vote count without penalizing any state relative to another. It would force candidates to be appealing to an even more broader spectrum rather than the current extremes divided between states. This is done in only a couple of states now.
There are other improvements that can be made such as rank-ordering candidates rather than a single choice, or allowing losing candidates to allocate their votes to one or more of the top candidates, etc.
No perfect solution, there are pros and cons to be weighed. But the current system is very far from being optimal in deciding representation.