Just as important as which route you choose for your trek is what time of year to do it. There is no single best time to trek in Peru, whether to Machu Picchu or elsewhere, and the ideal time depends quite a bit on your personal preferences.
July and August
Late summer is the peak tourist season in Peru, specifically July and August. This season has the driest weather, generally speaking, and most people aim for the best weather. Even in the late summer, the foothills of the Andes are never completely dry. Mist often clings to the peaks, and you can expect at least a few gentle showers. Nonetheless, the weather is generally clear and warm, and trekking conditions are excellent.
You should be aware that only 500 people a day are allowed on the Inca Trail and July and August permits sell out within days of their release. There is no limit on day visitors to the ruins (though certain areas inside are limited access), so July and August will be particularly crowded, especially in the nicest weather.
December to March
This is the ‘rainy season’. If you are visiting during this time you will see fewer tourists, but it will be raining. January and February are the wettest months by far. We really do advise against trekking in this period unless you have a truly compelling reason. Walking is difficult, camping varies from miserable to impossible, and it is so cloudy that most of the views are spoiled anyway. The classic Inca Trail is closed for maintenance and repairs in February.
April to June and October to November
The months just on either side of the peak season are some of the best times to trek in the Andes. There is a bit of rain and a few tourists, but you won’t feel an overwhelming compulsion to build an ark or feel like you’ve somehow wound up at Disneyland.
No matter when you plan to arrive, flight prices vary widely. You can generally get good deals if you book early for off-peak times. Flights arriving or departing in July and August will almost always be expensive, though - another good reason to book an off-peak trek.