Recommended Posts

Озадачился оптимизацией скриптов при загрузке сайта, поскольку Гугля пишет рейтинг 56/100 в этой части и предлагает:

Удалите код JavaScript и CSS, блокирующий отображение верхней части страницы. Количество блокирующих скриптов на странице: 24. Количество блокирующих ресурсов CSS на странице: 9. Они замедляют отображение контента.

В header.tpl отключил некоторые скрипты, например Гугл-карты, и карусели, поскольку всё равно они не используются:

<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700,300&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
<link rel="shortcut icon" href="{$estate_folder}/template/frontend/{$current_theme_name}/img/favicon.png" type="image/png">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/bootstrap.css" type="text/css">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/bootstrap-responsive.css" type="text/css">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/chosen/chosen.css" type="text/css">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/bootstrap-fileupload/bootstrap-fileupload.css" type="text/css">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/jquery-ui/css/ui-lightness/jquery-ui-1.10.2.custom.min.css" type="text/css">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/realia-blue.css" type="text/css">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/bootstrap.corrections.css" type="text/css">

<script type="text/javascript" src="https://api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=ru-RU"></script>
<!-- <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&amp;sensor=true"></script> -->
<!-- <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=drawing"></script> -->
{literal}
<!--[if lte IE 7]>
<style type="text/css">
html .jqueryslidemenu{height: 1%;} /*Holly Hack for IE7 and below*/
</style>
<![endif]-->
{/literal}
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.ezmark.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.currency.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.cookie.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/retina.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/bootstrap.min.js"></script>
<!-- <script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/carousel.js"></script> -->
<!-- <script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/gmap3.min.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/gmap3.infobox.min.js"></script> -->
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/jquery-ui/js/jquery-ui.min.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/chosen/chosen.jquery.min.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/iosslider/_src/jquery.iosslider.min.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/bootstrap-fileupload/bootstrap-fileupload.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/realia.js"></script>
<script type="text/javascript" src="{$estate_folder}/apps/client/js/clientorderajax.js"></script>
<script type="text/javascript" src="{$estate_folder}/js/estate.js"></script>
<script type="text/javascript" src="{$estate_folder}/apps/system/js/sitebillcore.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/interface.js"></script>
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/jqueryslidemenu.css" type="text/css">
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jqueryslidemenu.js"></script>

Что можно еще выключить? (Шаблон Realia)

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


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

 

Этот спокойно:

<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/retina.js"></scri

Этот кажется тоже. Он присутствовал в исходной реалии, но как-то применить его в связке с сайтбиллем н вышло:

<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.currency.js"></script>

Этот скорее всего тоже. И выше его брат в виде включения файла стилей

<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/bootstrap-fileupload/bootstrap-fileupload.js"></scrip

В зависимости от исполнения шаблона так же могут быть убраны (есть более старый вариант на этой библиотеке и более новый, которому они не нужны) (этот скрипт обслуживает верхнее навигационное меню разделов которое с выпадашками подразделов)

<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/jqueryslidemenu.css" type="text/css">
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jqueryslidemenu.js"></script>

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


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

Вместе с уборкой последнего, можно убрать и блок

{literal}
<!--[if lte IE 7]>
<style type="text/css">
html .jqueryslidemenu{height: 1%;} /*Holly Hack for IE7 and below*/
</style>
<![endif]-->
{/literal}

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


Ссылка на сообщение
Поделиться на других сайтах
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700,300&subset=latin,cyrillic' rel='stylesheet' type='text/css'>

Эту строку, раз уж взялись за оптимизацию, так же было бы неплохо убрать из наружной cdn в ссылки на копии файлов шрифтов на сервере. Тут нужно поискать в гугле как правильно локализовать шрифтики из общедоступных cdn гугля.

 

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


Ссылка на сообщение
Поделиться на других сайтах
11 час назад, abushyk сказал:

 

Этот спокойно:


<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/retina.js"></scri

 

А с отображением на Аплях проблем не будет? Как я понимаю, этот скрипт для дисплеев Retina?

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


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

Дело в том, что этот скрипт нагло требует при лоаде на ретине копию КАЖДОЙ картинки в специальном размере, включая и фотки объектов и прочий юзерконтент. А его нет, что производит каскадный рост ошибок в консоли.

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


Ссылка на сообщение
Поделиться на других сайтах
4 минуты назад, abushyk сказал:

Дело в том, что этот скрипт нагло требует при лоаде на ретине копию КАЖДОЙ картинки в специальном размере, включая и фотки объектов и прочий юзерконтент. А его нет, что производит каскадный рост ошибок в консоли.

Ну да, Ретине нужны картинки размером вдвое больше. Я думал, что такие генерируются в CMS, но если нет, то и скрипт в топку.

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


Ссылка на сообщение
Поделиться на других сайтах
11 час назад, abushyk сказал:

 

Этот кажется тоже. Он присутствовал в исходной реалии, но как-то применить его в связке с сайтбиллем н вышло:


<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.currency.js"></script>

 

При его отключении отваливается карта Яндекса :blink: В чем взаимосвязь?

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


Ссылка на сообщение
Поделиться на других сайтах
11 час назад, abushyk сказал:

 

В зависимости от исполнения шаблона так же могут быть убраны (есть более старый вариант на этой библиотеке и более новый, которому они не нужны) (этот скрипт обслуживает верхнее навигационное меню разделов которое с выпадашками подразделов)


<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/jqueryslidemenu.css" type="text/css">
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jqueryslidemenu.js"></script>

С этим не прокатило, оформление меню отваливается.

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


Ссылка на сообщение
Поделиться на других сайтах
3 минуты назад, abushyk сказал:

а с какой ошибкой отваливается и в каком месте?

Про ошибки ничего не говорит, просто на сайте отсутствует карта, пока скрипт jquery.currency.js не вернешь обратно...

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


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

 

2 минуты назад, Chernetskiy сказал:

С этим не прокатило, оформление меню отваливается.

Значит у вас версия разметки меню еще из тех самых первых.

 

https://realty-centrum.com/template/frontend/realia/js/realia.js

InitPriceSlider();  в 5-й строке сделайте

//InitPriceSlider();

и после этого отключите скрипт с курренси.

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


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

По менюшке навигации. Я приаттачил свежий меню декоратор для реалии. Забекапьте свой файл /template/frontend/realia/main/realia_menu_decorator.php и попробуйте поставить мой. Если станет норм, тогда можете попробовать отрубить 

<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/jqueryslidemenu.css" type="text/css">
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jqueryslidemenu.js"></script>

realia_menu_decorator.php

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


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

Спасибо! По последним 2-м постам прокатило. В итоге заглушенные скрипты:

<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700,300&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
<link rel="shortcut icon" href="{$estate_folder}/template/frontend/{$current_theme_name}/img/favicon.png" type="image/png">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/bootstrap.css" type="text/css">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/bootstrap-responsive.css" type="text/css">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/chosen/chosen.css" type="text/css">
<!-- <link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/bootstrap-fileupload/bootstrap-fileupload.css" type="text/css"> -->
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/jquery-ui/css/ui-lightness/jquery-ui-1.10.2.custom.min.css" type="text/css">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/realia-blue.css" type="text/css">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/bootstrap.corrections.css" type="text/css">

