Rutherglen, Lanarkshire born outside right Bill McCafferty began his football career with Rutherglen Glencairn in 1900. He was signed by Celtic in March 1902, making his first team debut in a 1-0 defeat to Hibernian in the Scottish Cup on April 26. He made a solitary Scottish League appearance for The Bhoys against Rangers in a 1-1 home draw in October before being loaned to First Division Bolton Wanderers, where he made his Football League debut at Aston Villa the following month. He made 8 appearances for Bolton during the remainder of the 1902-03 season before returning to Celtic. He then signed for Stenhousemuir in November 1903.
He joined Dunfermline Athletic in 1904 and had a brief spell at Bathgate in 1905 before returning to England to join Southern League Reading later the same year. He then returned to Football League action with First Division Birmingham for £350 in 1906, making 4 first team appearances either side of the 1907 New Year before returning to Bathgate. He moved to Southern League Portsmouth later in 1907 spending 2 seasons at Fratton Park, joining Brentford in 1909 before once again re-joining Bathgate in 1910, where he finished his career.