Поработал над Travelfaqs

· автор BaRoN · На чтение уйдёт 3 минуты · (434 слова)

Как уже писал раньше, прикупил себе сайт travelfaqs.ru в надежде и дополнить его чем-нибудь полезным, и улучшить. К сожалению, работал (да и работает) сайт с небольшим скрипом. По большому счёту, основных проблем было две: слишком большое количество блогов в меню (каждый со своей аватаркой), и то, что все скрипты загружались ещё в разделе head, мешая быстрому рендерингу сайта, объединение ассетов происходило лишь частично. Попробовал это дело несколько оптимизировать. Начал с HTTPS + HTTP/2, просто средствами Caddy. Честно говоря, не особо помогло, у Chrome даже иногда не дозагружались все ресурсы.

Потом поработал над ассетами. Сайт работает на движке AltoCMS, минификация и объединение стилей и скриптов предусмотрены движком, но используемые плагины, к сожалению, “тянут одеяло на себя”, в итоге минифицированные бандлы получались слишком маленькими (и их было много). В результате все CSS я соединил в один бандл (для чего пришлось немножко поковыряться в движке AltoCMS), а с JS всё чуть хуже. Некоторые скрипты получили атрибут defer, чтобы не мешали началу рендеринга сайта. Некоторые скрипты удалось объединить, некоторые - пока что нет. Буду ещё продолжать работу в этом направлении.

Тем не менее, стало понятно, что это помогает “не очень”. Google PageSpeed показал рост индекса с 14 до 15 (максимально возможное число - 100). Стало понятно, что единственный вариант - это уменьшение количества картинок. Пришлось лезть в стандартный скин, добавив кастомные шаблоны для меню. Вместо того, чтобы показывать картинку при помощи тэга <img>, я объединил флаги стран в CSS-спрайт, и выводил их просто через <span>. Теперь вместо того, чтобы блокировать загрузку, флаги загружаются с некоторой задержкой. Учитывая то, что они вообще говоря, и не видны - очень хорошее улучшение. Google со мной согласен, производительность сайта выросла до 41 (максимально возможное число всё ещё 100). Буду стараться улучшить индекс хотя бы до 90, как на этом блоге.

Нужно поработать над скоростью самой AltoCMS, сейчас главная страница генерируется 1.3-1.7 секунды, что медленно (чаще всего 1.3-1.5 секунды). Любопытства ради попробовал переезд на PHP7. Скорость улучшилась до 0.8-1.8 секунд (возможно, иногда возникающее выросшее время - просто статистическая погрешность). Средняя скорость генерации страницы, впрочем, менее секунды. Google мои потуги, впрочем, не оценил. Индекс производительности вырос лишь до 42 Впрочем, возможно, это и верно. По большому счёту важно лишь то, как воспринимает сайт обычный пользователь, а для пользователя скорость загрузки улучшилась всего лишь с 3 секунд до 2.5 (то есть на 16.6%), что конечно хорошо, но когда время улучшается с 1.4 до 0.8 секунды (почти вдвое) - это звучит гораздо лучше.

Для сайта написал пока что всего лишь две статьи, и починил RSS. В громадьё планов были внесены заметные корректировки :-) На этой неделе доведу сайт до ума технически, а затем уже займусь наполнением.

Полезное