Shelburne is located in central Franklin County, and is bordered by Colrain to the north, Greenfield to the east, Deerfield to the southeast, Conway to the south, Buckland to the west, and a short, 0.4 miles stretch of Charlemont to the northwest.