Я поддерживаю Равиля и ещё хочу добавить: на СЕО этот тест никак не влияет, так как влияет трастовость сайта и удовлетворение потребностей ваших потенциальных постетителей. Мне этот тест суют почти каждую неделю "продвинутые в сео" хозяева сайтов. Да конечно бывают трешовые сайты, и тогда на тест надо обратить внимание, в 90% случаев это вспомогательный источник инфы, который ничего не будет говорить о пессимизации вашего ресурса. Так как главное обойти трастовость конкурентов, а не паниковать что у вас скрипт вверху....
Все просто, просто время нужно потратить чтобы починить. Если это мой был бы сайт, я бы сделал так как сказал)
чот тема затухла ( в сторону асинхронной загрузки скриптов никто не смотрит ? уборка скриптов в футер люто повышает оценки на всяких пэйджспидах ( недавно наткнулся на сайт, который у меня настолько моментально загрузился, что я был прям удивлён... head минимальный, всё в футере... к сожалению, это был не опенкартовский движок... бутстрап и коммон можно же асинхронно подключить ? добавил asynс - вроде всё работает... мошт я туплю и не проверил что? с асинком jquery показ картинок накрывается ( скрипт кнопок addthis прибавляет по секунде-три при загрузке страниц. заменил на uptolike обращение к css гугла ради шрифтов тоже замедляло загрузку - просто скопировал в хеадер. + почему-то перезалить шрифты к себе не вышло.. но я олень, фигли... но так думаю.что это тоже + дало бы.
Скрипты должны подключаться в строгом порядке, для этого есть defer. AddThis как раз можно асинхронно если он не использует какую либо библиотеку. Все что использует jQery не советуется подгружать асинхронно, как и саму библиотеку.
Блин ) ну прям реально не хотите тему развивать ))) Мужики, а что с мемкэшем на двойке ? в индексе прописано - кэш file, и в систем/либрари/кэш присутствует file, apc и mem можно это как-то использовать под себя ?
ну просто да. в формате темы как-то - лучшеб промолчать ( настройки мемкеша прописаны конфиге, как я понимаю. не помню уже откуда они у меня там взялись, мошт пытался чо-то делать в этом направлении. насколько помню - на полуторке - мемкеш едва ли не спасение от всех бед. на пустом магазе с двойкой переключение на mem чот даёт плюс секунду в gtmetrix ( хз чо такое apc, как настраивать и использовать... если тупо вписывать в индекс получаю 500. Вы бы думали о подрастающих поколениях - тема бы поактивней поднималась. Проблем же много. та же самая оптимизация запросов ? в инете инфы нет нихрена. нужно быть гуру мускула чтоли чтоб ковырять этот вопрос ? почему гуру не делятся инфой ?
Потому что мы на этом деньги делаем))) Почитай про LazyLoading Надо вообще будет попробовать сделать кэширование базы данных.
фига в дебри меня отправили ))) у меня всё помещается в рамках одной страницы и максимум двух экранов и этот момент не изменится ) Сейчас бился с обходом мудачества хостаря (запрет кеширования статики посетителем, невозможность управления заголовками, нет ну не мудаки ли ?), запихнул все css и js в php(ради управления заголовками) - думаю, не вызовет ли осложнений при реальной нагрузке. Хочется сократить количество запросов юзера к серверу. Страницы почти пустого магаза открываются практически моментально. что PageSpeed Insights, что gtmetrix дают более высокую оценку чем при использовании нитропаков всяких. следущее по идее, что нужно бы - объединение файлов. и нужно мне как-то обойти хостаря на тему графики (хз как отдавать граф.файлы из пхп) жаба душит, когда столько работы уже проделано даже живой поиск подключать ((( и прочие скрипты и плюшки - тоже жаба душит. млин ((
Ох..., мне 20, тебе 28... 1. Сжать все скрипты и стили. 2. Вынести их ... a) Если у тебя лишь одна страница, то вынеси в HTML b) Если у тебя куча страниц CSS и JS должны быть в своих файлах. 3. Правильное подключение скриптов и запуск скриптов 1) Подключать скрипты в подвале, если их несколько то прописываем их с атрибутом defer, счеткики подключаем асинхронно. 2) Запускать их при событии DomContentLoaded 4. Иконки объединяем, тем самым создаем Спрайт, но лучше использовать Font-Awesome или другие. 5. CSS нужно оптимизировать использую препроцессоры, не знаешь, не сделаешь. 6. jQuery разделяется на составные части, которые способны работать отдельно от друг друга, надо уметь подключать нужные части. 7. Лучше использовать чистый JavaScript 8. Корректные селекторы в скриптах, $(body > #content .block), а не $(.block). 9. Картинки подгружать через LazyLoading, если есть страница товара, то там не желательно LazyLoading использовать. 10. Поставить GZIP сжатие 11. Поставить корректное кэширование в .htaccess Вроде, все хотя еще дофига, это все что на ум пока пришло.
я в 14 зарабатывал первые деньги за "сайтостроение"... потом бухал.. и вот только вторую неделю просыхаю... лучшие годы моей жизни ) про jquery и скрипты - не знаешь не сделаешь...селекторы и прочее... те же самые спрайты - мне несколько лет вникать чот не хотелось.. на практике оказалось дело одного часа..когда добавил 10картинок с логотипами приёма денюжек.. + 10 запросов к хостингу, который отказывается слушать htaccess - тут и спрайты изучишь... стоковый шаблон. можно применительно к нему обсуждать. правильно я понимаю. что если у меня на странице нет никаких календарей и счётчиков дат Код: <!-- spdk --><script defer src="catalog/view/javascript/jquery/datetimepicker/moment.js.php" type="text/javascript"></script> <!-- spdk --><script defer src="catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.js.php" type="text/javascript"></script> вот это можно вырезать вообще ? это вот эти плюхи ? (зачем они вообще?) много народа в полуторке парилось из-за подсчёта количества товаров в категориях. мол даже отключение в настройках бестолку - сейчас под руками модуль якобы ускорялки двойки - тоже по коду вижу,что вырезают подсчёт товаров - присутствует эта проблема ? нет под руками наполненного и работающего магаза на двойке. отсюда некоторые вопросы, к которым хочется быть готовым.
moment.js и bootstrap-datetimepicker.min.js за что они отвечают ? если jquery.magnific-popup.min.js, понятно, картиночки красивенько разъезжаются... то зачем момент и пикер нужны я так и не понял ( datetimepicker потом ещё и в коде страницы товара какой-то скрипт мельтишит... зачем он ? Что имею на данный момент: Мне жалко, что тема так не активна на форуме. Что мне позарез нужно, что посетителям форума, очевидно же.. А вы подзабиваете, что я тут клещами всё вытягиваю. Больше народа на форуме, больше юзеров сборки, больше выявленных проблем и косяков - лучше продукт получаем. С радостью объединил бы css и js чтоб залить посетителю в кэш и он забыл про них. Но чот всего настолько много, что все минификаторы заваливаются... Объединение js без анализа кода,я так понимаю, дохлый номер... при том, что в js я не шарю абсолютно..
Один за время, другой за время)) Один за формат отображения времени и даты, другой за форму выставления даты и времени. Это было поставлено для опций с типом date или datetime Еще есть скрипт upload, для заливки файлов с сайта на сервер. ----- Более опытные используют LESS/SASS + GULP - для CSS Для JS - Webpack Почитай, попробуй, скачай IDE, я юзаю PHPStorm Учить надо было, а не бухать) С возрастом усваивать инфу будет все сложнее. У тебя же пару страниц, ничего сложного запихнуть код в функции и запустить их в нужный момент.
Чтобы не грузить хостинг хотел попробовать статическое gzip сжатие. Для эксперимента взял bootstrap.min, который сильно не нравился gtmetrix сжал его, закинул на сервер, прописал в htaccess Вроде все заработало, сайт у меня без проблем открывается, на самом gtmetrix аплодисменты...но сайт у него в скриншоте без стилей стал. Зашел на webmasters/tools там тоже печальная картина: view/javascript/bootstrap/css/bootstrap.min.css Таблица стилей Недоступно -- catalog/view/javascript/font-awesome/css/font-awesome.min.css Таблица стилей Недоступно -- catalog/view/theme/default/stylesheet/stylesheet.css Таблица стилей Недоступно -- catalog/view/javascript/jquery/magnific/magnific-popup.css Таблица стилей Недоступно -- catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.css Таблица стилей Недоступно -- catalog/view/theme/default/stylesheet/live_search.css Таблица стилей Недоступно -- catalog/view/javascript/jquery/jquery-2.1.1.min.js Скрипт Недоступно -- catalog/view/javascript/common.js Скрипт Недоступно -- catalog/view/javascript/jquery/magnific/jquery.magnific-popup.min.js Скрипт Недоступно -- catalog/view/javascript/jquery/datetimepicker/locale/ru.js Скрипт Недоступно -- catalog/view/javascript/jquery/datetimepicker/bootstrap-datetimepicker.min.js отака петрушка, даже не знаю. А включать сжатие на сервере пока не хочу экспериментов с нагрузкой
@Edikofff сервер спокойно сделает gzip сжатие сам. Не надо заниматься ерундой. Прописали правила в htaccess и всё.
Не понимаю ничего в htaccess У меня стоит код Спойлер: спойлер Код: RewriteBase / RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L] RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L] RewriteRule ^system/download/(.*) index.php?route=error/not_found [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css) RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] RewriteEngine On RewriteCond %{HTTP_HOST} ^www.***.***$ [NC] RewriteRule ^(.*)$ http://***.**/$1 [R=301,L] RewriteCond %{HTTPS} "on" RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI} [R=301,L,QSA] Поставил после него Спойлер: спойлер Код: <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 text/html "access 1 month" ExpiresByType application/pdf "access 1 month" ExpiresByType text/x-javascript "access 1 month" ExpiresByType application/x-shockwave-flash "access 1 month" ExpiresByType image/x-icon "access 1 year" ExpiresDefault "access 1 month" </IfModule> FileETag MTime Size <ifmodule mod_expires.c> <filesmatch ".(jpg|jpeg|gif|png|ico|css|js)$"> ExpiresActive on ExpiresDefault "access plus 1 month" </filesmatch> </ifmodule> Ничего не поменялось. Помогите люди добрые))) checkgzipcompression.com говорит что сжатие на сервере работает, значит что-то с моим кодом...или не туда втыкаю тли даже не знаю. кеширование работает (видимо первая часть кода), а сжатие похоже нет Сервисы говорят что нет сжатия для catalog/view/javascript/jquery/jquery-2.1.1.min.js catalog/view/javascript/bootstrap/js/bootstrap.min.js catalog/view/javascript/jquery/owl-carousel/owl.carousel.min.js catalog/view/javascript/common.js
Вот код для сжатие gzip Код: # сжатие 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>