The town is located in the Glarner Mittelland on a broad valley floor between the Glärnisch and the Linth.
With the incorporation of Ennenda, Netstal and Riedern in 2011, the municipality Glarus now has an area of .