It depends on the size of your SSD. If your SSD is bigger than your current HDD you could just use a live distro like SystemRescueCD and use ddrescue
with sudo ddrescue -v --force /dev/sda /dev/sdb
Here is a pretty decent tutorial which also covers the case that your SSD is smaller than your HDD.
But -- and that is just my personal experience -- I would prefer a clean install. This is what I would do to minimize the hassle:
- Create a new bootable flash drive with elementary OS
- Buy a harddisk caddy (search amazon) that fits the DVD drive of your laptop for your old HDD
- Replace the DVD-Drive with the caddy/HDD and install the SSD
- Make a clean install of elementary OS on you new SSD but don't format the HDD
- Boot elementary OS from SSD and mount HDD
Now you can select which files from your old home folder you want to restore. You could even do something like rsync -av /mnt/hdd/home/yourname /home/yourname
and recreate your home folder although I would rather have some more control over which files you want to restore.
Now, you can use your HDD as /home by changing the /etc/fstab but I would simply use symbolic links to the hard disk for big folders like "Videos" or "Music". Just create a folder called "Music" somewhere on the HDD and do ln -s /mnt/hdd/Music /home/yourname/Music
Hope that helps!