<script type="text/javascript" src="https://api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=ru-RU"></script>
<!-- <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&amp;sensor=true"></script> -->
<!-- <script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=drawing"></script> -->
{literal}
<!--[if lte IE 7]>
<style type="text/css">
html .jqueryslidemenu{height: 1%;} /*Holly Hack for IE7 and below*/
</style>
<![endif]-->
{/literal}
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.ezmark.js"></script>
<!-- <script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.currency.js"></script> -->
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.cookie.js"></script>
<!-- <script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/retina.js"></script> -->
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/bootstrap.min.js"></script>
<!-- <script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/carousel.js"></script> -->
<!-- <script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/gmap3.min.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/gmap3.infobox.min.js"></script> -->
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/jquery-ui/js/jquery-ui.min.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/chosen/chosen.jquery.min.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/iosslider/_src/jquery.iosslider.min.js"></script>
<!-- <script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/bootstrap-fileupload/bootstrap-fileupload.js"></script> -->
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/realia.js"></script>
<script type="text/javascript" src="{$estate_folder}/apps/client/js/clientorderajax.js"></script>
<script type="text/javascript" src="{$estate_folder}/js/estate.js"></script>
<script type="text/javascript" src="{$estate_folder}/apps/system/js/sitebillcore.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/interface.js"></script>
<!--<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/jqueryslidemenu.css" type="text/css">
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jqueryslidemenu.js"></script> -->
 

Вроде всё нормально работает :) Осталось со шрифтами разобраться...

Сейчас Гугл по скорости загрузки показывает рейтинг 59/100 - для мобильных и 65/100 для компов

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


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

К стати, Гугл предлагает скачать и установить его версии скриптов и CSS (оптимизированный контент), стоит-ли заморачиваться? Как вижу из изменений - они убрали текст в описании файлов (кто разработчик), а в остальном тоже самое.

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


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

Не знаю почему, но если закомментить:

<!-- <script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/carousel.js"></script> -->

и/или

<!-- <script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.currency.js"></script> -->

то вырубается карта на главной

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


Ссылка на сообщение
Поделиться на других сайтах
В 21.07.2017 в 17:09, Pavel88 сказал:

Не знаю почему, но если закомментить:


<!-- <script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/carousel.js"></script> -->

и/или


<!-- <script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.currency.js"></script> -->

то вырубается карта на главной

как победить - читай немного выше, у меня такая фигня была...

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


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

Доброго дня, попробовал все, что тут написано, итого:

1. currency.js удалось закомментить способами описанными выше, карта не отключается.

2. carousel.js не удалось закомменитить, карта пропадает все равно.

3. Гугл для мобильных - 39, для компьютера - 29..

Скажите, какие пути оптимизации еще есть?

Код сейчас такой:

<meta name="description" content="{$meta_description}" />
<meta name="keywords" content="{$meta_keywords}" />
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<meta name="HandheldFriendly" content="true">
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700,300&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
<link rel="shortcut icon" href="{$estate_folder}/template/frontend/{$current_theme_name}/img/favicon.png" type="image/png">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/bootstrap.css" type="text/css">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/bootstrap-responsive.css" type="text/css">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/chosen/chosen.css" type="text/css">
<!--<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/bootstrap-fileupload/bootstrap-fileupload.css" type="text/css"> -->
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/jquery-ui/css/ui-lightness/jquery-ui-1.10.2.custom.min.css" type="text/css">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/realia-blue.css" type="text/css">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/bootstrap.corrections.css" type="text/css">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/prettyPhoto.css">
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/style.css" type="text/css">
<script type="text/javascript" src="https://api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=ru-RU"></script>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3&key=AIzaSyCel0GEU8s6j6iDVIQj3UBQbcdrN1UoSdc"></script>
<!--<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=drawing"></script> -->
{literal}
<!--[if lte IE 7]>
<style type="text/css">
html .jqueryslidemenu{height: 1%;} /*Holly Hack for IE7 and below*/
</style>
<![endif]-->
{/literal}
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.ezmark.js"></script>
<!-- <script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.currency.js"></script> -->
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.cookie.js"></script>
<!-- {if 1==0}<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/retina.js"></script>{/if} -->
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/bootstrap.min.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/carousel.js"></script>
<!-- <script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/gmap3.min.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/gmap3.infobox.min.js"></script> -->
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/jquery-ui/js/jquery-ui.min.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/chosen/chosen.jquery.min.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/iosslider/_src/jquery.iosslider.min.js"></script>
<!--<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/bootstrap-fileupload/bootstrap-fileupload.js"></script> -->
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/realia.js"></script>
<script type="text/javascript" src="{$estate_folder}/apps/client/js/clientorderajax.js"></script>
<script type="text/javascript" src="{$estate_folder}/js/estate.js"></script>
<script type="text/javascript" src="{$estate_folder}/apps/system/js/sitebillcore.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/interface.js"></script>
<script src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.prettyPhoto.js"></script>
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/fancybox/source/jquery.fancybox.css" type="text/css" media="screen" />
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/fancybox/source/jquery.fancybox.pack.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/metro.js"></script>
<script type="text/javascript" src="{$estate_folder}/js/autoNumeric-1.7.5.js"></script>
<script type="text/javascript" src="{$estate_folder}/apps/system/js/mycombobox_ac.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/search_form.js"></script>
<script type="text/javascript" >

 

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


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

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

Озадачился оптимизацией или разделить их на фронт который грузит сайт для клиента  и бэк для админа. админ может подождать загрузки скриптов. А клиент не дождавшись уходит к другим

photo5188606066399750278.jpg

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


Ссылка на сообщение
Поделиться на других сайтах
В 19.05.2018 в 15:33, Realtor сказал:

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

Озадачился оптимизацией или разделить их на фронт который грузит сайт для клиента  и бэк для админа. админ может подождать загрузки скриптов. А клиент не дождавшись уходит к другим

Все ресурсы так или иначе нужны.

Можете экспериментально отключать и пробовать.

Можете сжать js файлы.

https://jscompress.com/

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


Ссылка на сообщение
Поделиться на других сайтах
46 минут назад, rumantic сказал:

Все ресурсы так или иначе нужны.

Можете экспериментально отключать и пробовать.

Можете сжать js файлы.

https://jscompress.com/

Легко сказано отключать и экспериментально) пробовать, в сайтбилл сейчас столько функций и приложений , что любой портал позавидует !  Это надо нанимать сотню тестеров на каждую фичу, чтобы хотя бы в день уложится 

3 МГБ для java это слишком

Или может некоторые java скрипты , которые нужны для админки , загружать в админке?

Не лучше ли теперь нормальную документацию(мурзилку)  написать, что и за что отвечает...

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


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

Сейчас ваш сайт показывает оценку 74 из 100, это достаточно не плохой результат.

1. Нужно картинки сжать.

2. Сжать код Js и CSS. (Мы специально не сжимали данные файлы т.к. каждый все равно под себя переделывает)

3. Включить кеш.

4. некоторые js можно перенести в подвал сайта.

http://joxi.ru/E2pd1kOs9R3ex2

 

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


Ссылка на сообщение
Поделиться на других сайтах
В 04.02.2017 в 03:48, abushyk сказал:

 

Этот спокойно:


<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/retina.js"></scri

Этот кажется тоже. Он присутствовал в исходной реалии, но как-то применить его в связке с сайтбиллем н вышло:


<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery.currency.js"></script>

Этот скорее всего тоже. И выше его брат в виде включения файла стилей


<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/libraries/bootstrap-fileupload/bootstrap-fileupload.js"></scrip

В зависимости от исполнения шаблона так же могут быть убраны (есть более старый вариант на этой библиотеке и более новый, которому они не нужны) (этот скрипт обслуживает верхнее навигационное меню разделов которое с выпадашками подразделов)


<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/jqueryslidemenu.css" type="text/css">
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jqueryslidemenu.js"></script>

Если не сложно подскажите пожалуйста, что можно убрать мне?

 

У меня так:

