Due to the characteristics of Vehicular Ad Hoc Networks (VANETs), i.e. highly dynamic network topology, large network size and non-uniform node distribution, it is a great challenge to develop a routing protocol to ensure efficient data transmission. In this paper, we propose a Vehicle Density and Load Aware routing protocol for VANETs called VDLA. VDLA adopts sequential selection of junctions to construct the route. The selection is based on the real-time vehicle density, the traffic load of the corresponding road segment and the distance to the destination. The network information is collected by a decentralized mechanism. Through factoring in these metrics, the packets are avoided being sent to roads where network is disconnected and the network load is balanced to mitigate network congestion. Thereby VDLA can improve the efficiency of data transmission. By virtue of the information collected at every junction, the decision about which junction the packet should forward to is made before the junctions to reduce the unnecessary hops. In the simulation, we compare VDLA with GPCR, one of the most widely used routing protocols in VANET. The results show the superiority of VDLA in terms of average end to end delay and packet delivery ratio over GPCR.