I have a similar MacBook Pro and I upgraded to a 1 TB Crucial SSD a couple of years ago. Dead easy upgrade following the instructions on iFixit and on Apple web site. The drive is a drop in replacement for the original Apple SATA hard drive and needs no extra parts that did not come with the Crucial drive. And unlike newer Mac laptops there is no need for special tools to get in or to access the RAM or the hard drive.
I loved my drive until the last week or so when it has started to show signs of failure.
I have not yet had time to do a full diagnosis. If it is just a single bad block I can get around it and all will be well. But if the drive is failing, I will be very annoyed because it was a significant hit to my budget. The drive status is “verified” which means that the Mac thinks it is working fine and the internal SMART algorithm has not recognized problems.
I am a retired software engineer with a moderate amount of hardware experience. Modern SSDs are amazingly small and light, and are immune to physical bumps that would destroy a spinning drive. But if the chip quality control and the spare-block algorithms are faulty, maybe not quite so great.
Adding to my earlier reply:
A while ago I had 3 read errors during clone backup of my 2 year old Crucial 1TB SSD. All were in small system files close together in the file hierarchy. I was able to delete them and replace them with good copies from my Time Machine backup.
To do that I had to reboot from an external drive that had a cloned copy of my system, because system files on the current boot drive cannot be modified. Probably they were all in one weak SSD data block that failed. If the drive firmware worked as designed, that bad block will not be reused. I have had no new errors in over two months of operation since I replaced the files. So, I think the drive as a whole is still working fine.
If you are use to the speed of the old Mac file system, even on an SSD the new more secure APFS file system is slower. Booting takes about twice as long as with the old Mac HFS+ file system, but is still much faster than a spinning hard drive.
And as of Catalina, any bootable drive (even an external clone) must be APFS.
For anyone setting up a new SSD, creating a fresh OS install then using Migration Assistant is a fine way to go.
In my case, I had a 500 GB running system and the only problem was three tiny text files that had been corrupted by a bad block in the SSD. Luckily they were not causing any operational problems. Thanks to the usual excellent email support for my SuperDuper! cloning program (well worth its modest price), I had been able to clone the drive with a setting that logged and skipped bad files. So I had the exact paths to all of them, which I could just paste into Finder’s Go menu. I booted off a working clone, then copied the three files from a drive that had good copies of all of them. It was really very easy because the internal drive was not the boot drive at the time. I still had to give permission to remove and copy each one but really the hardest part was waiting for the Mac to slooowwwllly boot from the external clone. (I could probably have done it all with Terminal while booted from the internal drive, but file operations with superuser permissions are too risky when there is a safer, slower way.)
I use a pair of cheap Seagate 2TB drives for Time Machine backup. Their speed does not really matter when the backups are happening in the background anyway. Always one drive is in my safety deposit box at the bank and the other is active. Swap every week or two. Good insurance against ransomware and other disasters. For cloning I have two smaller drives one of which still has a Mojave clone. I will soon update it to Catalina since I am finding Catalina gives noticeably better battery life and runs 64-bit software with decent speed. I have a Parallels virtual machine with Mojave to run the few 32-bit programs I still use.