<!DOCTYPE HTML>
<html class="no-js">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>{if $meta_title != ''}{$meta_title}{else}{$title}{/if}</title>
<script type="text/javascript">
var estate_folder = '{$estate_folder}';
</script>
<meta name="description" content="{$meta_description}" />
<meta name="keywords" content="{$meta_keywords}" />
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0">
<meta name="format-detection" content="telephone=no">
<meta name="yandex-verification" content="373a5957314ba071" />
<meta name="google-site-verification" content="ZX-MCAr2UpxbQFgi-1AUiuwlttl5aHzN5jYZVOKNY8A" />
  
<meta property="og:title" content="{$meta_title}"/>
<meta property="og:description" content="{if $meta_description != ''}{$meta_description}{else}{$data.text.value|truncate:250}{/if}"/>
<meta property="og:image" content="http{if $smarty.server.HTTPS ne ''}s{/if}://{$smarty.server.HTTP_HOST}/img/data/{$photo[0].normal}" alt="Фото-{$title}"/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="http{if $smarty.server.HTTPS ne ''}s{/if}://{$smarty.server.HTTP_HOST}/{$REQUESTURIPATH}"/>
<meta property="og:site_name" content="Агентство недвижимости Банзай - Недвижимость в Тюмени и области"/>
<meta property="og:locale" content="ru_RU"/>
  
<link href="{$estate_folder}/apps/admin/admin/template1/assets/css/bootstrap-icon.css" rel="stylesheet" type="text/css">
<link href="{$estate_folder}/template/frontend/{$current_theme_name}/css/bootstrap.css" rel="stylesheet" type="text/css">
<link href="{$estate_folder}/template/frontend/{$current_theme_name}/css/style.css" rel="stylesheet" type="text/css">
<link href="{$estate_folder}/template/frontend/{$current_theme_name}/plugins/prettyphoto/css/prettyPhoto.css" rel="stylesheet" type="text/css">
<link href="{$estate_folder}/template/frontend/{$current_theme_name}/plugins/owl-carousel/css/owl.carousel.css" rel="stylesheet" type="text/css">
<link href="{$estate_folder}/template/frontend/{$current_theme_name}/plugins/owl-carousel/css/owl.theme.css" rel="stylesheet" type="text/css">
<!--[if lte IE 9]><link rel="stylesheet" type="text/css" href="{$estate_folder}/template/frontend/{$current_theme_name}/css/ie.css" media="screen" /><![endif]-->
<!-- Color Style -->
<link href="{$estate_folder}/template/frontend/{$current_theme_name}/colors/{$agency_color}.css" rel="stylesheet" type="text/css">
<link href="{$estate_folder}/template/frontend/{$current_theme_name}/css/bootstrap-select.min.css" rel="stylesheet" type="text/css">
<script src="{$estate_folder}/template/frontend/{$current_theme_name}/js/modernizr.js"></script><!-- Modernizr -->
<script src="{$estate_folder}/template/frontend/{$current_theme_name}/js/jquery-2.0.0.min.js"></script> <!-- Jquery Library Call -->
<script src="{$estate_folder}/template/frontend/{$current_theme_name}/plugins/prettyphoto/js/prettyphoto.js"></script> <!-- PrettyPhoto Plugin -->
<script src="{$estate_folder}/template/frontend/{$current_theme_name}/plugins/owl-carousel/js/owl.carousel.min.js"></script> <!-- Owl Carousel -->
<script src="{$estate_folder}/template/frontend/{$current_theme_name}/plugins/flexslider/js/jquery.flexslider.js"></script> <!-- FlexSlider -->
<script src="{$estate_folder}/template/frontend/{$current_theme_name}/js/helper-plugins.js"></script> <!-- Plugins -->


<script src="{$estate_folder}/template/frontend/{$current_theme_name}/js/bootstrap.js"></script> <!-- UI -->
<script src="{$estate_folder}/template/frontend/{$current_theme_name}/js/waypoints.js"></script> <!-- Waypoints -->
<script src="{$estate_folder}/template/frontend/{$current_theme_name}/js/init.js"></script> <!-- All Scripts -->
<script src="{$estate_folder}/template/frontend/{$current_theme_name}/js/bootstrap-select.min.js"></script> <!-- All Scripts -->
<script src="{$estate_folder}/template/frontend/{$current_theme_name}/js/defaults-ru_RU.js"></script>
<!--[if lte IE 9]><script src="{$estate_folder}/template/frontend/{$current_theme_name}/js/script_ie.js"></script><![endif]-->
<script type="text/javascript" src="{$estate_folder}/js/jquery.lightbox-0.5.js"></script>
<link rel="stylesheet" type="text/css" href="{$estate_folder}/css/jquery.lightbox-0.5.css" media="screen">
<script type="text/javascript" src="{$estate_folder}/apps/system/js/jqueryui/jquery-ui.js"></script>
 <script type="text/javascript" src="{$estate_folder}/apps/system/js/refresher.functions.js"></script>
<link rel="stylesheet" type="text/css" href="{$estate_folder}/css/system.css">


<script type="text/javascript" src="https://www.sitebill.ru/js/nanoapi_beta.js"></script>
{if $map_type=='yandex'}
<script type="text/javascript" src="https://api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=ru-RU"></script>
{else}
<script type="text/javascript" src="https://maps.google.com/maps/api/js?v=3&key=AIzaSyAR5T5KoJ-Y2PzEEB5RqRtELMH3yG7vf6g"></script>
{/if}
{literal}
<script type="text/javascript" >
refresher_global_callback=function($el){
    $el.addClass("form-control input-lg selectpicker");
    $el.selectpicker();
}
refresher_linked_global_callback=function($el){
    $el.selectpicker('refresh');
}
$(document).ready(function(){
    $("select").addClass("form-control selectpicker");
    $("input").addClass("form-control input-lg");
    $('.selectpicker').selectpicker({
    size: 7,
    container: 'body',
    liveSearch: true
  });
});
</script>
{/literal}
<script type="text/javascript" src="{$estate_folder}/apps/client/js/clientorderajax.js"></script>
<script type="text/javascript" src="{$estate_folder}/js/estate.js"></script>
<link rel="stylesheet" href="{$estate_folder}/template/frontend/{$current_theme_name}/jquery-ui/themes/base/jquery.ui.all.css">
<script type="text/javascript" src="{$estate_folder}/apps/system/js/sitebillcore.js"></script>
<script type="text/javascript" src="{$estate_folder}/template/frontend/{$current_theme_name}/js/interface.js"></script>
</head>

 

https://online.seranking.com пишет:

Удалите из верхней части страницы код JavaScript и CSS, блокирующий отображение
Решение

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


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

Вопрос к разработчикам...

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

Используйте кеш браузера
Если указывать в заголовках HTTP дату или срок действия статических ресурсов, браузер будет загружать уже полученные ранее ресурсы с локального диска, а не из Интернета.

