If the colors of an optimized PNG image look dull, desaturated or washed out after optimization, the problem usually revolves around pictures saved with the PNG file extension and is considered an "edge case". The simplified explanation is that some PNGs have gradients that cannot be well optimized as PNG format. PNGs should almost always be reserved for logos or other simple graphics that don't need to have a lot of detail.
By converting the PNG to JPG before optimization, the output will end up being much smaller, and also the colors looking properly.
Note: If you use our plugin ShortPixel Image Optimizer (SPIO), instead of manually converting the pictures, you can enable the PNG to JPG conversion from the plugin settings.
Here is a comparison between the optimization for PNG vs JPG and also the resulting image when converted as JPG in both terms of size and quality. Note that before optimization, the original PNG weights 500kb, while its JPG counterpart is 334kb. After a lossy optimization, the output of the PNG is desaturated and the size reduced to 156kb, while the colors for the JPG look appropriate and the size is 73kb, which is much smaller.
Original PNG: 500kb
PNG after Lossy optimization: 156kb and washed out colors.
Original JPG (after being converted from PNG): 334kb
Lossy optimized JPG: 73kb and no color issues.
In conclusion, the simplest and most efficient solution is to convert your PNG to JPG before optimization. If you use WordPress and this solution doesn't help, please refer to this article Loss of color and saturation when uploading images to WordPress.