Born in Swindon, Wiltshire, and raised in Holmes Chapel, Cheshire, Ashton spent his youth career playing at both Stoke City and Crewe Alexandra. He was a product of Crewe's renowned youth development policy under manager Dario Gradi. He signed scholarship forms as a 16-year-old in 2000 before making his first-team debut on 28 October as an 83rd-minute substitute in Crewe's 1–0 win at Gillingham but in spite of this he scored ten times and began to win international honours with England at under-16, under-17, under-18 and under-19 level. Ashton scored 16 more times in the 2002–03 season as the club bounced back to the First Division after just one season in the Second Division. Ashton had a number of notable displays for Crewe, one of which was in the 4–0 win against Luton Town, where he scored two goals and set up David Vaughan's goal. Crewe manager Dario Gradi said that "These have been his best performances and people are right to say he has a bright future in the game."