Используйте кеш браузера для следующих ресурсов:
https://realty-centrum.com/apps/client/js/clientorderajax.js (60 секунд)
https://realty-centrum.com/apps/geodata/js/geodata.js (60 секунд)
https://realty-centrum.com/apps/mysearch/js/utils.js (60 секунд)
https://realty-centrum.com/apps/system/js/form_tabs.js (60 секунд)
https://realty-centrum.com/…apps/system/js/jquery.maskedinput.min.js (60 секунд)
https://realty-centrum.com/apps/system/js/json2.js (60 секунд)
https://realty-centrum.com/apps/system/js/mycombobox_ac.js (60 секунд)
https://realty-centrum.com/apps/system/js/realtymap.js (60 секунд)
https://realty-centrum.com/apps/system/js/refresher.functions.js (60 секунд)
https://realty-centrum.com/apps/system/js/sitebillcore.js (60 секунд)
https://realty-centrum.com/…g/data/prv574b0e685e9c9_1464536680_1.jpg (60 секунд)
... еще 2 десятка превью ...
https://realty-centrum.com/…g/data/prv5b85e12e26007_1535500590_1.jpg (60 секунд)
https://realty-centrum.com/js/autoNumeric-1.7.5.js (60 секунд)
https://realty-centrum.com/js/estate.js (60 секунд)
https://realty-centrum.com/template/frontend/agency/img/marker.png (60 секунд)
https://realty-centrum.com/…tend/realia/css/bootstrap-responsive.css (60 секунд)
https://realty-centrum.com/…end/realia/css/bootstrap.corrections.css (60 секунд)
https://realty-centrum.com/…mplate/frontend/realia/css/bootstrap.css (60 секунд)
https://realty-centrum.com/…late/frontend/realia/css/realia-blue.css (60 секунд)
https://realty-centrum.com/…end/realia/img/arrow-bottom-black@2x.png (60 секунд)
https://realty-centrum.com/…tend/realia/img/arrow-right-white@2x.png (60 секунд)
https://realty-centrum.com/template/frontend/realia/img/border.png (60 секунд)
https://realty-centrum.com/…plate/frontend/realia/img/btn-nav@2x.png (60 секунд)
https://realty-centrum.com/…late/frontend/realia/img/checkbox@2x.png (60 секунд)
https://realty-centrum.com/…frontend/realia/img/footer-border@2x.png (60 секунд)
https://realty-centrum.com/…ealia/img/glyphicons-halflings-white.png (60 секунд)
https://realty-centrum.com/…tend/realia/img/glyphicons-halflings.png (60 секунд)
https://realty-centrum.com/…emplate/frontend/realia/img/icon_top.png (60 секунд)
https://realty-centrum.com/…frontend/realia/img/icons/address@2x.png (60 секунд)
https://realty-centrum.com/…/realia/img/icons/features-bootstrap.png (60 секунд)
https://realty-centrum.com/…ia/img/icons/features-custom-widgets.png (60 секунд)
https://realty-centrum.com/…end/realia/img/icons/features-pencil.png (60 секунд)
https://realty-centrum.com/…realia/img/icons/features-responsive.png (60 секунд)
https://realty-centrum.com/…end/realia/img/icons/features-retina.png (60 секунд)
https://realty-centrum.com/…ontend/realia/img/icons/features-seo.png (60 секунд)
https://realty-centrum.com/…te/frontend/realia/img/icons/mail@2x.png (60 секунд)
https://realty-centrum.com/…/frontend/realia/img/icons/mobile@2x.png (60 секунд)
https://realty-centrum.com/…e/frontend/realia/img/icons/skype@2x.png (60 секунд)
https://realty-centrum.com/…nd/realia/img/icons/slider-handle@2x.png (60 секунд)
https://realty-centrum.com/template/frontend/realia/img/logo.png (60 секунд)
https://realty-centrum.com/…rontend/realia/img/share/facebook@2x.png (60 секунд)
https://realty-centrum.com/…/frontend/realia/img/share/flickr@2x.png (60 секунд)
https://realty-centrum.com/…/frontend/realia/img/share/google@2x.png (60 секунд)
https://realty-centrum.com/…rontend/realia/img/share/linkedin@2x.png (60 секунд)
https://realty-centrum.com/…frontend/realia/img/share/twitter@2x.png (60 секунд)
https://realty-centrum.com/…e/frontend/realia/img/share/vimeo@2x.png (60 секунд)
https://realty-centrum.com/…late/frontend/realia/js/bootstrap.min.js (60 секунд)
https://realty-centrum.com/…template/frontend/realia/js/interface.js (60 секунд)
https://realty-centrum.com/…late/frontend/realia/js/jquery.cookie.js (60 секунд)
https://realty-centrum.com/…late/frontend/realia/js/jquery.ezmark.js (60 секунд)
https://realty-centrum.com/template/frontend/realia/js/jquery.js (60 секунд)
https://realty-centrum.com/template/frontend/realia/js/realia.js (60 секунд)
https://realty-centrum.com/…mplate/frontend/realia/js/search_form.js (60 секунд)
https://realty-centrum.com/…ia/libraries/chosen/chosen-sprite@2x.png (60 секунд)
https://realty-centrum.com/…ntend/realia/libraries/chosen/chosen.css (60 секунд)
https://realty-centrum.com/…ia/libraries/chosen/chosen.jquery.min.js (60 секунд)
https://realty-centrum.com/…s/iosslider/_src/jquery.iosslider.min.js (60 секунд)
https://realty-centrum.com/…ightness/jquery-ui-1.10.2.custom.min.css (60 секунд)
https://realty-centrum.com/…/libraries/jquery-ui/js/jquery-ui.min.js (60 секунд)
https://api-maps.yandex.ru/…stable/?load=package.standard&lang=ru-RU (5 минут)
https://mc.yandex.ru/metrika/advert.gif (60 минут)
https://mc.yandex.ru/metrika/tag.js (60 минут)
https://www.google-analytics.com/analytics.js (2 часа)

рекомендуемое время кэширования разное, от 60 сек. до 60 мин.- 2 часов для счетчиков статистики и аналитики

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


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

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

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

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

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

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

Войти

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

