Продолжаю тему ускорения сайта, теперь передо мной ещё один пункт, который мне подсказал заботливый Google.
Удалите из верхней части страницы код JavaScript и CSS, блокирующий отображение.
Сейчас попробую разобраться, что там лишнего и как удалить лишний JavaScript и CSS?
Тесты, я напомню, я произвожу этим сервисом: developers.google.com, где в отношении JavaScript и CSS мне был дан конкретный совет:
Как видите, у меня это самая большая проблема, 8 скриптов подгружается сразу и из-за этого первый экран загружается не так быстро, как хотелось бы.
Так же есть 10 css файлов, которые тоже не оптимизированы. Ну что же, будем решать проблему!
Как удалить из верхней части страницы код JavaScript?
По этому вопросу претензии примерно такие:
Удалите код JavaScript, препятствующий отображению:
- _https://prostolinux.ru/…-includes/js/jquery/jquery.js?ver=1.10.2
- _https://prostolinux.ru/…s/jquery/jquery-migrate.min.js?ver=1.2.1
- _https://prostolinux.ru/…query-ui-1.8.10.custom.min.js?ver=1.8.10
- _https://prostolinux.ru/…ial-textboxes/js/wstb.js.php?ver=3.10.60
- _https://prostolinux.ru/wp-includes/js/tw-sack.min.js?ver=1.6.1
Недавно нашел интересное решение: в function.php нужно вставить код, который будет давать команду нужным нам скриптам загружаться не сразу:
1 |
[crayon-650d494b78f09526324730 inline="true" ]function jquery_in_footer() { wp_register_script( ‘tie-tipsy’, get_template_directory_uri() . ‘/js/jquery.tipsy.js’, array( ‘jquery’ ) ); wp_register_script( ‘tie-easing’, get_template_directory_uri() . ‘/js/jquery.easing.1.3.js’, array( ‘jquery’)) ; } |
[/crayon]
В примере добавлено два скрипта, но мы добавляем сколько угодно, и именно те, которые тормозят загрузку страницы. Попробовал применить это решение — у меня оно не сработало, может что-то не так делал?
Сам google советует в скрипт вставить атрибут async, который делал бы его загрузку асинхронной. Но это решение подходит только для внешних скриптов, например, этот атрибут async можно вставить в script рекламы Яндекс Директ, если у вас его реклама выводится в первом экране.
У Яндекса есть и асинхронный код, но он у меня вызывал проблемы — если один блок с асинхронной загрузкой, а второй нет, то показываться будет только один из них. Но сейчас не об этом…
Оптимизировать плагины таким образом трудно, нужно лезть в код каждого плагина и прописывать в него этот атрибут, или его альтернативу. Я не программист и так поступать не буду. К тому же если вы постоянно обновляете плагины, то все ваши труды пропадут после обновления.
На удивление себе я нашел другое, очень простое решение этого вопроса — установил плагин Asynchronous Javascript. После его установки получил результат:
Как оптимизировать работу CSS?
Напомню список претензий:
Оптимизируйте работу CSS на следующих ресурсах:
- _https://prostolinux.ru/…wp-special-textboxes.css.php?ver=3.10.60
- _https://prostolinux.ru/…plugins/wp-ds-blog-map/wp-ds-blogmap.css
- _https://prostolinux.ru/…t/themes/rockwell_new/rockwell/style.css
В идеале нужно сделать так: взять все данные из этих css файлов и переместить в основной stile.css, а в самих плагинах отключить запрос к ним. Но как понимаете — это дело долгое и нудное, таящее под собой много подводных камней. Может быть в будущем я так и сделаю, но пока у меня нет столько времени и опыта.
Решить же вопрос можно установкой плагина, который сам объединит все стили в один файл. Плагина, который бы выполнял только эту функцию не нашел. Поэтому расскажу о плагине, который делает все сразу, и удаляет скрипты, и оптимизирует css.
Как оптимизировать все сразу?
Я решил себе установить плагин Autoptimize, который оптимизирует и скрипты, и css одновременно. После установки плагина нужно лишь зайти в его настройки и поставить галочки в нужном месте:
Если теперь посмотреть на исходный код страницы, то там оптимизированная КАША, в которой без бутылки не разобраться.
После выставления галочек в нужном месте я получил ОТЛИЧНЫЙ результат! ВСЕ ПРОБЛЕМЫ ИСЧЕЗЛИ!
Оптимизировать код HTML?
Оптимизировать код JavaScript?
Look for scripts only in <head>? (deprecated)
Оптимизировать код CSS?
Inline all CSS?
Save aggregated script/css as static files
После этого правда у меня перестал работать плагин, который фиксирует виджет, но это совсем не проблема, скорость загрузки сайта намного важнее. А еще важнее угодить дяде Гуглу…
Хочу так же упомянуть об одном нюансе: у меня на этом сайте адаптивный шаблон, и если использовать его, то плагин при отображении мобильной версии не может устранить все проблемы до конца.
Когда же я включаю плагин мобильной версии, то никаких ошибок не остается. Я еще раз убедился, что лучше использовать мобильную версию сайта, чем адаптивный дизайн.
Еще один подобный плагин — это WP Minify Fix, делает он то же самое, но он мне меньше понравился, а может я просто в нем не до конца не разобрался.
Я понимаю, что идеально все это делать без плагинов, вручную, но это очень долго и муторно и оно того на самом деле не стоит, ведь даже добившись оценки 100, вы не выведете сайт в топ — скорость загрузки сайта лишь ОДИН из сотни факторов ранжирования, путь и достаточно важный.
Но сделать все что можно — нужно!
Вот что посоветовали мне в соц сетях:
javascript перенесите в подвал, в район перед закрывающим тегом /body, css оптимизируйте(сожмите) с помощью любого специализированного онлайн-сервиса, читаемые копии css сохраните пригодятся )))
а к теме (в голове) подключите сжатые, особо видимого прироста скорости не получите, но гуглю в какой то мере успокоите))) jquery-migrate если у вас ничего не завязано на старые версии jquery(т.е всё работает при переходе на новые) можете смело отключить(проверьте)
Не заметил что вы особо пользуете плагин Lightbox у себя, рассмотрите вариант его отключения.
стили в подвал — это извращения, имхо))
а вот google-analytics и прочие счетчики отлично себя чувствуют там же в подвале))) и т.д….
Решил отключить эти две ссылки из header.php
_link rel=»stylesheet» href=»/css/jquery.lightbox-0.5.css» media=»screen» />
_link rel=»stylesheet» href=»/css/superfish.css» media=»screen» />
lightbox — это отвечает за вывод картинок, которые увеличиваются при клике на них. Я такое не использую и пока использовать не буду.
superfish — Добавляет JQuery SUPERFISH эффекты для большинства меню WordPress. У меня никаких эффектов нет и они мне не нужны, я стремлюсь к простоте и чистоте в дизайне.
Спасибо за подсказки, буду пробовать на своем интернет-магазине…
Приветствую. У меня такая же петрушка с одним из сайтов! Даже перенос всех js в подвал не помог ( ну хоть бы для приличия один процент приплюсовал..ан-нет, как было 87% так и стоит) Все вернул обратно.
Двиг: Instantcms 1 10 4
+ в карман социалки автору за статью )) не я значит один такой )
Тут по моему важно сделать то, что можно, идеала не достичь. А если зацикливаться, то можно потерять в пустую массу времени. Рад, что смог хоть чем то помочь:)
Я пробовал так перенести все в подвал, то некоторые скрипты некорректно работают. Может подскажете как лучше сделать?
Не все можно переносить в подвал, некоторые скрипты должны загружаться сразу, особенно те, которые связаны с прорисовкой шаблона. А всякие незначительные, типа счётчики, можно и в подвал. А вообще не стоит тут быть максималистом, так как идеально все равно не сделать. Лучше всего почистить шаблон от всего ненужного (на тестовом сайте конечно), это поможет ускорить сайт. Ведь в любой теме много функций, которыми мы не пользуемся совсем.
А что делать ? мне тоже дает такие рекомендации. Убрать плагины ?:)
Не стоит сильно переживать, тут идеала не добиться. Самое простое, что можно, это включить gzip сжатие, а остальное трудно решаемо, если вы не программист. Плагины чаще всего не сильно грузят сайт, за исключением некоторых. Есть плагины, которыми это можно проверить.
Интересный сервис этот гуловский..Грит включить сжатие А вот http://www.gidnetwork.com/tools/gzip-test.php что все пучком сжатие работает..Кому верить теперь..
Они скорее всего по разному оценивают, гугл очень строг, ему трудно угодить, так что не стоит сильно ломать голову, все равно без программиста мелочи не исправить.
Поставьте плагин JS & CSS Script Optimizerhttps://wordpress.org/plugins/js-css-script-optimizer/Он всё сделает
Не помогает ни один плагин, в том числе и этот. Все дело в том, что эти скрипты подгружают плагины. Чтобы избавиться от них при загрузке, нужно копаться в файлах этих плагинов и настраивать так, чтобы загрузка задерживалась.
Но это все до первого обновления плагинов. Можно отказаться от плагинов, но тогда теряется нужный функционал. Вот и думай, что важнее?
помимо скриптов, которые указываются явно (типа ) есть те, которые подключаются функцией движка вп — подсасывая все скрипты которые использует как тема движка, так сам вп и все активные плагины. если все скрипты сдвинуты в футер, то никто не мешает поместить в тот же футер перед описанием этих самых скриптов.
нды, весь код порезался при отправке. в общем wp_head(); в футер пихайте перед своими скриптами
PageSpeed штука хорошая, но не стоит злоупотреблять ею, так как добиваясь идеала ни чего от сайта не останется.))) А для успокоения души, могу сказать интересную вещь, сам сайт советчик developers.google.com оказался хуже моего в этом плане. Проверьте ещё пару гугловских сервисов, все они с косяками.
Удачи друзья и не парьтесь.
У меня на сайте, в голове, остался всего один скрипт, который отвечает за работу виджета группы вконтакте (такой сейчас есть наверно на каждом втором сайте), так вот я пробовал перемещать его в самый низ, как рекомендует PageSpeed, но тогда виджет не работает!!! Подскажите пожалуйста как быть? Очень хотелось бы решить этот вопрос, ведь в PageSpeed эта проблема помечена красным!
Как пишут умные люди на многих блогах, все требования выполнить просто не возможно, это скорее рекомендации. В отношении сторонних скриптов, типа виджета vk я делаю так: скачиваю файл скрипта (js) и кладу его в папку сайта (любую, но лучше закрытую от индексации) и потом ссылку в скрипте виджета меняю с внешней на внутреннюю, получается так: _script type=»text/javascript» src=»/wp-content/themes/genbu/js/vk.js»>
Спасибо за совет, я как то об этом не подумал, попробую. Но сразу назревает вопрос. При обновлениях в группе, к примеру изменение количества участников или другие какие то изменения, будут ли эти изменения отображаться в виджете как раньше или скрипт на это вообще не влияет?
Будут конечно обновления, этот скрипт будет просто грузится не с их серверов, а с ваших. Так же можно проделать со всем внешними скриптами, того же adsense. Если у них сервер зависнет, что бывает, реклама все равно будет показываться. К тому же такой перенос скриптов в некоторых случаях застраховывает от блокировки их adblock.
НЕ РАБОТАЕТ! Сделал все как вы посоветовали. Скачал скрипт, подключил вместо того и переместил в самый низ сайта ко всем остальным И ВИДЖЕТ НА САЙТЕ НЕ ОТОБРАЖАЕТСЯ. А если разместить путь к (скачаному) скрипту по старинке в самом верху страницы, то все работает. Но я не хочу, чтобы он там был!!!! В чем может быть проблема?
А зачем вы вообще скрипт этот размещаете в шапке? Код, который дает вконтакте для виждета, нужно весь пульнуть в сайдбар. Сайдбар грузится после контента, перед подвалом, поэтому должно быть нормально. Или у вас плагин какой то стоит для этого?
А я разве где то написал, что размещаю его в шапке? Он размещен у меня в теге (голова) как того требуют здесь: https://vk.com/dev/widget_community Другая часть кода как и у всех (у вас в том числе) размещена в сайдбаре.
Все, спасибо огромное. Все получилось. Переместил код который вк требует вставлять в head, вставил прямо в div с виджетом и все работает, супер. Теперь у моего сайта все зеленое, и для мобильных и для компов.
Не нужно ничего размещать в шапке (header это и есть шапка сайта), все разместите в сайдбаре, и используйте лучше эту страницу для настройки https://vk.com/dev/Community тут можно подобрать цвета виджета.
От этих кодов в функциях у меня сайт просто завис, пришлось удалить.
Без плагина выше загружается быстрее
Тут все нужно настраивать индивидуально, у меня пока тоже не получилось все сделать идеально, не так это просто, если ты не программист.
Переписал почти всю статью, так как нашел простое решение этого вопроса, кому интересно читаем и применяем!
У меня как раз эта проблема! Ух, как Вы вовремя со статьей! Спасибо огромнейшее! Сам я тоже ни разу не программист, ни верстальщик, поэтому уже думал обращаться на фриланс. Да, плагин, конечно, это не совсем хорошо. Но куда деваться? Скорость загрузки важнее — Вы это точно подметили. Пойду пробовать на своем адаптиве, авось станет получше.
А я вот как раз отключил адаптив, мобильная версия лучше, гляньте через телефон на этот сайт. Грузится быстрее и тесты проходит лучше на скорость. К тому же не нужно ставить только адаптивные блоки adsense, как в случае с адаптивным дизайном.
В общем пока результат не утешающий. Попробовал оба плагина и индексы чуть-чуть даже ухудшились. Хотя скриптов не обнаружил Google Page Speed, некоторые css попрятал, а вот шрифты из API Гугла оставил. Странно я думал он покажет результат лучше, а на деле хуже. На данный момент удалил оба плагина, думаю все-таки обращаться к сторонним специалистам.
Может не все галочки поставили? Я когда тоже не все ставил, то у меня эффекта не было.
Подскажите каким плагином Вы пользуетесь для увиличения картинок, а то Autoptimize не работает с Fancybox
Пользуюсь плагином Responsive Lightbox — очень простой и работает отлично. Вот ссылка на его страницу https://wordpress.org/plugins/responsive-lightbox-lite/
Дружище! Мне твой совет весьма помог! Воспользовался плагином Autooptimize. Теперь гугл видит только один скрипт и доволен как питон. Но у меня есть еще один вопрос, как к специалисту. Как включить кэш браузера, который так просит гугл? Говорят подобное не работает на связке ngnix и apache
Если стоит такая связка (у меня тоже ngnix и apache), то в .htaccess вставлять код толку нет. Тут нужно в файл /etc/nginx/nginx.conf вставлять типа location ~* .(jpg|png|gif|jpeg|css|js)$ {
expires 24h; }
Но у меня пока не получилось настроить, тут нужно точно подобрать параметры. Займусь как нибудь на досуге.
После установки плагина показатели немного поднялись, но сайт перестал работать. Т.е. он сначала подгружается секунды на 2-3, а потом все пропадает кроме шапки и подвала на белом фоне. Пришлось удалить(( Решил оставить эту проблему на потом, не думаю что низкие показатели скорости сильно влияют на позицию сайта. Сильно не судите, но это мнения новичка.
Можно поиграться с настройками плагина, если отключить некоторые функции, то будет все нормально.
Для реализации прогрессивного сокращения css можно воспользоваться сервисом
_csscompressor.com.
Уберите нафиг эту игру пере комментариями! Почитал статью и залип на полтора часа! Время только потерял зря!
Так для того и поставлена ;) Спасибо за коммент, теперь точно ее не уберу, значит не я один залипаю!
Хорошие советы. Надо реализовать все это на своем сайте, а то пока тест скорости неудовлетворительный.
Почему на этом сайте не установили плагин Autoptimize ? И как от повлиял на позиции вашего сайта ?
Я пока отключил его, так как заменил шаблон и теперь работаю с кодом, а плагин немного мешает. Когда сайт будет налажен, то будет опять включен скорее всего.
На позиции он не влияет никак, так как он хоть и оптимизирует сайт, но не так сильно ускоряет, он скорее шлифует уже сделанное, настоящее ускорение плагином не сделаешь, не считая плагина кэширования.
В mod_pagespeed для apache фильтр defer_javascript делает примерно то же самое — он запускает загрузку js после отображения страницы. Странно, конечно, что я только сейчас его включил и попробовал, но ощутил видимое увеличение скорости! Я им не пользовался, так как давно, ещё со времён PageSpeedService мне показалось, что он мешает нормальной работе сайта.
Хорошо что вы мне напомнили про mod_pagespeed, я на старый сервер ставил, а на этом хостинге кажется не стоит, нужно установить будет сегодня!
Так же есть очень интересный плагин Async Javascript, который подставляет во все скрипты атрибут async. После его установки у меня остался всего один скрипт, который загружается «плохо», но это уже мелочи, рейтинг сайта все равно сразу подрос в google speed на несколько пунктов.
Добрый день! Спасибо за Ваши советы, ничего более внятного пока не нашла в инете. Плагины, конечно, это лучший вариант оптимизации, но у меня есть вопросы. Подскажите, пожалста, как поступить.
Я поставила плагин Autoptimise и после того, как нажала все галочки по кнопке Show advanced settings, сайт слетает и выдает ошибку сервера. Сайт восстановили на хостинге, т.к. резервные копии я сделала, но вопрос остается — нужно ли оставлять этот плагин на сайте (пока он стоит), если дополнительные условия не установлены? При повторном анализе выдает такое же количество ошибок.
После установки плагина Asynchronous Javascript все нормализовалось, только у меня теперь показывает при анализе сайта не один скрипт, а два + vk.com :
Удалите код JavaScript, препятствующий отображению:
_http://kulinaria-prazdniki-budni.ru/…nchronous-javascript/js/head.load.min.js
_http://vk.com/js/api/openapi.js?113
C этим нужно что-то сделать? Или можно оставить в таком виде? Спасибо!
То что скриптов остается немного, то это не проблема, как показывает практика добиться 100% результат практически невозможно, для этого нужно самому писать движок для сайта и изначально все это продумывать. В отношении скриптов могу посоветовать такую вещь: копируете себе на хостинг js файлы и в коде указываете к ним путь. В этом случае они будет загружаться с вашего хостинга, а не со стороннего ресурса.
Сам я от Autoptimise пока отказался в пользу похожего плагина Better WordPress Minify, он как то лучше у меня пошел и вот в нем как раз можно вручную указать, какие конкретно скрипты нужно запихнуть в подвал. В большинстве случаев это хорошо сработало.
Спасибо большое за оперативный ответ!
Плагин Better WordPress Minify поставила, по поводу настроек Вы писали «в нем как раз можно вручную указать, какие конкретно скрипты нужно запихнуть в подвал», в настройках стоят галочки:
Минимизировать JS-файлы скриптов автоматически?
Минимизировать CSS-файлы стилей автоматически?
Enable bubble CSS import?
Enable cache file locking?
Нужно где-то еще их поставить?
По поводу «копируете себе на хостинг js файлы и в коде указываете к ним путь.» — к сожалению, такие вещи могу делать только по пошаговой инструкции. Знать бы как этому научиться. Ой, как все непросто! А сайт очень надо оптимизировать :(
Вот тут смотрите //zmoe.ru/wp-content/uploads/optimizirovat-skripty-.jpg находите в левой колонке скрипт, на который ругается google page speed и выбираете его и в появившемся меню нажимаете «move to footer» и так с каждым проблемным.
По поводу файлов ничего сложного, берете адрес файла, к примеру _https://apis.google.com/js/platform.js вставляете его в браузер. Откроется страница с каракулями. Нажмите Ctrl + S и сохраните файл на компьютер. Затем закачайте файл на хостинг через FileZilla. Там потом укажите на файл и выберите пункт «копировать адрес в буфер обмена». Далее эту ссылку нужно изменить до состояния точного адреса его на сайте, так так будет типа _sftp://root@18.58.207.192/var/www/a/data/www/aliprofi.ru/wp-content/themes/aliprofi/js/html5shiv.js а нужно будет сделать _http://aliprofi.ru/wp-content/themes/aliprofi/js/html5shiv.js или еще проще /wp-content/themes/aliprofi/js/html5shiv.js и вставить это вместо _https://apis.google.com/js/platform.js в скрипт. Палочку _ я ставлю перед адресом чтобы в комментарии не было ссылок ;)
С плагином Autoptimize анализатор скорости сайта PageSpeed Insights показывает результаты хуже, чем без него.
У меня вообще ничего не изменилось с загрузкой после установки плагина Autoptimize.
Там нужно галочки правильно расставить, чтобы все оптимизироваться, могу свои настройки скинуть.
и 
Конечно же я все расставляла. Как было 72 так и есть
У меня на всех сайтах так стоит и везде нормально (aliprofi.ru, prostolinux.ru, teonote.ru) можете глянуть и это то же. Может у вас с правами доступа не то что-то на хостинге? Плагин создает папку с кэшем ей нужно дать права 777.
Ёлки палки… что за фото руки с большим пальцем вверх ????.. мешает только чтению!!! аж закрыть сайт хочется и уйти… мешает же загораживает буквы, при увеличении масшата…
А вы с чего смотрите, с телефона? Пока никто не жаловался, но отключу, так как все равно нужно менять этот плагин на просто скрипт, так уже сделал на одном сайте, и на мобильной версии кнопки уже не будет.
Добрый день! Такой вопрос-а плагин Autoptomize не перезаписывает файлы темы? То есть, если все слетит, можно просто отключить плагин? Не сталкивались? Понятное дело, лучше тестировать на тестовом сайте, но все же :)
Нет, ничего он не переписывает, он создает свой кэш и выдает свою версию страницы, отключаете и все возвращается как его и не было.
У меня на сайтах долго стоял плагин Autoptimize. Теперь его автор обновил, сделал наполовину платным и ограничил бесплатные функции, теперь он бесплатно вниз ничего не перемещает. Работать бесплатно стал хуже. Мне лично проще выбросить эти сайты, это чемоданы без ручки.
Что мешает пользоваться старой версией? Не обязательно все постоянно обновлять, так как все это приводит к таким проблемам постоянно.
У вас этот плагин не подключен. Почему?
Отключил просто временно, хотя на самом деле все это почти ничего не дает, нужно смотреть реальную скорость сайта через этот сервис и не важно что там загружается вначале, а что в конце.
Практика показала, что все эти плагины по ускорению сайта — полная ерунда, так как от них больше вреда, чем пользы. Они почти всегда что-то ломают на сайта и при этом скорость увеличивают лишь незначительно.