Потрібно оптимізувати сайт на Joomla, дотримуючись рекомендацій інструменту Google PageSpeed Insights. Оскільки, в залежності від шаблону, ситуація може бути різною, як приклад візьмемо стандартний шаблон для Joomla - Protostar.
Розглянемо правила окремо
Оптимізуйте зображення
Для 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
Прибираємо скрипти і стилі
Перевіряємо ще раз:
Все б добре, але тепер не працює админка :), щоб не мучаться з шаблоном адміністративної частини, зробимо по іншому:
- У файлі libraries / cms / application / site.php шукаємо рядок з текстом: і міняємо на: потім рядок: так само міняємо на:
- У файлі libraries / cms / application / administrator.php шукаємо рядок: міняємо на
- Додаємо перевірку в файл libraries / joomla / document / html / renderer / head.php (для joomla починаючи з версії 3.5 - libraries / joomla / document / renderer / html / head.php):
Ми видалили meta-тег generator з front-end, залишивши його для адміністративної частини, тим самим по-перше трохи приховали сліди Jommla, а по-друге домоглися того, що конструкція
На жаль, на практиці все німого складніше, оскільки модулі і компоненти можуть додавати свої скрипти і стилі, то порядок їх завантаження досить чутливий. Однак загальна ідея не змінюється.
Статті по темі:
Добрий день. Не зовсім зрозуміло, як поміняти. Поміняти кожен рядок або конструкцію на рядок. Можливо було б краще дати більш докладний опис в статті. "Цей блок міняємо на цей блок" В файлі 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 шаблону)