Canby was platted in 1876, soon after the railroad was extended to that point. The town is named after Edward Canby, a General in the United States Army. A post office has been in operation at Canby since 1874. Canby was incorporated as a city in 1905.
Canby is located mainly in Sections 3 & 4 of Norman Township (T114N R45W). According to the United States Census Bureau, the city has a total area of 2.20 square miles (5.70 km2); 2.19 square miles (5.67 km2) is land and 0.01 square miles (0.03 km2) is water.