Войти сейчас

  • Похожие публикации

    • Автор: Chernetskiy
      Портал convertmonster.ru поделился переводом статьи - масштабного исследования маркетолога Брайана Дина о ранжировании сайтов со стороны Google и факторах, влияющих на рейтинг сайта в глазах поисковика. В статье рассматриваются факторы с позиции их реального влияния и опровергаются многие мифы, присущие SEO-шникам. Обо всем по порядку:
      Факторы домена
      1. Возраст домена. 
      «Разница между доменом, которому шесть месяцев, и доменом, которому один год, на самом деле не так уж велика».
      Другими словами, они учитывают возраст домена. Но это не так важно.
      2. Ключевое слово появляется в домене верхнего уровня. Ключевое слово в доменном имени не даёт улучшения SEO, как раньше. Но оно всё ещё действует как сигнал о релевантности контента.
      3. Ключевое слово в качестве первого слова в имени домена. Домен, начинающийся с целевого ключевого слова, имеет преимущество перед сайтами, которые его не имеют (или если ключевое слово находится в середине или в конце доменного имени).
      4. Срок регистрации домена. Патент Google гласит:
      «Ценные (законные) домены часто оплачиваются на несколько лет вперёд, в то время как домены дорвеев (нелегитимные) редко используются более года. Таким образом, дата, когда регистрация домена истекает, может стать фактором при прогнозировании легитимности домена».
      5. Ключевое слово в имени поддомена. Группа экспертов Moz соглашается с тем, что ключевое слово, появляющееся в поддомене, может повысить рейтинг.
      6. История домена. Если у сайта менялся владелец или несколько раз истекал период аренды доменного имени, Google может «сбросить» историю сайта и исключить ссылки, указывающие на домен. В некоторых случаях домен со штрафом переносит штраф на нового владельца.
      7. Домен с точным попаданием ключа в имя домена. Домены с точным соответствием могут дать вам небольшое преимущество. Но если сайт с таким соответствием имеет низкое качество, он уязвим, так как может попасть под фильтр.
      Что ж, теперь это официально: с запуском Google EMD Update точное попадание в доменное имя больше не будет бесплатным. Это хорошо работало долгое время. Появилась целая индустрия инструментов и перекупщиков совпадающих доменных имён. Огромные премиальные цены на хорошие имена достигали заоблачного уровня, когда попадалось «денежное ключевое слово».
      Довольно долго сайт с точным совпадением ключа с доменным именем за несколько дней мог зайти в ТОП-3 практически без входящих ссылок. Это касалось буквально любой ниши, о которой можно мечтать.
      Домены с точным соответствием (домены ключевого слова)ー это, как правило, доменные имена, которые точно соответствуют ключевой фразе, по которой сайт хочет конкурировать с другими. Например, если сайт хочет ранжироваться по ключу [minor weather report] (краткосрочный прогноз погоды), доменом с точным соответствием будет MinorWeatherReport.com.
      В течение многих лет это был “бесплатный обед” для тех, кто в деле, а теперь лазейка закрыта, как и другие. Но вместо того, чтобы жаловаться на то, что бесплатный обед забирают, SEO-специалисты должны быть благодарны за то, что они хорошо наелись. Google довольно медленно закрывал лазейку, однако дешёвый способ получить трафик исчез.»
      8. Публичная или закрытая информация WhoIs. Закрытая информация WhoIs может быть признаком того, что вы что-то скрываете. Процитируем слова Мэтта Каттса из Google, который утверждает:
      «… Когда я проверял их данные whois, у всех была включена опция защиты конфиденциальности whois. Это довольно необычно. … Включение конфиденциальности данных whois автоматически не означает, что это плохо. Однако как только вы соберёте несколько подобных факторов, мы будем говорить о совершенно другом типе администратора сайта, чем тот, у кого только один сайт или около того».
      9. Наказанный владелец WhoIs. Если Google идентифицирует конкретного человека как спамера, разумеется, компания будет тщательно изучать другие сайты, принадлежащие этому человеку.
      10. Расширение TLD определённой страны. Наличие домена верхнего уровня с кодом страны (.cn, .pt, .ca) может помочь сайту ранжироваться в этой конкретной стране… но это может ограничить ранжирование в глобальном поиске.
      Факторы на уровне страницы
      11. Ключевое слово в теге заголовка. Хотя это не так важно, как раньше, тег заголовка остаётся важным сигналом внутренней SEO-оптимизации страницы.
      12. Тег заголовка (Title) начинается с ключевого слова. По данным Moz, теги заголовка, начинающиеся с ключевого слова, обычно работают лучше, чем теги заголовка с ключевым словом в конце.
      13. Ключевое слово в теге описания (Description). Google не использует метатег описания в качестве прямого сигнала ранжирования. Однако тег описания может повлиять на кликабельность, что является ключевым фактором ранжирования.
      14. Ключевое слово в теге H1. Тег H1 ー это «второй тег заголовка». Согласно результатам одного исследования корреляции, вместе с тегом заголовка Google использует тег H1 в качестве вторичного сигнала релевантности:
      15. Статистическая оценка TF-IDF. Причудливый способ спросить: «Как часто определённое слово появляется в документе?». Чем чаще это слово появляется на странице, тем более вероятно, что страница посвящена этой теме. Похоже, Google использует сложную версию TF-IDF.
      16. Объём контента. Материал с большим количеством слов может широко охватывать тему и, вероятно, алгоритм предпочитает такие тексты более коротким, поверхностным статьям. Действительно, недавнее отраслевое исследование факторов ранжирования показало, что объём контента влияет на позицию в SERP.
      17. Оглавление. Связанное оглавление помогает Google лучше понять контент страницы. Оно также может привести к отображению нескольких ссылок на сайт в выдаче:
      18. Плотность ключевых слов. Хотя это и не так важно, как раньше, Google может использовать плотность для определения темы страницы. Но не переборщите, это может навредить вам.
      19. Латентное семантическое индексирование ключевых слов в контенте (LSI). Ключевые слова LSI помогают поисковым системам понимать смысл многозначных слов (например, Apple ー  компьютерная компания или Apple ー яблоко, то есть фрукт). Наличие/отсутствие LSI, вероятно, также действует как сигнал качества контента.
      20. Ключевые слова LSI в тегах заголовка и описания. Как и в случае с контентом, ключевые слова LSI в метатегах страницы, вероятно, помогают Google различать слова с несколькими значениями. Ключевые слова также могут выступать как сигнал релевантности.
      21. Страница глубоко охватывает тему. Существует известная корреляция между глубиной освещения темы и рейтингом Google. Страницы, которые подробно раскрывают тему, скорее всего, имеют преимущество перед страницами, которые раскрывают тему частично.
      22. Оценка скорости загрузки страницы по HTML-коду. И Google, и Bing используют скорость загрузки страницы как фактор ранжирования. Роботы-пауки поисковых систем могут достаточно точно оценить скорость загрузки сайта по HTML-коду страницы.
      23. Скорость загрузки страницы в Chrome. Google также использует данные пользователя Chrome, чтобы лучше управлять временем загрузки страницы. Таким образом, Google может измерить, насколько быстро страница загружается для пользователей.
      24. Использование AMP (мобильных страниц с ускоренной загрузкой). Хотя страницы AMP не являются прямым фактором ранжирования в Google, это может быть требованием для ранжирования в мобильной версии карусели новостей Google.
      25. Соответствие сути. Соответствует ли содержимое страницы сути того, что ищет пользователь? Если да, страница может улучшить позицию по этому ключевому слову.
      26. Алгоритм «Колибри» от Google. Это изменение алгоритма помогло Google выйти за рамки ключевых слов. Благодаря «Колибри» Google может лучше понять тему страницы.
      27. Дублированный контент. Идентичный контент на том же сайте (даже слегка изменённый) может негативно повлиять на отображение сайта в поисковой системе.
      28. Rel = «Canonical». При правильном использовании этот атрибут может уберечь ваш сайт от штрафов Google за дублированный контент.
      29. Оптимизация изображений. Через имя файла, альтернативный текст, заголовок, описание и подпись изображения передают поисковым системам важные сигналы релевантности. 
      30. Новизна контента. Алгоритм Google «Кофеин» отдаёт предпочтение недавно опубликованному или обновлённому контенту, особенно для чувствительных ко времени запросов. Подчёркивая важность этого фактора, Google показывает дату последнего обновления определённых страниц:
      31. Масштаб обновлений контента. Объём правок и изменений также служит фактором новизны контента. Добавление или удаление целых разделов статьи влияет больше, чем перестановка нескольких слов местами или исправление опечатки.
      32. История обновления страницы. Как часто страница обновлялась? Ежедневно, еженедельно, каждые 5 лет? Частота обновления страницы также играет роль в факторе новизны контента.
      33. Положение ключевых слов. Появление ключевого слова в первых 100 словах контента страницы влияет на ранжирование в Google на первой странице.
      34. Ключевое слово в тегах H2 и H3. Ключевое слово в теге подзаголовка H2 или H3 может быть ещё одним незначительным сигналом релевантности. Джон Мюллер из Google утверждает:
      «Эти теги подзаголовков в HTML помогают понять структуру страницы».
      35. Качество исходящих ссылок. Многие SEO-оптимизаторы считают, что ссылки на авторитетные сайты передают в Google сигналы доверия к сайту. И это подтверждается недавним исследованием.
      36. Тема исходящих ссылок. Согласно алгоритму «Хиллтоп» (Hilltop), Google может использовать контент страниц, на которые вы ссылаетесь, в качестве сигнала релевантности. Например, если у вас есть страница об автомобилях, которая ссылается на страницы, связанные с фильмами, это даёт понять Google, что ваша страница посвящена мультфильму «Тачки», а не автомобилю.
      37. Грамматика и правописание. Правильная грамматика и орфография ー это сигнал качества контента, хотя несколько лет назад Каттс писал противоречивые посты о том, важно это или нет.
      38. Скопированный контент. Является ли контент страницы оригинальным? Если он скопирован с проиндексированной страницы, он не будет ранжироваться должным образом или вообще не будет проиндексирован.
      39. Обновление для мобильных устройств. Часто называемое «Мобайлгедон» (Mobilegeddon), это обновление алгоритма Google поощряло страницы, которые были должным образом оптимизированы для мобильных устройств.
      40. Удобство использования на мобильных устройствах. Сайты, которыми удобно пользоваться с мобильных устройств, могут иметь преимущество в индексации Google Mobile-first (с приоритетом для мобильных устройств).
      41. «Скрытый» контент на мобильных устройствах. Скрытый контент на мобильных устройствах может не индексироваться или его вес будет незначительным по сравнению с полностью видимым контентом. Сотрудник Google недавно заявил, что скрытый контент допустим, однако сказал: «Если это критично важный контент, пользователь должен его видеть…».
      42. Полезный «дополнительный контент». Согласно общедоступному руководству о правилах ранжирования в Google, полезный дополнительный контент является показателем качества страницы (и, следовательно, рейтинга Google). Примеры включают конвертеры валют, калькуляторы процентов по кредитам и интерактивные рецепты.
      43. Контент, скрытый за вкладками. Нужно ли пользователю кликнуть по вкладке, чтобы открыть часть контента на странице? Если да, Google заявил, что этот контент «не может быть проиндексирован».
      44. Количество исходящих ссылок. Если индексируемых исходящих ссылок слишком много, через них вес страницы может «утечь», что может повредить ранжированию этой страницы.
      45. Мультимедиа. Изображения, видео и другие мультимедийные элементы могут восприниматься как сигнал о качестве контента. Например, одно отраслевое исследование обнаружило зависимость между наличием мультимедиа и позицией в выдаче:
      46. Количество внутренних ссылок, ведущих на страницу. Количество внутренних ссылок на страницу указывает на её значимость по сравнению с другими страницами сайта (больше внутренних ссылок = более значима страница).
      47. Качество внутренних ссылок, ведущих на страницу. Внутренние ссылки со страниц, имеющих большой вес, воздействуют сильнее, чем ссылки с нулевым или низким весом.
      48. Битые ссылки. Слишком большое количество неработающих ссылок может быть признаком запущенного или брошенного сайта. В руководстве о правилах ранжирования в Google качество главной страницы оценивается по количеству неработающих ссылок.
      49. Уровень чтения. Нет сомнений, что Google оценивает уровень сложности текста веб-страниц. На самом деле, раньше Google предоставлял статистику по уровню чтения.
      Но что Google делает с этой информацией ー спорный вопрос. Некоторые специалисты говорят, что базовый уровень чтения поможет лучше ранжироваться, потому что он будет привлекать массы. Другие связывают базовый уровень прочтения с контент-мельницами вроде Ezine Articles.
      50. Партнёрские ссылки. Сами партнёрские ссылки, вероятно, не навредят рейтингу. Но если у вас их слишком много, алгоритм Google может уделять больше внимания другим сигналам о качестве, чтобы убедиться в том, что ваш сайт не является некачественным сайтом с партнёрскими ссылками.
      51. Ошибки HTML/проверка W3C. Множество ошибок HTML или небрежный код могут быть признаком некачественного сайта. Несмотря на споры, многие специалисты по SEO считают, что хороший код страницы ー сигнал качества.
      52. Авторитетность домена. При прочих равных условиях страница авторитетного домена будет иметь более высокий рейтинг, чем страница домена с меньшим авторитетом.
      53. Вес страницы (PageRank). Зависимость установлена не на 100%. Однако страницы с большим авторитетом, как правило, превосходят страницы без высокого авторитета ссылок.
      54. Длина URL. Чрезмерно длинные URL-адреса могут ухудшить видимость страницы для поисковой системы. На самом деле, несколько отраслевых исследований показали, что короткие URL-адреса, как правило, имеют небольшое преимущество в результатах поиска Google.
      55. Путь URL. Страница, расположенная ближе к главной странице сайта, может получить небольшое преимущество по сравнению со страницами, скрытыми глубоко в структуре.
      56. Редакторы. Хотя это и не подтверждено, Google оформила патент на систему, которая позволяет людям-редакторам влиять на результаты поисковой выдачи.
      57. Рубрика, к которой относится страница. Рубрика, в которой отображается страница, является сигналом релевантности. Страница, которая относится к тесно связанной по теме рубрике, может получить повышение релевантности относительно страницы, которая относится к несвязанной рубрике.
      58. Теги WordPress. Теги являются сигналом релевантности WordPress. Yoast.com пишет:
      «Единственный способ улучшить SEO ー это связать один фрагмент контента с другим, а точнее, группу постов друг с другом».
      59. Ключевое слово в URL. Ещё один сигнал релевантности. Представитель Google недавно назвал это «очень незначительным фактором ранжирования». Но всё же это фактор ранжирования.
      60. Строка URL. Рубрики в строке URL читаются Google и могут улучшить понимание, о чём же эта страница:
      61. Ссылки и источники. Добавление ссылок и источников, как это делают в исследовательских работах, может быть признаком качества. В Руководстве по качеству Google говорится, что рецензенты должны следить за источниками при просмотре определённых страниц: «Это тема, в которой важны опыт и/или авторитетные источники…». Однако Google отрицает, что использует внешние ссылки в качестве сигнала ранжирования.
      62. Маркированные и нумерованные списки. Маркеры и нумерованные списки помогают разбить контент на части, делая его более удобным для читателей. Google, вероятно, согласен с этим и может предпочесть контент с маркерами и числами.
      63. Приоритет страницы в файле Sitemap. Приоритет, отданный странице в файле sitemap.xml, может повлиять на рейтинг.
      64. Слишком много исходящих ссылок. Цитата из вышеупомянутого документа о рейтинге качества:
      «На некоторых страницах слишком много ссылок, которые мешают и отвлекают от основного контента».
      65. Сигналы о пользовательском опыте от других ключевых слов, по которым ранжируется страница. Если страница ранжируется по нескольким другим ключевым словам, это может давать Google сигнал о качестве. Фактически, в недавнем отчёте Google «Как работает поиск» говорится:
      «Мы ищем сайты, которые многие пользователи считают ценными для подобных запросов».
      66. Возраст страницы. Хотя Google предпочитает свежий контент, старые страницы, которые регулярно обновляются, могут превзойти новые.
      67. Удобный для пользователя макет сайта. Ещё раз процитируем документ «Руководство по качеству Google»
      «У страниц высшего качества расположение элементов делает основной контент сразу видимым».
      68. Припаркованные домены. Обновление Google в декабре 2011 года уменьшило видимость припаркованных доменов в выдаче.
      79. Полезный контент. Как отмечает читатель Backlinko Джаред Карризалес, Google умеет различать «качественный» и «полезный» контент.
      Факторы на уровне сайта
      70. Контент несёт ценность и заставляет задуматься. В Google заявили, что они с удовольствием будут штрафовать сайты, которые не приносят ничего нового или полезного, особенно некачественные сайты партнёрских программ.
      71. Страница контактов. В упомянутом выше руководстве по качеству говорится, что Google предпочитает сайты с «соответствующим количеством контактной информации». Проверьте, чтобы ваша контактная информация совпадала с информацией Whois.
      72. Доверие к домену / TrustRank (показатель доверия к сайту). Многие оптимизаторы считают, что показатель TrustRank является чрезвычайно важным фактором ранжирования. И Патент Google под названием «Ранжирование результатов поиска на основе фактора доверия», похоже, подтверждает это.
      73. Архитектура сайта. Хорошо продуманная архитектура сайта, например, «структура бункера», помогает Google тематически организовать ваш контент. Она также помогает роботу Google получать доступ и индексировать все страницы вашего сайта.
      74. Обновления сайта. Многие оптимизаторы полагают, что обновление сайта ー особенно когда добавляется новый контент ー  работает как фактор новизны для всего сайта. Хотя Google недавно отрицал, что алгоритм учитывает частоту публикации.
      75. Наличие файла Sitemap. Карта сайта помогает поисковым системам индексировать страницы легче и тщательнее, улучшая видимость сайта. Однако Google недавно заявил, что HTML-карты сайтов не являются «полезными» для SEO.
      76. Время непрерывной работы сайта. Большое количество простоев из-за проблем с обслуживанием сайта или сервером может повредить рейтингу (сайт могут даже убрать из индекса, если он не начнёт работать).
      77. Расположение сервера. Расположение сервера влияет на ранжирование вашего сайта в разных регионах. Особенно это важно для чувствительных к географическому расположению запросов.
      78. Сертификат SSL. Google подтвердил, что HTTPS является фактором ранжирования.
      «Основной блог веб-мастеров Google«
      HTTPS как сигнал ранжирования
      Среда, 6 августа 2014 г.
      Уровень администратора сайта: все
      Безопасность ー главный приоритет Google. Мы вкладываем большие средства в обеспечение того, чтобы наши сервисы использовали лучшие в отрасли средства безопасности, такие как надёжное шифрование HTTPS по умолчанию. Это означает, что люди, использующие поиск, Gmail и Google Drive, например, автоматически имеют безопасное соединение с Google.
      Помимо собственных сервисов, мы также работаем над тем, чтобы область безопасного интернета распространялась шире. Большая часть работы заключается в том, чтобы сайты, к которым люди получают доступ из Google, были безопасными. Например, мы создали ресурсы, которые помогут веб-мастерам предотвращать и устранять нарушения защиты на своих сайтах».

      Однако, согласно Google, HTTPS действует только как «разрушитель связей».
      79. Страница «Персональные данные и конфиденциальность»  и «Условия оказания услуг». Эти две страницы помогают  сообщить Google, что сайт является надёжным звеном интернета. Они также помогают улучшить показатели экспертности, авторитета, доверия к сайту.
      80. Дублирующаяся метаинформация на сайте. Дублирующаяся метаинформация на вашем сайте может снизить видимость всех страниц.
      81. Строка навигации. Это вид удобной архитектуры сайта, которая помогает пользователям (и поисковым системам) осознавать, где они находятся:
      Google заявляет: «Поисковая система Google использует навигационную разметку в теле веб-страницы для классификации информации со страницы в результатах поиска».
      82. Оптимизация для мобильных устройств. Поскольку более половины всех поисковых запросов выполняется с мобильных устройств, Google хочет, чтобы ваш сайт был оптимизирован для мобильных пользователей. Фактически Google теперь наказывает сайты, которые плохо отображаются на мобильных устройствах.
      83. YouTube. Нет сомнений в том, что в поисковой выдаче видеороликам YouTube предоставляется приоритет (вероятно потому, что YouTube принадлежит Google).
      Действительно, Search Engine Land обнаружил, что трафик на YouTube.com значительно вырос после запуска алгоритма Google Panda.
      84. Удобство использования сайта. Сайт с неудобной структурой или навигацией может косвенно повлиять на рейтинг, так как люди будут быстро уходить, просматривать мало страниц и показатель отказов будет высоким (другими словами, это факторы системы RankBrain).
      85. Использование Google Analytics и Google Search Console. Некоторые специалисты считают, что подключение этих двух программ к сайту может улучшить индексацию страниц. Они могут напрямую влиять на рейтинг, предоставляя Google больше данных для работы (т. е. более точный показатель отказов, независимо от того, получаете ли вы реферальный трафик с входящих ссылок и т. д.). Тем не менее Google утверждает, что это миф.
      86. Отзывы пользователей / репутация сайта. Репутация компании на таких сайтах, как Yelp.com (сайт поиска местных услуг), вероятно, играет важную роль в алгоритме Google. После того как один сайт был пойман на обмане клиентов в попытке получить внимание прессы и ссылки, Google опубликовал на редкость откровенную информацию о том, как они используют отзывы в интернете.
      Продолжение следует...
      Оригинал публикации: https://backlinko.com/google-ranking-factors
    • Автор: mykvartira
      Всем доброго дня.
      С ростом запросов на проекте сайт начал ложиться. Подключился к cloudflare, но можно сказать это ничего не дало (разумеется на бесплатный план). Сайт как до появления трафика, так и сейчас не показывает зеленого света по Гугл  спид. 
      Необходимо выполнить внутреннею оптимизацию.
      Кто может с этим помочь и что будет стоить?
      скайп freedomice21
      почта
      Telegram @mykvartira
       
    • Автор: metrpro
      Следуя тенденциям времени, решил поставить себе на сайт уведомление об использовании cookie. Пока это требование установлено законодательством Евросоюза, но, говорят, добавляет кармы сайту в глазах поисков (посмотрим).
      Решение состоит из двух частей - внешнего javascript-файла, который с завидной периодичностью (раз в 365 дней) уведомляет пользователя о том, что на сайте куки, и вызова этого скрипта.
      1. Скрипт, ставится во внешний файл - у меня он лежит по адресу: /js/ck.js. Вот его текст:
      (function (window, undefined){ "use strict"; var document = window.document; function log() { if (window.console && window.console.log) { for (var x in arguments) { if (arguments.hasOwnProperty(x)) { window.console.log(arguments[x]); } } } } function AcceptCookie() { if (!(this instanceof AcceptCookie)) { return new AcceptCookie(); } this.init.call(this); return this; } AcceptCookie.prototype = { init: function () { var self = this; if(self.readCookie('pjAcceptCookie') == null) { self.appendCss(); self.addCookieBar(); } var clear_cookie_arr = self.getElementsByClass("pjClearCookie", null, "a"); if(clear_cookie_arr.length > 0) { self.addEvent(clear_cookie_arr[0], "click", function (e) { if (e.preventDefault) { e.preventDefault(); } self.eraseCookie('pjAcceptCookie'); document.location.reload(); return false; }); } }, getElementsByClass: function (searchClass, node, tag) { var classElements = new Array(); if (node == null) { node = document; } if (tag == null) { tag = '*'; } var els = node.getElementsByTagName(tag); var elsLen = els.length; var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)"); for (var i = 0, j = 0; i < elsLen; i++) { if (pattern.test(els[i].className)) { classElements[j] = els[i]; j++; } } return classElements; }, addEvent: function (obj, type, fn) { if (obj.addEventListener) { obj.addEventListener(type, fn, false); } else if (obj.attachEvent) { obj["e" + type + fn] = fn; obj[type + fn] = function() { obj["e" + type + fn](window.event); }; obj.attachEvent("on" + type, obj[type + fn]); } else { obj["on" + type] = obj["e" + type + fn]; } }, createCookie: function (name, value, days){ var expires; if (days) { var date = new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); expires = "; expires="+date.toGMTString(); } else { expires = ""; } document.cookie = name+"="+value+expires+"; path=/"; }, readCookie: function (name) { var nameEQ = name + "="; var ca = document.cookie.split(';'); for(var i=0;i < ca.length;i++) { var c = ca[i]; while (c.charAt(0) === ' ') { c = c.substring(1,c.length); } if (c.indexOf(nameEQ) === 0) { return c.substring(nameEQ.length,c.length); } } return null; }, eraseCookie: function (name) { var self = this; self.createCookie(name,"",-1); }, appendCss: function() { var self = this; var cssId = 'pjAcceptCookieCss'; if (!document.getElementById(cssId)) { var head = document.getElementsByTagName('head')[0]; var link = document.createElement('link'); link.id = cssId; link.rel = 'stylesheet'; link.type = 'text/css'; link.href = 'https://fonts.googleapis.com/css?family=Open+Sans'; link.media = 'all'; head.appendChild(link); } var cssCode = ""; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarBtn,"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarBtn:after { -webkit-transition: all .5s ease-in-out; -moz-transition: all .5s ease-in-out; -ms-transition: all .5s ease-in-out; -o-transition: all .5s ease-in-out; transition: all .5s ease-in-out; }"; cssCode += "#pjAcceptCookieBar { position: fixed; bottom: 0; left: 0; z-index: 9999; overflow-x: hidden; overflow-y: auto; width: 100%; max-height: 100%; padding: 10px 0; background: #3b3988; opacity: 0.8; font-family: 'Open Sans', sans-serif; text-align: center;}"; cssCode += "#pjAcceptCookieBar * { padding: 0; margin: 0; outline: 0; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarShell { width: 90%; margin: 0 auto; }"; cssCode += "#pjAcceptCookieBar a[href^=tel] { color: inherit; }"; cssCode += "#pjAcceptCookieBar a:focus,"; cssCode += "#pjAcceptCookieBar button:focus { outline: unset; outline: none; }"; cssCode += "#pjAcceptCookieBar p { font-size: 14px; line-height: 1.4; color: #fff; font-weight: 400; }"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarActions { padding-top: 10px; }"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarBtn { position: relative; display: inline-block; height: 20px; padding: 0 30px; border: 0; background: #4285f4; opacity: 0.9; font-size: 14px; line-height: 14px; color: #fff; text-decoration: none; vertical-align: middle; cursor: pointer; border-radius: 0; -webkit-appearance: none; -webkit-border-radius: 0; -webkit-transform: translateZ(0); transform: translateZ(0); -webkit-backface-visibility: hidden; backface-visibility: hidden; -moz-osx-font-smoothing: grayscale; }"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarBtn:hover,"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarBtn:focus { text-decoration: none; }"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarBtn:after { position: absolute; top: 0; right: 52%; bottom: 0; left: 52%; z-index: -1; border-bottom: 4px solid #14428d; background: rgba(20, 66, 141, .3); content: ''; }"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarBtn:hover:after,"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarBtn:focus:after { right: 0; left: 0; }"; cssCode += "@media only screen and (max-width: 767px) {"; cssCode += "#pjAcceptCookieBar { padding: 15px 0; }"; cssCode += "#pjAcceptCookieBar .pjAcceptCookieBarShell { width: 96%; }"; cssCode += "#pjAcceptCookieBar p { font-size: 14px; }"; cssCode += "}"; var styleElement = document.createElement("style"); styleElement.type = "text/css"; if (styleElement.styleSheet) { styleElement.styleSheet.cssText = cssCode; } else { styleElement.appendChild(document.createTextNode(cssCode)); } document.getElementsByTagName("head")[0].appendChild(styleElement); }, addCookieBar: function(){ var self = this; var htmlBar = ''; htmlBar += '<div class="pjAcceptCookieBarShell"><form action="#" method="post">'; htmlBar += '<p>Для улучшения работы сайта и его взаимодействия с пользователями мы используем файлы cookie. Продолжая работу с сайтом, Вы разрешаете использование cookie-файлов. Вы всегда можете отключить файлы cookie в настройках Вашего браузера.</p>'; htmlBar += '<div class="pjAcceptCookieBarActions"><button type="button" class="pjAcceptCookieBarBtn">ОК</button></div></form></div>'; var barDiv = document.createElement('div'); barDiv.id = "pjAcceptCookieBar"; document.body.appendChild(barDiv); barDiv.innerHTML = htmlBar; self.bindCookieBar(); }, bindCookieBar: function(){ var self = this; var btn_arr = self.getElementsByClass("pjAcceptCookieBarBtn", null, "button"); if(btn_arr.length > 0) { self.addEvent(btn_arr[0], "click", function (e) { if (e.preventDefault) { e.preventDefault(); } self.createCookie('pjAcceptCookie', 'YES', 365); document.getElementById("pjAcceptCookieBar").remove(); return false; }); } } }; window.AcceptCookie = AcceptCookie; })(window); window.onload = function() {AcceptCookie = AcceptCookie();} 2. В своем шаблоне (у меня Реалия) ищем файл main.tpl, лежит по адресу /template/frontend/realia/. Перед закрывающим тегом </body> вызываем внешний скрипт:
      <script src="/js/ck.js"></script> 3. Получаем решение:

      Все. Каждый пользователь ежегодно будет уведомляться о куках. 
      PS: данное решение найдено на просторах интернета и немного адаптировано. Сам скрипт может быть ужат, но я не стал этого делать, т.к. работать с ним легче в таком форматировании.
      PPS: кому не нравится полупрозрачность фона уведомления, уберите параметр opacity: 0.8;
       
       
    • Автор: TopRaN
      Надеюсь админ создаст отдельный раздел для этого и создаст в ней (переименует мою тему)
      В данном разделе пользователи смогут подчеркнуть для себя интересные идеи которые смогут применить на своем сайте
      Первый урок (переворот картинки без использования Jquery)
       
      начнем
       
      1. Для начала создадим область (container)  в который поместим 2 блока с содержимым box-front и box-back
      <div class="container">    <div class="box-front">        Передняя сторона    </div>    <div class="box-back">        Задняя сторона    </div></div> 2. Когда мы прописали блоки приступим к написанию стилей и соответственно анимации.
      <style>.container{        perspective: 800px;        -webkit-perspective: 800px;        background: radial-gradient(#e0e0e0, #aaa);        width:100%;        height:300px;        border-radius:6px;        position:relative;        }.box-front,        .box-back{        transform-style: preserve-3d;        -webkit-transform-style: preserve-3d;         backface-visibility: hidden;        -webkit-backface-visibility: hidden;         width:50%;        height:80%;        position:absolute;        top:10%;        left:25%;        background:#476AF1;        transition:0.8s; text-align:center;        color:#FFF;        }.box-back{        transform:rotateY(180deg);        -webkit-transform:rotateY(180deg);        background-color:#7E0002;        }.container:hover .box-front{                /*пишем эффект при наведении мышкой*/        transform:rotateY(180deg);        -webkit-transform:rotateY(180deg);        }.container:hover .box-back{             /* эффект при убранной мышки*/        transform:rotateY(360deg);        -webkit-transform:rotateY(360deg);        }</style> Получаем переворачивающую картинку при наведении на нее мышкой
      index2.html
    • Автор: TopRaN
      Недавно пользователи спрашивали как поменять цвет на определенной категории объекта.
      для начала создадим стили в котором мы определим сам цвет заливки и шрифта
      Открываем файл стилей (я предпочитаю этот bootstrap.corrections.css ) и в конец файла вставляем следующее содержимое:
      .reder { background-color:#848080; color:white; } После открывает файл header.tpl и добавляем следующий код :
      <script type="text/javascript" > $(document).ready(function() { $("#topic_id [value='2'],#topic_id [value='11'],#topic_id [value='3']").toggleClass("reder"); }); </script> где value 2,11,3 это ID категорий типа недвижимости. Узнать ID можно в админке в разделе "структура"
      В итоге мы получаем