Примерно 1.5 года назад появилась идея запустить Стартап по недвижимости. Для этого необходимо было сделать портал и максимально его облегчить. Эталоном скорости был выбран сервис Google Page Speed. И мы начали делать…


Работа по созданию сайта велась около 6 месяцев. По АПИ связали сайт с CRM системой. Механика работы получилась следующая: происходит входящий звонок клиента, который сразу попадает в CRM систему. Оператор уточняет пожелания клиента, вносит и сохраняет. Вся база при этом хранится в системе управления. Все объекты было решено также хранить в CRM системе, а на сайт сделать вывод по АПИ.

Синхронизацию решили сделать 1 раз в сутки ночью, чтобы не перегружать систему. После запуска системы получили показатель скорости 47 из 100. Удобство пользователя 74 из 100. Было решено точить до конца.

Что было сделано:
1) все фотографии объектов перенесли в crm систему и закешировали
2) собрали все стили и поделили их части, сделали асинхронную загрузку страниц
3) Настроили gzip сжатие
4) Убрали сверху когда загрузку скриптов
5) Сделали еще несколько манипуляций, о которых программист не признается )

В итоге получили данные 100/100, затем после установки кода яндекс метрики показатель опустился до 99/100 скорость загрузки и 100/100 удобство пользователя. Поскольку код метрики закешировать нельзя, решено было оставить так.

Потестить работу портала и посмотреть код можете тут: xelagroup.ru

Скрин замеров Google Page Speed
image
Поделиться с друзьями
-->

Комментарии (19)


  1. alexey-m-ukolov
    12.09.2016 21:31
    +5

    Вот как нужно писать такие статьи: Improving Smashing Magazine’s Performance: A Case Study.
    А не «мы что-то сделали, но разработчик не говорит что» на полстраницы.


    1. alexey-m-ukolov
      12.09.2016 21:48
      +1

      Ну и да — это прекрасная иллюстрация того, что PageSpeed не заменяет реальных знаний и понимания того, зачем все эти оптимизации проводятся и как работают браузеры.


  1. DistortNeo
    12.09.2016 21:36

    7 кб на страницу — это круто. Отдельный респект за меню на CSS. Правда, с отключенными скриптами все равно неюзабельно.

    У меня остался нескромный вопрос: зачем вам в CSS такие строчки?

    #header .header-top a {
        color: #fff;
        transition-delay: 0s;
        transition-duration: 0.4s;
        transition-property: all;
        transition-timing-function: ease;
    }
    


    Не очень приятно после каждого перехода по страницам смотреть, как съезжает меню.


  1. x893
    12.09.2016 21:42
    +2

    У меня при переходе по страницам возникает такое изображение
    image
    а через несколько секунд — нормальное.


    1. alexey-m-ukolov
      12.09.2016 21:46
      +5

      Это потому, что стили, вопреки стандарту, подключаются не в head, а зачем-то в конце body. Бездумная «оптимизация».


      1. x893
        12.09.2016 21:48

        Это я посмотрел — не понимаю зачем? Если визуально — коряво выглядит.


        1. alexey-m-ukolov
          12.09.2016 21:53
          +3

          Ну я и говорю — бездумная и бессмысленная «оптимизация». Зато 99 из 100.
          <sarcasm>
          Пользователи же качество сайта по PageSpeed Insights оценивают, а не своей головой.
          </sarcasm>


        1. DistortNeo
          12.09.2016 22:33

          Думаю, причина очевидна: разобраться в 650 кб мешанины правил CSS и вытащить оттуда действительно необходимые для корректного отображения сайта пару килобайт — задача не из лёгких.


        1. Denai
          12.09.2016 23:53

          Pagespeed попросил убрать лишние стили из шапки чтоб страница грузилась быстрее. Они и убрали.


      1. xakepmega
        12.09.2016 22:41

        можно было бы для каждой страницы юзать что-то типо uncss, который из всех css файлов выдерет только используемые селекторы и записать их в head через style


        1. DistortNeo
          12.09.2016 22:58

          А потом руками проредить до минимума.


    1. Gugic
      12.09.2016 21:51

      Это последствия deferred css delivery. За продвижение этой практики гугл многие ругают. Я для себя решил вопрос прелоадером, который устанавливается в display: none с последним стилем. Но это вообще-то тоже неправильно.


      1. alexey-m-ukolov
        12.09.2016 21:55

        Если в данном случае и руководствовались этой рекомендацией, то явно не поняли её сути и сделали всё неправильно.


  1. sentyaev
    12.09.2016 22:14

    Картинки забыли оптимизировать. Их бы нарезать.


  1. ANDRE888
    12.09.2016 22:20

    Одна реклама, 0 полезной информации. Контент сайта аналогично оставляет желать лучшего.

    1) все фотографии объектов перенесли в crm систему и закешировали

    Извините, но у вас на все объекты 1 фото. Что вы перенесли и закешировали?
    Чудеса дизайна
    image


  1. AlexTram
    12.09.2016 22:22
    -1

    alexey-m-ukolov, спасибо за ссылку, это мой второй текст, я еще учусь. Приятно, что комментируете комментарии каждого тут отписавшегося.

    DistortNeo, съезжающее меню — процесс оптимизации под Гугл, мне тоже не нравится, если честно. думаю потом либо вернем обратно, либо придумаем, как это сделать плавным.

    sentyaev, спасибо, сделаем.

    ANDRE888, это тестовые фото и тестовые объекты. Обязательно заменим на реальные. Скорость загрузки не меняется, уже проверяли.


  1. linakun
    12.09.2016 22:25
    +2

    [сарказм]Хорошая, интересная статья.[/сарказм]


  1. keydon2
    12.09.2016 22:51

    пятый пункт не раскрыт


  1. jaiprakash
    12.09.2016 23:12