И пользователи, и поисковики любят, чтобы сайты грузились быстро, а лучше мнгновенно.
Что можно сделать в битрикс сайтах, чтобы увеличить скорость загрузки до зеленой зоны в PageSpeed Insights.
Проверить и исправить ошибки сайта (php, базы)

Использовать кеширование
Настройки > Настройки продукта > Автокеширование
Должно быть "Автокеширование компонентов включено", "Управляемый кеш компонентов включен"
Включить кеширование у компонентов
Проверить, все ли запросы кешируются на странице через публичный раздел через кнопку "Отладка"
Композитный сайт настроить
НастройкиНастройки продуктаКомпозитный сайтНастройки
В настройках главного модуля проставить все галки Оптимизация CSS

Отложить загрузку скриптов
Google, Яндекс Скрипты аналитики, конечно, очень важны, но они очень тормозят загрузку.
Bitrix24 виджет
Отложить загрузку карты
Отложить загрузку виджета флампа, для мобильных вообще не выводить его
картинки lazy
микроразметка берет данные из атрибута img content
Отложить загрузку скрипта с иницилизацией
Дополнительно:
| Сервисы для проверки скорости загрузки сайта: |
Что можно сделать в битрикс сайтах, чтобы увеличить скорость загрузки до зеленой зоны в PageSpeed Insights.
Проверить и исправить ошибки сайта (php, базы)

Использовать кеширование
Настройки > Настройки продукта > Автокеширование
Должно быть "Автокеширование компонентов включено", "Управляемый кеш компонентов включен"
Включить кеширование у компонентов
Проверить, все ли запросы кешируются на странице через публичный раздел через кнопку "Отладка"
Композитный сайт настроить
НастройкиНастройки продуктаКомпозитный сайтНастройки
В настройках главного модуля проставить все галки Оптимизация CSS

Отложить загрузку скриптов
Google, Яндекс Скрипты аналитики, конечно, очень важны, но они очень тормозят загрузку.
Bitrix24 виджет
<?if(!$USER->IsAdmin()):?>
<!-- Yandex.Metrika counter -->
<script type="text/javascript" >
$(window).on('load',function(){
setTimeout(function(){
(function(m,e,t,r,i,k,a){
m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)
}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(КОД_СЧЕТЧИКА, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true });
},2000);
});
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/КОД_СЧЕТЧИКА" style="position:absolute; left:-9999px;" alt="" /></div></noscript> <!-- /Yandex.Metrika counter -->
<!-- Global site tag (gtag.js) - Google Analytics -->
<script>
$(window).on('load',function(){
setTimeout(function(){
var w = window;
var d = document;
var u = 'https://www.googletagmanager.com/gtag/js?id=UA-КОД_СЧЕТЧИКА';
var s=d.createElement('script');s.async=true;s.src=u;
var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);
},1500);
});
</script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
$(window).on('load',function(){
setTimeout(function(){
gtag('js', new Date());
gtag('config', 'UA-КОД_СЧЕТЧИКА');
},2000);
});
</script>
<script>
$(window).on('load',function(){
setTimeout(function(){
var w = window;
var d = document;
var u = 'https://cdn.bitrix24.ru/b12482366/crm/site_button/loader_1_i4gs5f.js';
var s=d.createElement('script');s.async=true;s.src=u+'?'+(Date.now()/60000|0);
var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);
},2000);
});
</script>
<? endif;?>
|
Отложить загрузку карты
<?if(CSite::InDir("/contacts/")):?>
<div id="Ymap"></div>
<script>
$(window).on('load',function(){
setTimeout(function(){
var w = window;
var d = document;
var u = "https://api-maps.yandex.ru/services/constructor/1.0/js/?um=constructor%3A24aa835b98524d94399753255888480ee2960262dc0407b67e15d2ec0fd87a9d&width=100%25&height=400&lang=ru_RU&scroll=true";
var s=d.createElement('script');
s.async=true;
s.src=u;
s.type="text/javascript";
s.charset="utf-8";
d.getElementById('Ymap').appendChild(s);
},2000);
});
</script>
<?endif;?>
|
Отложить загрузку виджета флампа, для мобильных вообще не выводить его
<div class="widget-cell" id="flamp-widget-cell" style="display:none;">
<a class="flamp-widget" href="//krasnoyarsk.flamp.ru/firm/ХХХХХХ" data-flamp-widget-type="responsive-new" data-flamp-widget-id="985690699624139" data-flamp-widget-width="100%" data-flamp-widget-count="2">Отзывы о нас на Флампе</a>
<script>
$(window).on('load',function(){
if(document.documentElement.clientWidth >1000){
setTimeout(function(){
var d = document;
var s = "script";
var js,fjs=d.getElementsByTagName(s)[0];
js=d.createElement(s);
js.async=1;js.src="//widget.flamp.ru/loader.js";
fjs.parentNode.insertBefore(js,fjs);
$('#flamp-widget-cell').show();
},200);
}
});
</script>
</div>
|
картинки lazy
микроразметка берет данные из атрибута img content
<img src="placeholder.png" content="realimg.png" class="lazyImg" alt="altImg" title="titleImg"> |
if($('.lazyImg').length>0){
setTimeout(function(){
$('.lazyImg').each(function(i,el){
var src = $(el).attr("content");
if(typeof(src) != undefined){
$(el).attr('src',src);
}
});
},1500);
}
|
Отложить загрузку скрипта с иницилизацией
$(window).on('load',function(){
setTimeout(function(){
var w = window;
var d = document;
// добавляем скрипт
var s=d.createElement('script');
s.src='<?=SITE_TEMPLATE_PATH?>/js/jquery-ui.js';
s.onload =function(){
//иницилизируем после загрузки скрипта
var arParamsAutocomplete = <?=CUtil::PhpToJSObject($arJsParamsAutocomplete)?>;
for (var i = 0; i < arParamsAutocomplete.length; i++) {
arAutocompl = arParamsAutocomplete[i];
$( "#"+arAutocompl.id ).autocomplete({
source: arAutocompl.source,
select:function(event, ui) {
if((ui.item != null) && (typeof ui.item != undefined)){
if(ui.item.id != ""){
$("input[name='"+arAutocompl.inputName+"']").attr("checked","");
$('#'+ui.item.id).attr("checked","checked");
smartFilter.selectDropDownItem($("label[for='"+ui.item.id+"']")[0], ui.item.id);
}
}
},
change: function(event, ui) {
if((ui.item != null) && (typeof ui.item != undefined)){
}
else{
$("input[name='"+arAutocompl.inputName+"']").attr("checked","");
$("#"+arAutocompl.all_values_input).attr("checked","checked");
smartFilter.selectDropDownItem($("label[for='"+arAutocompl.all_values_input+"']")[0], arAutocompl.all_values_input);
}
}
});
}
};
// добавляем стили
var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);
var l=d.createElement('link');
l.type="text/css"; l.rel="stylesheet";l.href='<?=SITE_TEMPLATE_PATH?>/css/jqueryui.custom.css';
h=d.getElementsByTagName('head')[0];h.appendChild(l);
},2000);
});
|
Дополнительно:
- Убрать неоптимальные запросы (проверить компоненты, шаблоны кастомные) на страницах, которые долго грузятся
- Убрать лишние стили и скрипты в шаблонах. Или хотя бы отложить их загрузку.