Schaffhausen je najsevernejším kantónom Švajčiarska. S výnimkou malej častiStein am Rhein a pešej cesty leží celý na sever odRýna. Takmer úplne je obklopenýNemeckom a obsahuje nemeckú exklávuBüsingen am Hochrhein. Na juhu hraničí s kantónmiZürich aThurgau, najmä prostredníctvom Rýnu. Celková dĺžka hraníc je 185,4 km, z toho s Nemeckom (vrátane enklávy Büsingen) 151,8 km, s kantónom Zürich 23,2 km a s kantónom Thurgau 10,4 km.
Samotný kantón je rozdelený na tri časti: kantonálna oblasť priStein am Rhein býva označovaná akoHorná časť kantóna, tá priRüdlingene akoDolná časť kantóna.
VrchRanden, výbežokJury, dáva Schaffhausenu pahorkovitý ráz, svahy sú pokryté rozsiahlymi lesmi. Vďaka tomu je popriJure najlesnatejším kantónom. Najvyšší bod leží vo výške912 m n. m. priHagene na svahuRandenu.