In this letter, we propose a new routing strategy to improve the transportation efficiency on complex networks. Instead of using the routing strategy for shortest path, we give a generalized routing algorithm to find the so-called {\it efficient path}, which considers the possible congestion in the nodes along actual paths. Since the nodes with largest degree are very susceptible to traffic congestion, an effective way to improve traffic and control congestion, as our new strategy, can be as redistributing traffic load in central nodes to other non-central nodes. Simulation results indicate that the network capability in processing traffic is improved more than 10 times by optimizing the efficient path, which is in good agreement with the analysis.