I'm creating my Magento 2, and I'm not sure what kind of images I have to use. What is the best extension? and what size should the image have to upload it?
Your question is not clear enough.
What do you mean by "What is the best extension?"
- And what size of which picture?
If you are asking about product picture, I belive it is 800 x 800
The way to go about images dimensions is to use the largest width you can display in your front-end. Resize down can look good, resize up is no good for images.
It all depends upon the level of zoom you would like to achieve.
I believe that the base image is the main image of the product detail page and it should be two or three times larger than the container.
So, if you want to offer great product magnification experience to your customer, then upload 1100 X 1100 pixels; otherwise, 470 X 470 pixels is fine.
My recommendation to you is that you should upload the largest size and let the Magento render the sizes needed for each image role - Thumbnail, Small Image, Base Image, Swatch.
As far as I know, a lot of stores are implementing images in modern WebP format since it's smaller in size than old PNG and GPJ, especially when the website performance is concerned.
However, I would rather use Magento 2 WebP Images extension to convert images automatically than upload images already converted with some online WebP converter. Not all browsers support WebP format yet. So it could be the problem once you upload images in WebP.
The WebP images module is better since it creates a copy of your PNG or JPG image and displays it to people who come from those non-web browsers.
Moreover, you can choose the size and quality you want images to be converted to and manage the website performance that way.