Доработка сайта Armosblok
Главная страница
Задача
На проекте были поставлены задачи
- Настроить интеграцию с amoCRM
- Оптимизировать фронт (добавить lazyload, оптимизировать и выбросить ненужное из css и js, сделать ассинхронную загрузку сторонних скриптов)
- Сверстать и добавить несколько блоков на страницах
- Разметку страницы пропустить через валидатор и исправить все проблемные места
- Добавить на сайт OpenGraph
- Пройтись по всему проекту и изменить вложенность заголовков h1-h6, где нет h1 - добавить.
- Адаптировать фронт для мобильных устройств
Решение
После обновления API в amoCRM появился новый и единственный способ авторизации. Без авторизации передавать данные не дает система, поэтому задача решается в несколько этапов - процесс получения ключа авторизации (каждый раз - он новый) и передача данных в нужную воронку. Был написан класс, который эту логику выполняет, метод которого применяется на событии onAfterResultAdd модуля form и передает нужны данные в систему.
Сокращены внешние запросы с других адресов (все сторонние вендоры перенесены в на хост, такие как swiper, lightslider, easydropdown, sly, jquery). Для jquery использована миграция 1.2.1, чтобы убрать ошибки, вызванные при использовании новой версии jquery на страницах с дилерами и контактами.
Реализована ленивая загрузка на картинках (статика, слайдеры и динамичные подгрузки контента в формах и в контактах на карте).
Внешние скрипты выведены в отдельные области для сеошников, чтобы не захламлять файлы header.php и footer.php. Создание структуры шаблона на проекте и удаление старого или ненужного кода. На фронте очищена консоль от всех ошибок, связанных с недостающими зависимостями, несуществующими переменными, ошибки связанные с версиями плагинов. А также после начал работ - вынесены все js из разметки страниц в файл, убран неиспользуемый код.
Переписаны все вызовы и события у использующихся элементов, что позволило использовать динамические элементы на странице без ошибок, которые возникали.
Перенесены инлайновые стили и дублирующиеся стили с других страниц. То же самое касаемо javascript'а на страницах.
Уменьшен вес шрифтов, путем вырезания лишних служебных символов. В случае с иконочными шрифтами - подготовка каждой иконки (были объектами, а нужны контуры) и создание нового набора. Новые наборы шрифтов стали легче.
Настройка общего кеширования на страницах. Вывод данных заменен с некешированных циклов, на кешируемые компоненты - время получения страницы уменьшилось.
Оптимизированы карты Google Maps, добавлены во внутрь динамического контента показ как форматов png, так и webp - это для балунов и фотографий точек на карте.
Перевод всех gif-анимаций в mp4 и замена их на сайте с добавлением lazyload, по причине того, что одна gif весила 11 Мб, когда версия в mp4 - 1.3 Мб.
Цветовая палитра
Макеты сайта
Результаты
На проекте используется заготовка от regiomedia/bitrix-project для 1C Bitrix проекта. В процессе анализа проекта были обнаружены сомнительные вставки скриптов, что в последствии стало ясно, что сайт "заражен". После автоматического и ручного очищения кода проекта.
В процессе работы над интеграцией amoCRM была переписана логика обработки форм. Был добавлен компонент по работе с формами и написано дополнительное поведение по отправке данных, которое не нагружает обработчик формы. Данные передаются по событию, тем самым позволяя разгрузить ощутимое время отклика после заполнения и отправки данных пользователем (до оптимизации - нужно было ждать 1-3 сек, пока на стороне хоста произойдет авторизация в amoCRM и не будут переданы данные в систему). Добавление событийной отправки позволило уменьшить время отклика с каждой формы, пользователь теперь не ждет пока данные отправятся в amoCRM.