Get the semitone count and the whole progression moves with it
Shifting a song by counting chords one at a time is how a chord or two ends up wrong. An octave divides into twelve equal semitones, so working out the semitone distance between the original and the target key and adding that same number to every chord moves the progression as a whole. This page returns both the semitones up and the semitones down between the two keys and hands back your progression transposed. Suffixes such as m, 7 and sus4 are left alone and only the root moves; the bass note of a slash chord moves with it.
The rule behind the numbers
Note names become positions from 0 to 11, the original is subtracted from the target, and the remainder on division by twelve is the semitones up. The semitones down figure is twelve minus that, and the chord names come out the same whichever direction you take. The page also shows which of the two moves is the shorter one.
What this page does not do
Transposed chords are spelled with sharps. Some keys read more easily with flats, but the two spellings name the same pitch, so nothing about the sound changes. The page does not judge which key suits a voice or which key signature to prefer. Suffixes are carried across unchanged, so they come back exactly as entered.
Frequently Asked Questions
Only the root moves and the suffix stays as written. Am becomes Cm, for example, and 7 or sus4 comes back exactly as entered.
Fixing one spelling keeps the output consistent. The two spellings name the same pitch, so they sound identical.
Yes. Write them as C/G and both the root and the bass note are moved. Separate chords with spaces or commas.