Найти в Дзене
Full Stack

Как удалить и оптимизировать лишний CSS и JavaScript?

Оглавление

Когда ко мне пришла идея создания канала «YouGo в Яндекс.Дзен» – я решил, что буду выкладывать в Дзене полезную, но сжатую информацию, а на сайте развернутую и оптимизированную под поисковые системы.

И к тому времени, как я его полностью сверстал – у меня появилась необходимость оптимизировать верстку для того, чтобы она стала максимально легкая и соответственно, – супер суперскоростная.
Удаление, оптимизация и gzip-сжатие лишнего CSS и JS-кода на сайте.
Удаление, оптимизация и gzip-сжатие лишнего CSS и JS-кода на сайте.

К сожалению ни в Google, ни в Yandex я не нашел информацию о том, как удалить лишний CSS и JavaScript. Тогда я спросил у разработчиков на одном форуме и они мне подсказали о том, что подобного рода задачу можно решить с помощью консоли Google Chrome.

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

1. Ищем и удаляем лишний CSS и JS-код

Зайдите на свой сайт через браузер Google Chrome и нажмите F12, затем меню -> More tools -> Coverage.

Это консоль браузера Google Chrome.
Это консоль браузера Google Chrome.

Затем, перед вами будет вот такая картина, где вам нужно будет выбрать 2-ой вариант для того, чтобы оптимизировать нужный файл на сайте:

Второй вариант обновит страницу для того, чтобы сбросить кэш.
Второй вариант обновит страницу для того, чтобы сбросить кэш.

Нажимаем: Click the reload button to reload and start capturing coverage и вы выбираем файл, из которого собираемся удалить все лишние.

Консоль покажет все CSS и JavaScript-файлы
Консоль покажет все CSS и JavaScript-файлы

Выберите на абсолютно любой файл, который собираетесь оптимизировать и нажмите крестик (Close drawer).

Здесь нужно нажать крестик для того, чтобы увидеть лишний CSS-код.
Здесь нужно нажать крестик для того, чтобы увидеть лишний CSS-код.

Обратите внимание, строчки кода, которые слева подсвечены красным – означают то, что данные классы не используется на странице, а те, что зеленым – означают, что используются.

Слева можно увидеть ненужные классы в консоле.
Слева можно увидеть ненужные классы в консоле.
Важно! Не удаляйте лишний CSS и JS-код прямо в самих файлах – это займет огромное количество времени.

Вместо этого – просто откройте блокнот и вставьте в него все, что подсвечено зеленым. Ну, а далее скопируйте все его содержимое и вставьте в нужный CSS или JS-файл.

2. Оптимизируем CSS и JavaScript-файлы

В интернете имеется огромное количество веб-сервисов, с помощью которых можно решить данную задачу. Также есть куча инструментов на GitHub, но не все ими смогут воспользоваться т. к. нужно знать Node.js.

Но мы не будем на этом заморачиваться в то время, когда существуют следующие превосходные сервисы, решающие подобного рода задачи:

  • FreeFormatter – выравнивает, оптимизирует, преобразовывает HTML, CSS, JavaScript, XML, SQL и многое другое.
  • CSSO – сжимает и выравнивает CSS-код без потери валидации.
  • JavaScriptCompressor – сжимает скрипты без потери валидации.
  • HTML Minifier – просто сжимает HTML-код.
-7

Ну, а далее можно еще включить кэширование и gzip-сжатие для наших CSS и JavaScript-файлов. Для этого просто вставьте следующий код в файл .htaccess, который обычно находиться в корневой директории сайта:

<ifModule mod_headers.c>
<FilesMatch "\.(html|htm)$">
Header set Cache-Control "max-age=43200"
</FilesMatch>
<FilesMatch "\.(js|css|txt)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
<FilesMatch "\.(flv|swf|ico|gif|jpg|jpeg|png)$">
Header set Cache-Control "max-age=2592000"
</FilesMatch>
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>
</IfModule>
<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 5 seconds"
ExpiresByType image/x-icon "access plus 1 month"
ExpiresByType image/jpeg "access plus 4 weeks"
ExpiresByType image/png "access plus 30 days"
ExpiresByType image/gif "access plus 43829 minutes"
ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
ExpiresByType text/css "access plus 604800 seconds"
ExpiresByType text/javascript "access plus 604800 seconds"
ExpiresByType application/javascript "access plus 604800 seconds"
ExpiresByType application/x-javascript "access plus 604800 seconds"
ExpiresByType text/html "access plus 43200 seconds"
ExpiresByType application/xhtml+xml "access plus 600 seconds"
</ifModule>

Вышеприведенным кодом мы закэшировали наш сайт, теперь давайте еще сожмем наши CSS и JavaScript-файлы с помощью следующего кода, который также нужно вставить в файл .htaccess:

<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/css
<IfModule mod_setenvif.c>
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
</IfModule>

Подведем итоги в заключение

Ради эксперимента – проверьте сейчас свой сайт в PageSpeed и потом повторно после проведения всех вышеописанных процедур.

Скорость сайта должна взлететь, но это еще не все – в следующей статье я расскажу вам про оптимизацию картинок, формат WebP и многое другое.

-8
Обязательно подпишитесь на мой канал, чтобы не пропустить новые публикации. Также я советую вам посмотреть остальные мои статьи. Возможно, что в них вы найдете для себя уйму полезной информации.