Hi there,
it looks pretty sharp to me.
However, this issue arises when images are being rescaled.
Lets break that down on your site:
Your Original Full Image is 900px wide.
Woocommerce single product size is set to 550px.
GP Woocommerce > Product Image Area Width is set to 40% which is 40% of 1100px ( Primary Content ) = 440px.
I would do this:
Original size: 1000px.
Woocommerce single product size: 500px
GP Product Image Area Width: 45% = considering woo margins this will equal 500px.
So your original image will be exactly halved ( which is less lossy then an odd percentage ) in size, and will be displayed at that exact size.
The other thing to note is that WP compresses images on upload which can be disabled with this PHP Snippet:
add_filter('jpeg_quality', function($arg){return 100;});
Note existing images will need the Regenerate Thumbnails plugin to update them.