Error: SQLSTATE[HY000]: General error: 2006 MySQL server has gone away
Try enabling the logging feature (Write output to concrete5 log) in the Advanced Settings section of the Image Optimizer page. Then, rerun the job and check the log for details. Also, you may want to run the job via the CLI (command line interface) instead of via the Automated Jobs page, to prevent time-out errors. (see question "Can I automate image optimization?")

Will the quality remain the same?
The optimizers are not 100% lossless, but the differences are not noticeable. I recommend using these tools for the majority of websites. In case you run a websites that for example sells images, I'd do a test in a development environent first.

Will it create a backup?
No. On purpose it doesn't create backups. It'd create a huge amount of data for all file versions, cache file, and thumbnails.

Can I exclude files?
Yes. You can add the 'Exclude from Image Optimizer' attribute to files to prevent them from being optimized.

Will it work on Windows?
The local optimizers won't work on Windows. But the TinyPNG integration does work on Windows.

How can I see what has happened?
There is a page "Optimized Images" that shows all the optimized images and how much space was gained. You'd also peek into the database (ImageOptimizerProcessedFiles table), or enable logging.

Can I automate image optimization?
Sure. You can execute Image Optimizer via the command line interface (CLI).
For version 2.5.0 you can use: './concrete/bin/concrete5 image-optimizer:optimize'.
For version 3.0.0 and higher you can use: './concrete/bin/concrete5 c5:job image_optimizer'.

How often does this job need to run?
Depends. On websites where lots of new images are added each day, I recommend to run the job each night. Once a file is already optimized, it will simply skip it the next time. So performance wise there is no reason to not run it on a regular basis.

What happens if I clear the cache?
An event will be triggered and Image Optimizer will truncate the table that holds information about which cache files have been optimized. Next time the job runs, it will optimize all images again. So yes, it's safe.

What happens if I run the job and don't have any optimizers installed or configured?
Nothing. It will fail silently and leaves images untouched.

Can I re-run the optimizers?
Yes, you can do this without risk. It makes sense in case you hadn't installed one of the optimization tools at the time the job was run. You can do two things: 1) Go to the settings page and hit the "Clear log of processed files" button, or 2) Reinstall the add-on. This is because the add-on will remove the database table on deinstallation.

What is the 'Reset files' button for?
It is especially useful if you have installed a new optimizer. Each time the optimizer runs, it will mark files as 'processed'. By clicking the button it will clear the log of all the processed files, allowing you to run the optimizer again on the same files. However, by clicking it, you'll remove all optimization statistics.

What is the 'Batch size' configuration setting?
The number of files the job will handle for each 'batch'. Lower this value in case the job times out. This might happen when very large images are optimized or e.g. if the max_execution_time (a PHP setting) is set too low. I recommend using the CLI modus though!

Why doesn't this work with for example Amazon S3?
Simply because I don't have enough experience with these file storage locations to support this.

Will EXIF data be removed?
Yes, all EXIF data will be removed to reduce file size.

Does it work with local file storages?
Yes, that should work fine.

Will files be overwritten?
Yes, to save disk space, images are overwritten after optimization. If don't want this, you can enable optimization for only cache images, or only thumbnail type images.

What is TinyPNG?
It's a cloud service that does optimization of JPEG and PNG images. You can obtain an API key to process 500 images per month for free. The TinyPNG service is configured to keep copyright information in the image data.

Which file types are supported?
TinyPNG supports JPEG and PNG images. If you have all local optimizers installed, JPEG, PNG, GIF, and SVG are supported.

Why are PNGs skipped in TinyPNG?
PNGs are only skipped in older concrete5 version because there was a bug in the Imagine library. See https://github.com/concrete5/concrete5/issues/3999. In concrete5 8.5.0a2+, PNGs will be included.