
Аудит интернет магазина finewall.ru
Цели аудита интернет магазина

Проведенные работы
Проверка базовых настроек и безопасности
Мы любой аудит начинаем с проверки базовых настроек сервера, т.к. уже тут нас может ждать масса неприятных сюрпризов. У клиента арендован достаточно дорогой выделенный сервер, при этом быстродействие сайта оставляет желать лучшего. Как и ожидалось, из доступного объема памяти в 64 ГБ, было распределено только 8. Остальной объем простаивал без использования.
Следующий пункт проверки - актуальность версии системы. Она отстала на 3 года, а за это время разработчики Битрикс достаточно хорошо оптимизировали работу каталога.
Проверили наличие агентов(периодических задач) и настройки их выполнения. Они были настроены не оптимально, в результате чего пользователи видели "зависание" сайта на несколько десятков секунд или даже минут. Полагаю, многие из них уходили, не дождавшись завершения работы.
Анализ безопасности показал так же несколько проблемных моментов. Помимо откровенных дыр, позволяющих выполнять произвольный код, на проекте присутствовало несколько файлов, позволявших подключаться в к базе данных напрямую. По всей видимости их использовали на этапе разработки, и забыли удалить после нее.

Технический аудит кода
Самое грустное нас ожидало "под капотом" интернет магазина. Дело в том, что сайт разрабатывала и поддерживала SEO компания, а они редко обладают хорошими знаниями в веб разработке. В результате использовались просто ужасные технические решения, которые при увеличении количества товаров и свойств создавали огромную нагрузку. Дальше приведем несколько примеров.
Хуже всего работал список товаров. Без использования кеша скорость работы бэкенда доходила до 30 секунд. При этом выбирались данные, которые вообще никак не использовались на проекте. Многие запросы были написаны очень избыточно и были далеки от оптимальных алгоритмов. С кешем ситуация тоже была не очень. Один только код, который выбирал данные для мета тегов отрабатывал 3 секунды. И это каждый хит.

Детальная карточка товара так же имела целый ряд проблем. Без кеша она отрабатывала за 5 секунд. Она состояла из множества блоков, а данные для них выбирались все вместе. Опустим за кадром оптимальность получения данных, но его можно было в принципе избежать при динамической загрузке блоков. Таким образом пользователь быстро получает базовую страницу, а все остальное загружается после начала взаимодействия с сайтом.
Из общих проблем было отсутствие отложенной загрузки изображений, из за чего сайт в целом медленно грузился. Были проблемы с картой сайта, которая не обновлялась уже больше года. При изменении настроек компонент отаваливалась карта сайта, редактировать сайт было очень неудобно
Над проектом работали
