Ryan played his youth days for Belvedere before moving abroad. He started his professional career at Sunderland making two substitute appearances in the Premier League in 2003. His debut came in the Tyne–Wear derby in April 2003. He signed for Scunthorpe United initially on loan in March 2005. This became a permanent move in June. The following season he signed for Boston United. He left the club a year later after their double relegation, intending to return to his native Ireland. Ryan signed for Royal Antwerp in July 2007, making his competitive début in a 4–1 defeat to Kortrijk on 30 September, before moving back to Sligo Rovers. He made his League of Ireland debut for Sligo in a 1–0 defeat to Cork City at the Showgrounds on 3 August 2008. He scored his first goal for the club in a 2–2 draw with Cork City in the 2009–10 Setanta Sports Cup, Sligo's first ever goal in the competition. He struggled to get a regular place in the side for his first year and a half as he struggled with fitness but came into his own with a string of highly impressive passing displays in the successful 2010 season. Ryan was Player of the Month in October and won the 2010 PFAI Player of the Year award. He was named as club captain for the 2011 season and captained the club to a second-place finish in the league and an FAI Cup, which Sligo won after beating Shelbourne on penalties. This was Ryan's first time winning an FAI Cup as he was suspended for the 2010 Final. Ryan signed for Scottish Premier League side Dundee United in November 2011. He joined his new teammates in January 2012, making his debut as a substitute in a 2–1 defeat by Aberdeen on 2 January. On 25 July 2013 it was announced that Ryan had left Dundee United by mutual consent. On 7 August it was announced that he had signed for Shamrock Rovers. He made his league debut two days later. In September Ryan won his second League of Ireland Cup. Ryan signed with North American Soccer League club Ottawa Fury FC on 10 December 2013. After two years with Ottawa, Ryan transferred to Jacksonville Armada FC on 15 December 2015. Less than six-months later Ryan was on the move again, joining fellow NASL side Miami FC on 13 May 2016, for a reported fee of $750,000. On 19 February 2018, Ryan signed with USL side FC Cincinnati. On 17 January 2019, Ryan signed with USL Championship side El Paso Locomotive FC.