Перейти к публикации
4.3.6

Рекомендованные сообщения

Dyatel

Много спрашивал ранее в темах. Про сжатие и объединение css и js-НЕ СМОГ. Слаб в программировании. Хотя это есть уже. Как заявлено -по умолчанию. Пошел путем оптимизации.

Что сделано

При подключении плагинов, многие подключают свои скрипты.
В частности я поставил слайдер и он тащит с того же  clodflare скрипт swipfy

Я создал такую же иерархию папок и скачал туда стили и скрипты плагина.
Вынес все это на поддомен. Выносить на отдельный домен не вижу смысла в целях экономии денег. Есть разные мнения. Что это даст небольшое увеличение так как отдельный домен предполагается на отдельном ip, Поддомен же на этом же Ip мол ускорения не будет.
Если есть доступ в конфиги апача, а у меня к апачу доступа к конфигам нет, то можно было бы там прописать для поддомена виртуальный сервер и получилось бы как отдельный домен. Но у меня такой возможности нет. Едем дальше.
но так как общее ускорение сайта складывается из милисекунд, то по GTMetrix после выноса на поддомен ускорение есть. Видимо за счет снижения потоков в браузере при загрузке.
Далее... на том же GTMEtrix скачал оптимизированную версию скрипта слайдера. Что тоже дало мили ускорение. И баллов Стало 84/62

Посмотрев код страницы, я увидел штук семнадцать СТИЛЕЙ скриптов шрифтов от гугла которые вшиты в тему и их просто так не убрать. Можно тупо удалить, но вдруг они нужны.
По умолчанию все равно загрузится основной шрифт если все удалить. Я закоментил вдруг пргодится. Прогон через GTMetix (к нему я буду обращаться часто) дал увеличение по данным раздела  YSlow с 62% до 74% Согласитесь...прирост очень большой. Стало уже 85/74

Далее...
перенес еще на два поддомена часть картинок и часть на основной домен. Больше трех адресов, с которых сайт будет тянуть картинки-нехорошо.

Это дало прирост


Само собой следуя рекомендациям заменил картинки требующие оптимизации.
Все победить не смог. Там типа coockie. объединение скриптов и т.д. в силу настроек основного сайта и особенностей IPS
Оптимизировал все стили.

Очень не простая задача оптимизировать файлы шрифтов с иконками. Эти файлы могут использовать только одну две иконки, а подгружается весь файл. Скажу сразу, если знаете какие именно иконки у Вас есть, посмотрите как они в коде называются, найдите их открыв файл шрифта, остальное удалите.
Это трудно. Но стоит того.
Скажу так же, что не пользуйтесь он-лайн сервисами по работе с шрифтами. только для конвертации если нужно. работайте лучше на ПК например с помощью той же FontLab. Но это моё личное предпочтение.


Проверяйте каждое действие. Так как по рекомендациям того же Page Speed от гугла вроде стало лучше, а скорость бывает существенно падает по тем же замерам на Pingtools,
Это важно. По малым шажкам улучшайте показатель. Задача-залезть в зеленую зону..

Далее....

в настройках публикации есть опция загрузки картинок чрез imageproxy
Я это дело включил. И увидел падение pagespeed  и yslow на gtmetrix Устранил так:
Вынес картинки из боковых меню в папку с форумом. т.е. вернул с поддомена обратно.

На некоторых меню вместо кнопок в кол-ве 6 шт. (а это отдельная картинка. Каждая кнопка) создал в стиле отдельный class с общим фоном. В меню подключил class и прописал надписи. Что тоже дало увеличение показателей. Такое планирую сделать с остальными боковыми меню. еще не сделал.


У меня в шаблоне есть опция вынесения скриптов и стилей в конец перед тегом body. Я ее включил. Опять увеличение.

Ну и htaccess...

