Оптимізація сайту joomla, слідуємо рекомендаціям google pagespeed insights

Потрібно оптимізувати сайт на Joomla, дотримуючись рекомендацій інструменту Google PageSpeed ​​Insights. Оскільки, в залежності від шаблону, ситуація може бути різною, як приклад візьмемо стандартний шаблон для Joomla - Protostar.

Оптимізація сайту joomla, слідуємо рекомендаціям google pagespeed insights

Розглянемо правила окремо

Оптимізуйте зображення

Для PNG краще використовувати OptiPNG або PNGOUT (друга стискає краще).

Для файлів JPEG рекомендується використовувати jpegtran або jpegoptim (доступно тільки для Linux, виконувати з параметром --strip-all).

Щоб рекурсивно обійти папку, потрібно виконати команду:

find / var / www / site / images / -type f -name * .jpg -exec jpegoptim --strip-all -p '<>'\;

Можна так само використовувати сервіс TinyPNG.

Для виконання даного пункту існує онлайн сервіс refresh-sf.

Мабуть найцікавіший пункт, ідея в тому щоб винести скрипти і файли зі стилями з header (верхній частині сторінки) якнайнижче наприклад в footer.

Завантажуємо google-шрифт асинхронно

Pagespeed Insights вважає, що шрифти, які завантажуються з fonts.googleapis.com, уповільнюють відображення сторінки. Для виправлення скористаємося способом, запропонованим на сайті css-live. Спочатку шрифт шукається в локальному сховищі. якщо його там немає завантажується з сервера

Створимо папку / protostar / fonts і помістимо туди два шрифту

opensans-regular-webfont.woff
opensans-regular-webfont.woff2
Для створення шрифтів можна використовувати сервіс webfont-generator.

Створимо файл /protostar/css/fonts.css, з вмістом

підключаємо css

Прибираємо скрипти і стилі

Перевіряємо ще раз:

Оптимізація сайту joomla, слідуємо рекомендаціям google pagespeed insights

Все б добре, але тепер не працює админка :), щоб не мучаться з шаблоном адміністративної частини, зробимо по іншому:

  1. У файлі libraries / cms / application / site.php шукаємо рядок з текстом: і міняємо на: потім рядок: так само міняємо на:
  2. У файлі libraries / cms / application / administrator.php шукаємо рядок: міняємо на
  3. Додаємо перевірку в файл libraries / joomla / document / html / renderer / head.php (для joomla починаючи з версії 3.5 - libraries / joomla / document / renderer / html / head.php):

Ми видалили meta-тег generator з front-end, залишивши його для адміністративної частини, тим самим по-перше трохи приховали сліди Jommla, а по-друге домоглися того, що конструкція НЕ буде завантажувати скрипти для front-end, але завантажить їх для адмінки.

На жаль, на практиці все німого складніше, оскільки модулі і компоненти можуть додавати свої скрипти і стилі, то порядок їх завантаження досить чутливий. Однак загальна ідея не змінюється.

Статті по темі:

Добрий день. Не зовсім зрозуміло, як поміняти. Поміняти кожен рядок або конструкцію на рядок. Можливо було б краще дати більш докладний опис в статті. "Цей блок міняємо на цей блок" В файлі libraries / cms / application / site.php шукаємо рядки з текстом:
$ Document-> setGenerator ( 'Joomla! - Open Source Content Management - Version'. JVERSION);
$ Document-> setGenerator ( 'Joomla! - Open Source Content Management');
і міняємо на:
$ Document-> setGenerator ( '');

Сергій, спасибі за коментар - виправили

Головне не міняти порядок завантаження скриптів, можна переносити частинами (переніс один рядок, оновив сторінку - НЕ з'їхало переносиш наступну).
Залежно від шаблону і встановлених компонентів не завжди виходить перенести все.

Просто кошмар. Пропонувати в якості вирішення проблеми правити ядро ​​joomla - жахлива ідея. Через таких ось порадників, які не знають люди гроблять сайти і потім бідкаються про них на усіляких форумах. До того ж, pagespeed показує швидкість рендера контенту (якщо дуже узагальнено), але не швидкість завантаження сайту, тому гнатися за 100/100 - безглуздо.

Так, дійсно колега, відкидаючи пропонуйте. Я повністю згоден з тим що хак ядра - це край крайнього випадку, але може бути є менш болючі методи.
Я колись нарив ось такий спосіб (Прописати після head інклюд в index.php шаблону)