| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | ||||||||||||||||||||||||||
2 | № | Важность | Название | Описание | Раздел/страница/ссылка | Примерная оценка времени исправления | ||||||||||||||||||||
3 | 1 | 1 | Подключение стилей и скриптов в шаблоне сайта | Надо подключить стили и скрипты через API, чтобы работало объединение и сжатие скриптов. Сейчас объединение включено, но толку от этого нет. После включения объединения надо тестировать сайт, при этом могут сломаться JS плагины. | все | 0,5 - 2 часа | ||||||||||||||||||||
4 | 2 | 1 | Выбор региона | В шапке некешированный запрос на выборку иерархии местоположений создает доп. нагрузку на БД и сервер на всех страницах. /bitrix/templates/example/include/user_location.php Выборку надо закешировать с помощью CPHPCache https://dev.1c-bitrix.ru/api_help/main/reference/cphpcache/index.php | все | 0,5 - 1 час | ||||||||||||||||||||
5 | 3 | 1 | Доп. запрос для региона | В header.php (строка 400) идет еще один некешированный запрос на выбор данных по региону пользователя. Результат этого запроса похоже используется только в проверке $arRegion['UF_SHOP'] ниже по коду в header.php. Можно зафиксировать свойство UF_SHOP в сессии и далее делать проверку по параметру в сессии. Сохранить UF_SHOP в сессию можно в момент установки выбранного региона в /set_region.php или после первого запроса в header.php и повторно этот запрос не выполнять. | все | 0,5 часа | ||||||||||||||||||||
6 | 4 | 2 | Верхнее меню | Для раздела «продукция» строится подменю с разделами и элементами. В компоненте меню не включено кеширование, но выборка разделов и элементов каталога кешируется с помощью 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 | 5 | 2 | Новости на главной | Новости на главной не кешируются. Надо включить кеширование с установленным фильтром "CACHE_FILTER" => "Y" — там два компонента новостей. | главная | 10 минут | ||||||||||||||||||||
8 | 6 | 1 | Баннеры на главной | Выборка баннеров не кешируется /include/random-banner-main.php Не смотря на название файла, никакого рандома в показе баннеров нет. Поэтому надо закешировать выборку или переделать баннеры на news.list. | главная | 0,5 - 1 час | ||||||||||||||||||||
9 | 7 | 1 | Редирект в разделе каталога | В начале /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 | 8 | 1 | Эпилог списка товаров | /bitrix/templates/example/components/bitrix/catalog.section/main/component_epilog.php есть некешированный запрос на определение $bredcrumbEl, запрос надо перенести в result_modifier.php компонента. | разделы каталога | 15 минут | ||||||||||||||||||||
11 | 9 | 1 | Карточка товара | /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 | 10 | 1 | Где купить | Полностью некешированная выборка местоположений и дилеров, генерирует много запросов, выполняется долго. Сама выборка неоптимальная, есть подзапросы в цикле. Надо оптимизировать и закешировать выборки, еще лучше — оформить все в виде отдельного компонента с кешированием. | http://example.com/shops/ | 2 - 4 часа | ||||||||||||||||||||
13 | 11 | 1 | Новости партнеров | Не кешируется список новостей, указать "CACHE_FILTER" => "Y" | http://example.com/partners_news/ | 10 минут | ||||||||||||||||||||
14 | 12 | 1 | Техническая информация | Некешированная выборка на странице /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 |