Само собой GZIP+кэширование+Etag проверка
Способ сжатия стоит проверять. Один из трех работает лучше. Остальные варианты могут просто не работать. GZIP включить у хостера обязательно.
Подключаться на тот же CDN я не стал. Попробовал бесплатный тариф на CloudFlare на основном сайте и понял, что мой сайт настроеный вручную работает быстрее чем через CloudFlare. По крайне мере у меня.
Тот кто будет работать с CDN, не забудьте если прекратите им пользоваться, удалить свой сайт из CDN и переписать у регистратора обратно NS записи. Иначе возможны неприятные сюпрайзы.


В htaccess возможны разные варианты. И есть тот. который однозначно даст результат. После долгих танцев:

У меня это выглядит так:

#Specifying a character set in HTTP headers - utf-8 по GTMetrix
AddDefaultCharset UTF-8
AddCharset UTF-8 .htm .html .css .js .woff .woff2 .woff2?v=4.7.0

# сжатие text, html, javascript, css, xml:
<ifModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>

<IfModule mod_headers.c>
  <FilesMatch "\.(js|css|xml|gz)$">
    Header append Vary: Accept-Encoding
  </FilesMatch>
 
  <filesMatch ".(bmp|ico|pdf|flv|jpg|jpeg|png|gif|js|css|svg|swf|tif|tiff|xml|html|htm|php)$">
Header set Cache-Control "max-age=604800, public"
</filesMatch>
<FilesMatch "\.(bmp|css|flv|gif|ico|jpg|jpeg|js|pdf|png|svg|swf|tif|tiff|xml|html|htm|php)$">
        Header set Last-Modified "Mon, 31 Aug 2009 00:00:00 GMT"
    </FilesMatch>
</IfModule>


<FilesMatch "\.js$">
  RewriteEngine On
  RewriteCond %{HTTP_USER_AGENT} !".*Safari.*"
  RewriteCond %{HTTP:Accept-Encoding} gzip
  RewriteCond %{REQUEST_FILENAME}.gz -f
  RewriteRule (.*)\.js$ $1\.js.gz [L]
  ForceType text/javascript
</FilesMatch>

<FilesMatch "\.css.gz$">
  ForceType text/css
  Header set Content-Encoding: gzip
</FilesMatch>

# Перенаправление на gzip файлы
AddEncoding gzip .gz
 <FilesMatch "\.js.gz$">
  ForceType text/javascript  
  Header set Content-Encoding: gzip
</FilesMatch>

<FilesMatch "\.css$">
  RewriteEngine On
  RewriteCond %{HTTP_USER_AGENT} !".*Safari.*"
  RewriteCond %{HTTP:Accept-Encoding} gzip
  RewriteCond %{REQUEST_FILENAME}.gz -f
  RewriteRule (.*)\.css$ $1\.css.gz [L]
  ForceType text/css
</FilesMatch>

# Кэш статики
FileETag MTime Size
<IfModule mod_expires.c>
 
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType application/javascript "access 1 month"
ExpiresByType application/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 7 days"

</IfModule>


Отдача сжатых стилей у меня получилась. По нескольким причинам. Описывать не буду. Хотя всё сжал в gz и загрузил на сервер

Кэширование статики у меня не получилось возможно из-за настроек основного домена.

Это если вкратце
На данный момент 99/79 А это уже не плохо.

Потом если, что еще получится-допишу.

 

Pingdom свое гнет. еще не устранил.

1636374304_.thumb.png.a3b1ba3597dfdcd8623b18e5f8fae67e.png

Изменено пользователем Dyatel
  • Нравится 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Dyatel

Да.... При первоначальной загрузке может долго грузиться из-за кэширования на стороне пользователя. Потом все ок

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Sursline

Сколько... сколько ты на это потратил времени? Это же просто... а... жесть! Удачи! Красавчик!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Dyatel

Не )))) если ты подумал, что я с момента первого поста по этому поводу и до настоящего времени, то конечно же нет.

 

Я же работаю. Руки доходят-делаю. Времени нет-не делаю

Ну а за красавчика спс )))

  • Смех 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×