Last time I migrated HDD to SSD the free version of Macrium Reflect worked. Note that the automatic partition remapping didn't work though and threw an error because the new disk was smaller. In the migration mapping tool I had to manually copy the partitions in order and manually resize them to make room for the next partition. Once they all fit it was one batch process and the copy was successful.
To clone to the partitioned SSD
In Macrium Reflect, click the Backup tab.
Click the disk you want to clone.
Links appears below the selected disk.
Click Clone this disk.
The Clone dialog appears with the source disk selected.
In the target disk area, click Select a disk to clone to and select the SSD disk.
Caution: To create a working clone, you must clone all the system partitions. System partitions are required for the operating system to boot successfully. Macrium Reflect indicates system partitions by displaying the operating system logo, for example the Windows flag, in the top left corner of the partition on the partition diagram.
Drag and drop the source partitions to the target disk.
Optionally, for each target partition, change the partition properties: click Cloned partition properties.
On the Partition Properties dialog you can change the drive letter, partition type, and partition size. Click the Maximum, Minimum and Original size buttons to automatically adjust the partition size, or, manually set the partition size and free space.
Note: The assigned drive letter is for the current Windows session. If you are cloning a Windows system disk then the letter chosen here is not used when booting into the cloned disk.