According to the United States Census Bureau, the town has a total area of , of which is land and , or 1.71%, is water [REF].
Richmond is bordered on the north by Hancock and Pittsfield, on the east by Lenox, on the south by Stockbridge and West Stockbridge, and on the west by Canaan, Columbia County, New York.