Часто сталкиваюсь с двумя ошибками, связанными с изображениями на сайте, которые появляются еще на этапе загрузки - большой размер и имена файлов на кириллице.
Размер изображений и расширение
Раньше всем было хорошо известно, что размер изображения должен быть ровно таким, который будет отображен на странице, но с увеличением скорости интернета, размера дискового пространства на хостинге это стало забываться и часто можно увидеть файлы размером 5МБ и больше.
При этом все работает, каких-либо проблем не наблюдается, почему бы нет? Давайте разберем несколько моментов. Сразу хочу сказать - бывают случаи когда большой размер оправдан, к примеру если необходимо рассмотреть какие то мелкие детали и в меньшем разрешении этого сделать не представляется возможным. В остальных случаях:
- Какой бы не была скорость интернета у пользователя, сервер в большинстве случаев отдает файл со скорость 1-2МБ/сек. неплохо? Да, но что лучше - увидит пользователь картинку сразу или в лучшем случае через 2-3 секунды?
- Если на сайте предусмотрено уменьшение изображений, эта проблема снимается, но чем больше исходник, тем большую нагрузку на сервер создает скрипт. Часто размер меняется не при загрузке, а во время обращения пользователя к изображению, вот здесь и могут возникнуть проблемы.
Пример: есть страница, на ней выводятся превью для 50 товаров, для каждого товара есть 2-4 миниатюры, большая часть из которых еще не созданы. Во время загрузки страницы у пользователя есть большие шансы получить вместо страницы или ошибку, или просто белый фон, без какого либо содержимого. Если изображения не уменьшаются динамически, нагрузку на сервер это практически не создает, но скорость загрузки может сократится т.к. забивается сеть. - Если изображение не прозрачное, лучше использовать JPEG, а не PNG т.к. размер файла в первом случае обычно меньше, а разница в качестве не видна.
Использование изображений больше 1000px по высоте обычно не имеет смысла
Имена файлов и кодировка
Еще одна распространенная ошибка - загрузка изображений с пробелами и кириллическими буквами в названии. Такие файлы будут нормально открываться, но бывают проблемы при переносе сайта на другой хостинг.
Пример: на сайт загрузили изображения "картинка 1.jpg" и "копия foto0.jpg", затем сайт решили перенести на другой хостинг, файлы скопированы, сайт работает, но на месте изображений пусто, а файлы на сервере уже выглядят как "картинка 1.jpg" и "РєРѕРїРёСЏ foto0.jpg". Здесь все дело в кодировке, с которой было подключение к серверу для копирования файлов.
Избежать этого можно используя кодировку utf-8, но где гарантия что про это не забудете, а проблема обнаружится уже после того как доступа к старому хостингу не будет, а бэкапов нет? Потому лучше изначально использовать в названиях файлов латинские буквы a-z, A-Z, цифры, символы - и _. Те же файлы, приведенные в качестве примера выше, лучше назвать так: "kartinka-1.jpg" и "kopija_foto0.jpg".