The problem with your example image is jpeg artefacts. Social media sites like twitter/facebook/instagram rescale (resample) and turn all images into jpeg and add lots of compression. This is to keep the file size small so that images can be quickly downloaded on mobile devices with slow internet connections, and also to save bandwidth to reduce the strain on their servers.
The only real fix is to optimise the images to jpeg yourself, rather than allow these sites to do it for you. Try to rescale your images to the exact size they will be displayed at, save as jpeg, and add as much compression as you dare while trying to keep the file size at 100kb or less.
Facebook has a page that explains how to get the best out of your images - link here
Alternatively, don't use these social media sites to share your images. Use other services which don't mess with your images so much.