Custom profiling or finding a canvas-specific profile for your printer/ink is what I found worked and that's just the start. You also should consider coating to make your images pop and to add protecting from stretching and handling as part of your finishing.
Some of the canned profiles I used were fine, but then when I went to canvas I now use, it wasn't quite good enough. I took the Colormunki and did my own, testing both matt and photo black inks. Once I got a profile, I took the Bill Atkinson test image and ran both to see where things were.
Using the photo black on my printer gave me the best results and the gradients were right-on. But because the canvas sucks up ink, the blacks are week. Since my prints are usually framed and ready to hang, they need both UV and scuff protection.
Coating is one of the secrets, IMO, to both finishing the process and making the canvas look its best and as good as nice coated paper.
There are a few ways you can coat. I first tried using spray can, but they only offer UV protection and you can see the spray patterns. Others use HVLP systems, much as one would in auto body refinishing, but that takes lots of practice and space when you've got to do a bunch or is a pain to set-up and coat if you only have a couple.
I use two different methods, the roller method and a Daige Ez Glide.
When I have just a couple of prints, I use a foam roller from a paint store. The key is to really soak up the surface and keep the roller moving both along the length and width of the print until it all evens out. It will have a nice wet and glossy look to it. I'm using Clear Sheild LL diluted with 20% water which helps make the surface even. The Clear Shield is available from matt to satin to sem-iglossy to glossy. The semi-gloss works for me.
When I have a bunch of prints, say 10 to 15 or more, I use a Daige Ez Glide. This is a trough with a spreader and squeegee and you simply pull the prints through. I've found that the Clear Shield LL with 20% water works well. I pull the print through and then hang it to dry. After about 20-30 minutes, I do a second coat which makes the surface pretty nice.
When using the Daige, you'll need to add about 3-4 inches to one edge of your canvas to pull through the trough and to use to hang on a cloths line. I also add at least an inch to the other sides from drips, etc., then trim it off as needed. The Daige takes little time to set up, but needs about 1/2 hour of cleaning using water after each use, I've found.
Once the images are fully dry in an hour or so, the canvas is good to go and looks so much better than uncoated. If you are going to stretch your prints, the liquid coatings will help keep the image more pliable and durable, compared to uncoated prints.
Before I started the Clear Shield, the canvas edges would crack and the images scratched off pretty easily. Stretching was always an adventure. Now I don't worry quite as much about the handling after they are coated.