ABCDEFGHIJKLMNOPQRSTUVWXYZ
1
2
ВажностьНазваниеОписаниеРаздел/страница/ссылкаПримерная оценка времени исправления
3
11Подключение стилей и скриптов в шаблоне сайтаНадо подключить стили и скрипты через API, чтобы работало объединение и сжатие скриптов. Сейчас объединение включено, но толку от этого нет. После включения объединения надо тестировать сайт, при этом могут сломаться JS плагины.все0,5 - 2 часа
4
21Выбор региона В шапке некешированный запрос на выборку иерархии местоположений создает доп. нагрузку на БД и сервер на всех страницах. /bitrix/templates/example/include/user_location.php Выборку надо закешировать с помощью CPHPCache https://dev.1c-bitrix.ru/api_help/main/reference/cphpcache/index.php
все0,5 - 1 час
5
31Доп. запрос для регионаВ header.php (строка 400) идет еще один некешированный запрос на выбор данных по региону пользователя. Результат этого запроса похоже используется только в проверке $arRegion['UF_SHOP'] ниже по коду в header.php. Можно зафиксировать свойство UF_SHOP в сессии и далее делать проверку по параметру в сессии. Сохранить UF_SHOP в сессию можно в момент установки выбранного региона в /set_region.php или после первого запроса в header.php и повторно этот запрос не выполнять.все0,5 часа
6
42Верхнее менюДля раздела «продукция» строится подменю с разделами и элементами. В компоненте меню не включено кеширование, но выборка разделов и элементов каталога кешируется с помощью CPHPCache.
Выборка идет в файлах:
/.main.menu_ext.php
/catalog/.left.menu_ext.php
/catalog/.submenu.menu.php
shop/catalog/.left.menu_ext.php
Есть 4 способа, как улучшить меню:
1. Кеш меню сейчас зависит от сайта, региона пользователя, поддомена региона и $_SERVER['REQUEST_URI']. Думаю, здесь можно заменить $_SERVER['REQUEST_URI'] на $APPLICATION->GetCurPage(), чтобы GET-параметры в адресе страницы не влияли на кеш меню. Таким образом сократится кол-во кеша, и кеш не будет создаваться для GET параметров в запросе (с которыми возможно открывают страницу боты).
2. Можно увеличить время кеширования, сейчас указан час. Надо ставить максимальное время, в течении которого не обновляется каталог. Хотя бы сутки поставить.
3. В самой логике выборки товаров по разделам есть подзапросы. Список разделов выбирается с помощью компонента bitrix:menu.sections. Далее по каждому разделу выполняются отдельные запросы с получение товаров раздела. Можно сделать один запрос на получение все товаров и далее распределять товары по разделам в цикле. Это сократит кол-во запросов в БД.
4. Более радикальная переделка меню — сделать подгрузку товаров в разделах на аяксе. Это позволит сократить время первоначальной генерации страницы при отсутствии кеша меню.
все1,2 — 5 минут
3 — 3-6 часов
4 — 4-8 часов
7
52Новости на главнойНовости на главной не кешируются. Надо включить кеширование с установленным фильтром "CACHE_FILTER" => "Y" — там два компонента новостей.главная10 минут
8
61Баннеры на главнойВыборка баннеров не кешируется /include/random-banner-main.php Не смотря на название файла, никакого рандома в показе баннеров нет. Поэтому надо закешировать выборку или переделать баннеры на news.list.главная0,5 - 1 час
9
71
Редирект в разделе каталога
В начале /bitrix/templates/example/components/bitrix/catalog/production/section.php идет определение кол-ва элементов в текущем разделе, если элемент один — идет редирект в карточку элемента. Запрос на подсчет кол-ва элементов не кешируется и сам по себе не оптимален. Подсчитать кол-во элементов можно с помощью SelectedRowsCount, если == 1, то сделать один раз Fetch(), сейчас делается GetNext() в цикле. Сам запрос надо закешировать с помощью CPHPCache.
Еще одно решение задачи — сделать редирект в component_epilog.php шаблона bitrix:catalog.section, там будет доступна информация по кол-ву выбранных элементов, на основе этого можно сделать редирект без дополнительных запросов на подсчет кол-ва.

Аналогичное есть в /bitrix/templates/example/components/bitrix/catalog/catalog/section.php
разделы каталога1 час
10
81Эпилог списка товаров/bitrix/templates/example/components/bitrix/catalog.section/main/component_epilog.php есть некешированный запрос на определение $bredcrumbEl, запрос надо перенести в result_modifier.php компонента.разделы каталога15 минут
11
91Карточка товара/bitrix/templates/example/components/bitrix/catalog/production/element.php есть два некешированных запроса после компонента bitrix:catalog.element. Запросы надо перенести в result_modifier шаблона компонента catalog.element, чтобы они кешировались. Логику обработки этих запросов перенести в component_epilog шаблона компонента catalog.element. Возможно надо передавать компоненту доп. параметры, чтобы они учитывались в кеше.

Аналогичное есть в /bitrix/templates/example/components/bitrix/catalog/catalog/element.php
карточки товаров1 - 1,5 часа
12
101Где купитьПолностью некешированная выборка местоположений и дилеров, генерирует много запросов, выполняется долго. Сама выборка неоптимальная, есть подзапросы в цикле. Надо оптимизировать и закешировать выборки, еще лучше — оформить все в виде отдельного компонента с кешированием.http://example.com/shops/2 - 4 часа
13
111Новости партнеровНе кешируется список новостей, указать "CACHE_FILTER" => "Y"
http://example.com/partners_news/
10 минут
14
121Техническая информацияНекешированная выборка на странице /docs/index.php. Надо оформить в виде компонента с кешированием.
Скорее всего, будет тот же самый компонент, что и документации дилеров, только с другими шаблоном/параметрами.
http://example.com/docs/1 час
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100