Оптимизация больших сайтов. ч.1

SEO продвижение больших сайтов + Мнения экспертов

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

Какие сайты называются большими?

Хотя понятие большого сайта является абстрактным, обычно большими считаются сайты с количеством уникальных страниц 5 000.

Часто встречаемые типы больших сайтов: информационные, новостные, сервисы с базой знаний.

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

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

Большие сайты обычно уже обладают огромным по объему трафиком и позициями в топе по множеству ключевых фраз. Любые правки должны быть согласованы. Результаты должны быть проанализированы.

Пример цикла выполнения работ по реализации продвижения большого сайта.

цикл SEO продвижения больших сайтов

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

По большим сайтам с точки зрения организации важно следующее:

  • Выполняйте задачи по очереди. Структурируйте задачи, разбивайте на этапы по приоритету и действуйте по намеченному плану. Сложно охватить все сразу;
  • При выполнении комплекса мер по поисковой оптимизации для большого сайта исходите из долгосрочных целей. Помимо текущей срочной оптимизации, выполняйте работы по созданию новых кластеров, контролируйте работы по разработке адаптивной версии сайта и проверяйте результаты;
  • Используйте данные из системы аналитики, поскольку на основе большого объема данных можно делать правильные выводы о трафике для расстановки приоритетов в списке задач по поисковой оптимизации. Например, если большинство пользователей открывает сайт на мобильных устройствах, то адаптивность сайта будет приоритетной задачей;
  • Большой объем страниц и авторитет сайта открывает дополнительные возможности по поисковой оптимизации. Используйте дополнительные возможности больших сайтов.
  • Использование дополнительных возможностей по продвижению, которые свойственны большим сайтам;
  • Внутренняя оптимизация;
  • Оптимизация внешнего ссылочного профиля;

К дополнительным возможностям больших сайтов относятся:

  • Тегирование;
  • Оптимизация статического веса посредством перелинковки.
  • Использование агрегаторов поисковых систем;
  • Оптимизация сайта под информационные поводы;
  • Индексация всех страниц сайта.

Внутренняя оптимизация

На этапе начала работ по внутренней оптимизации сайта поисковый оптимизатор проводит сбор информации, анализирует полученные данные, выявляет проблемы и разрабатывает план работ по улучшению сайта.

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

  • Оптимизация редиректов;
  • Оптимизация дублей с использованием rel canonical;
  • Оптимизация rel alternate;
  • robots.txt;
  • Оптимизация sitemap.xml
  • HTML карта сайта;
  • URL;
  • 404 страница;
  • Настройка noindex;
  • Скорость загрузки;
  • Мета-теги Title;
  • Мета-теги Description;
  • Теги alt;
  • Теги заголовков h;
  • Кодировка документов;
  • Ошибки по панели Google;
  • Ошибки по панели Yandex;
  • Ошибки в верстке сайта;
  • Ошибки по панели Bing;
  • Устранение из индекса копий страниц;
  • Микроформаты.

Исходя из ограничений по ресурсам, в список задач поискового оптимизатора входит и работа по расстановке приоритетов.

К примеру, если поисковый оптимизатор выгрузил адреса всех страниц сайта, провел проверку на индексацию и обнаружил, что множество страниц не проиндексированы, то задача по добавлению документов в индекс поисковой системы является приоритетной.

Добавление в индекс можно провести используя разные методы. Например, добавить страницу в индекс поисковой системы можно следующими способами:

  • Создать блок перелинковки на страницах второго уровня вложенности с целью публикации ссылок на непроиндексированные актуальные документы;
  • Добавить в sitemap.xml список из непроиндексированных страниц, обновив для страниц значение в параметре lastmod. Пока страницы сайта не будут проиндексированы, важно удалить из карты список других документов.

Помимо индексации страниц сайта, перелинковка на большом сайте может быть использована и для продвижения основных страниц за счет оптимизации статического веса, передаваемого по ссылкам.

Перелинковка

Большой сайт обладает огромным количеством страниц с близким к уникальному или уникальным содержанием. Поисковый оптимизатор может использовать большое количество страниц для организации передачи веса на основные продвигаемые страницы. Для передачи веса достаточно использовать перелинковку.

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

Блок перелинковки должен быть оформлен в формате рекомендательного блока.

В блоке перелинковки должны находиться:

  • Текст ссылок;
  • Краткое описание страниц в виде текста;
  • Изображения.

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

Ссылка на сервис — Аудит.

Сервис бесплатный, если сканирование проводится для 500 страниц.

Микроформаты

Для увеличения количества переходов из органической выдачи поисковой системы рекомендуется использовать микроформаты.

Использование микроформатов позволяет вывести больше информации в поисковой выдаче и привлечь больше внимания к ссылкам на сайт, оказывая влияние на привлекаемый объем трафика.

В списке комплекса мер по внутренней поисковой оптимизации есть и задача по страницам копиям.

Копии надо либо удалить, либо посредством rel=canonical указать на всех подобных страницах ссылку на основной документ.

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

Чем отличается дубликат от копии

Google различает дубликаты (duplicate) и копии (copy) контента.

Сайты со страницами копиями подвергаются санкциям со стороны поисковых систем.

К скопированному контенту относятся все виды контента с уникализацией, например:

  • Spinning content;
  • Контент с заменой слов (если заменить в тексте слово «найти» на «поиск», то контент останется копией);
  • Контент содержащий набор копий из разных источников;
  • Сайты копирующие контент с динамических страниц.

Дубликатом считается скопированный контент, но с добавочной ценностью.

Google рекомендует не использовать boilerplate-текст.

Boilerplate — любой текст, который повторно используется в новых контекстах без существенного отличия от оригинала. Например, если продается iPhone в разных цветах, не стоит создавать страницы для каждого варианта цветового решения. Стоит создать одну страницу с опцией выбора цвета, без смены адреса страницы.

Если на сайте были подобные страницы ранее, то после создания основной страницы рекомендуется настроить rel=canonical или 301-ый редирект с подмножества предыдущих.

Не стоит закрывать подобные страницы от индексации через директиву robots.

Если создать один документ сложно ввиду особенностей системы управления сайтом, например если нет возможности добавить фильтрацию по цвету для iPhone без смены адреса страницы, то в целях поисковой оптимизации рекомендуется использование rel=canonical.

Семантическое ядро

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

Читать статью  Как улучшить UX/UI сайта — семь советов по юзабилити

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

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

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

После завершения комплекса мер по группировке семантического ядра следует перейти к задаче по расширению ядра.

Потенциал по увеличению трафика находится в увеличении трафика по низкочастотным запросам.

Доля объема трафика по низкочастотным запросам может быть больше за суммарный объем трафика по высокочастотным и среднечастотным запросам.

Обычно низкочастотные запросы являются низкоконкурентными.

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

  • Сбор низкочастотных ключевых фраз на основе тематики сайта и реального спроса на рынке для расширения семантического ядра;
  • Отсев ключевых фраз, по которым из поисковой выдачи возможен минимальный трафик. К примеру, частотность менее 10;
  • Разработка технического задания по созданию документов под низкочастотные запросы.
  • Как;
  • Где;
  • Почему.
  • Конкуренция в органической выдачи поисковой системы;
  • Объем потенциального трафика.

Поисковый оптимизатор находит тренды, сезонные всплески. Далее важно заранее начать работы по продвижению.

При расчете приоритетов для ключевых фраз из семантического ядра следует использовать ряд параметров. Примеры параметров:

  • Количество показов для ключевой фразы в месяц. Параметр используется для оценки объема трафика;
  • Стоимость перехода по рекламному объявлению. Параметр используется для оценки конкуренции;
  • Количество коммерческих сайтов в топе. Количество определяется для проверки поисковой выдачи на соответствие типа сайта. Например, если информационные сайты в поисковой выдаче отсутствуют, то продвигать информационный сайт по исследуемому запросу нет смысла в принципе;
  • Геозависимость;
  • Сезонность;
  • Тематика. Определяется для проверки интента.

Есть готовые инструменты для проведения подобного анализа. К примеру, в MegaIndex есть сервис для классификации запросов.

Провести анализ по ключевым фразам можно используя API. Полный список методов API от MegaIndex по ссылке далее — MegaIndex API.

Для анализа ключевой фразы следует использовать метод под названием visrep/get_ser, описание метода по ссылке далее — visrep/get_ser.

Пример запроса к API для ключевой фразы smm news:

http://api.megaindex.com/visrep/word_stats?key=&word=smm+news&ser_id=1

Пример ответа на запрос:

классификация фразы по api

Оптимизация сайта под информационные поводы

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

Специалист по продвижению может проводить оптимизацию сайта под информационные поводы путем использования внутренней и внешней поисковой оптимизации сайта. К примеру, поисковый оптимизатор может выполнять следующий комплекс задач:

  • Проводить агрегацию ленты постов, используя rel=canonical;
  • Оптимизировать внешний ссылочный профиль для страницы с описанием всплеска;
  • Оптимизировать поисковые подсказки. Пример сервиса — В Подсказке;
  • Оптимизировать социальные ссылки. Пример сервиса — GetSocial.

Виджет

Поисковый оптимизатор может провести работы по созданию технического задания на разработку интерактивного виджета информера, который мог бы быть встроен на сторонние сайты, к примеру:

  • Рейтинг банков;
  • Курс валют;
  • Календари событий.

Агрегаторы

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

Если на сайте ежедневно размещается от 10 новостей и более, сайт может использовать агрегаторы поисковых систем.

  • Google.Новости. Как отправить запрос на добавление в Google
  • Yandex.Новости.

Преимущество использования агрегатора от Google в том, что поисковая система позволяет привлекать трафик из предустановленного браузера Google Chrome на смартфонах.

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

Основная цель добавления проекта в новостные агрегаторы поисковых систем заключается в привлечении трафика, оказывающего влияние на поведенческие факторы.

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

Внешние ссылки

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

Как пример, поисковый оптимизатор может использовать авторитет и объем сайта для привлечения трафика из агрегаторов поисковых систем.

Новые трендовые материалы могут продвигаться также за счет закупки ссылок с тематических площадок.

Санкции от поисковых систем в данном случае наложены не будут, так как доля покупных ссылок будет не высокой.

Для роста позиций сайта покупать следует именно арендные ссылки и в случае, если тема является трендом.

Основная и единственная цель закупки ссылок в данном случае заключается в оптимизации страниц сайта для попадания в событийный блок поисковой системы.

Есть и дополнительные преимущества от вывода страниц трендов в событийный блок, расположенный в топе органической выдачи поисковой системы.

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

Тегирование

На больших сайтах обычно есть огромное количество документов. Часто массивы документов могут быть объединены в группы по тематике.

К примеру, на сайте есть множество документов с новостями про различные социальные сети. Обычно подобные документы объединены одной общей тематической страницей, например в категорию smm news.

Но, под каждую социальную сеть можно создать отдельную страницу. Создавать страницы следует в случае наличия спроса.

Для примера, на продвигаемом сайте можно было бы создать страницы facebook news, twitter news, vk news, youtube news и linkedin news.

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

Достаточно выполнить следующий комплекс работ:

  • Определить на сайте тематические группы документов;
  • На основе выбранных тематических групп, для каждой группы создать общий список ключевых фраз;
  • Дополнить список ключевых фраз путем парсинга подсказок из поисковой выдачи;
  • Создать семантические кластеры;
  • Провести парсинг данных о популярности ключевых фраз;
  • Рассчитать популярность кластера;
  • Провести анализ конкурентности в органической выдаче поисковой системы;
  • Создать и оптимизировать посадочные страницы.

Результат

Возврат от инвестиций в виде роста позиций сайта и, как следствие, привлечении трафика обычно наступает через три месяца после выполнения комплекса мер по поисковой оптимизации.

Результат SEO продвижения больших сайтов

После проведения комплекса мер по перелинковке, замеры по динамике позиций в органической выдаче поисковой системы необходимо проводить для документов с наибольшим статическим весом.

После проведения комплекса мер по тегированию, следует проводить замеры по динамике позиций и привлекаемому трафику. Если страницы привлекают мало трафика по причине понижения частотности, страницы следует исключить из индексации посредством robots.txt.

Конкуренты могут провести анализ выполненных поисковым оптимизатором работ и скопировать лучшие практики. Анализ большого сайта задача затратная по труду, поэтому используются специальные системы сканирования, анализ проводится через сервисы, к примеру через такие как: MegaIndex или SEMrush.

Рекомендуется провести комплекс мер по закрытию сайта от сканирования подобными сервисами. Директивы в robots.txt являются простыми рекомендациями, поэтому не гарантируют защиту. Запрет на индексацию сайта подобными сервисами должен быть установлен на уровне сервера. Пример скрипта для закрытия индексации сайта сервисами конкурентной разведки размещен на сайте indexoid.

Читать статью  Оптимизация сайта - что это такое?

Мнения экспертов

Дмитрий Севальнев

При продвижении больших проектов (от 10 000 URL и более) — допускается ещё больше ошибок, чем при продвижении небольших и средних сайтов (спасибо, кэп, скажу я сам себе)!

В то же время, тут есть ряд фундаментальных отличий, на который стоит обратить внимание:

1. Семантика крупного проекта обязательно должна быть разбита на типы и группы с привязкой к URL в системе контроля позиций и трафика.
Только такой подход способен оставить возможности для мощной пост-апдейтной аналитике — post update и понимать, что происходит с проектом.

2. Семантика должна быть репрезентативной.
Это значит, что в системе контроля должны быть заведены все фразы, которые генерируют значимый трафик на сайт.

Иначе — видимость может расти, а поисковый трафик падать и наоборот.

Фактически, это приводит ведение проекта в полный хаос, когда SEO-специалист не имеет шансов понять, почему проект просел по трафику.
Следствие это сезонности или тут другие причины? На это направлены отдельные системы ведения проектов, к которым можно отнести и Пиксель Тулс.

3. К числу анализируемых KPI рекомендуется добавить:
— количество точек входа на сайт
— разбивку точек входа органического трафика по типу: карточки, листинги, теги,… и отдельная аналитика по каждому типу
— полноту индексации
— техническое состояние: скорость, битые ссылки,…

4. Оптимизация скорости загрузки контента и полноты индексации.
Если проект действительно большой, то отдельные работы должны быть направлены на настройку ответа на запрос «if-modified-since» (заголовок Last-Modified должен отдавать корректную дату последнего изменения + 304 код ответа, если документ не изменился с даты).

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

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

Проверяйте нововведения на части сайта, тестируйте гипотезы! Часто, один проведенный на сайте эксперимент дает больше информации трафика, чем большая и скурпулёзная работа!

Шакин Михаил

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

2. У меня при продвижении крупных проектов хорошо работает анализ поисковой видимости основных разделов сайта. Например, каждую неделю снимаю видимость каждого раздела site.com/category1, site.com/category2 и так далее. Это можно сделать на сервисах megaindex, ahrefs и serpstat. Такой мониторинг позволяет оперативно определять проблемы с какой-либо категорией на сайте.

Андрей Вопропаем

Особенность продвижения больших проектов — больший объем работы которую нужно выполнить для достижения результата и инерционность видимых результатов. Большой проект сложно или почти невозможно продвигать одному оптимизатору, ввиду того что объем работ, велик и если делать многие детали проекта последовательно, к некоторому моменту может оказаться что необходимо начинать все сначала, а еще не выполнена предыдущая итерация всех работ. В случае большого проекта очень важно на ранней стадии провести детальную аналитику всех аспектов проекта: движок, контент, индексация, версия движка, хостинг, ссылочный профиль, динамика появления новых материалов и так далее. При этом не менее важны человеческие факторы — кто принимает решения о внесении изменений, как работает редакция, насколько вообще все люди влияющие на контент сайта, будут лояльны к предстоящим и выполняющимся работам. Важно понимать задачу продвижения, часто бывает что на большой проект имеют влияние несколько структур и им всем нужно разное: маркетингу — показатели конверсии, IT-департаменту объем работ и финансирование, отделу продаж — легко выполнимые крупные лиды. Все это команде работающей над продвижением сайта придется учитывать. Советы оптимизатору который без опыта втягивается в большой проект помнить всегда поговорку «Семь раз отмерь, один раз отрезай» Прежде чем начать вносить коррективы, нужно очень детально изучить все параметры технические и человеческие и только потом действовать.

Евгений Аралов

При продвижении больших сайтов можно выделить множество особенностей. В рамках комментария хочу рассмотреть несколько из них.

Индексация — довольно серьёзная и частая проблема больших сайтов. Бот может индексировать часть сайта, а часть – нет или индексировать сайт очень медленно и т. д.

Чтобы избежать этих проблем, правильно проектируйте структуру: делайте хабовые страницы, которые будут содержать ссылки на нужные разделы; старайтесь не превышать третий уровень вложенности для важных страниц; следите, чтобы не генерировались мусорные страницы; избегайте создания лишних страниц по принципу «всё на всё».

Потребность в массовых изменениях. На больших сайтах почти нет возможности точечно прорабатывать страницу за страницей, т. к. их очень много. В этом случае нужно постоянно думать о том, как можно автоматизировать процессы: генерирование Title; формирование шаблонов текстов; подтягивание нужных названий товаров на листинг и т. д.

Контроль видимости и трафика. Довольно сложно уследить за всеми изменениями, просто наблюдая за изменениями позиций или трафика, так как семантика большая, страниц много. Нужно отслеживать изменения по целым категориям с возможностью дойти до страницы.

Нужно следить за несколькими показателями: процент запросов в ТОП-5, ТОП-10, ТОП-30; доля суммарной частоты в ТОП-5, ТОП-10; прогнозируемый и фактический трафик. Также надо учитывать сезонность и изменения спроса.

В работе мы используем Power BI — это универсальный инструмент для формирования и визуализации различных отчётов.

Владимир Лучанинов

При работе с большими сайтами обычно подразумеваются: белые долгосрочные методы продвижения, много трафика, сложнее влезать с SEO-доработками.
Поэтому важнее не найти одну волшебную кнопку, которая выведет в топ по одному важному запросу, а построить процесс постоянных улучшений.
То, что по маленькому сайту может быть в голове SEOшника, должно быть задокументировано, чтобы можно было масштабировать улучшения, планировать долгосрочно.

Обязательные документы: семантическое ядро, список гипотез и журнал экспериментов, беклог SEO-задач с определёнными исполнителями и дедлайнами.
Должна быть удобная статистика, которая показывает нужные данные за любой период: от показов в поисковиках до выполненных целей пользователями на сайте, позиции, количество страниц в индексе. На надо бояться, что часть статистики нужно собирать руками — это можно делать раз в неделю и заносить в Excel, зато потом можно за минуты получить ответ на любой вопрос.

Нужно вести лог заходов поисковиков; для программистов наименее интрузивно настроить автоматическую выгрузку логов веб-сервера в ElasticSearch и тогда SEOшник сможет сам настроить себе любые фильтры и дешборды в Kibana.

Читать статью  Куда вы сливаете бюджет? Эффективное снижение затрат бизнеса

Полезно прочитать Webmaster Guidelines от корки до корки. Это важно, потому что у вас более высокие риски, но зато и даже минимальные улучшения в процентах могут дать значительный прирост в абсолютных величинах.

Осторожнее вводите изменения; если есть возможность — делайте сначала на одном разделе или локали, измеряйте, потом применяйте ко всему сайту.
Настраивайте мониторинг и проводите регулярный аудит не только главной страницы, но и выбирайте по одной или несколько страниц каждого типа. Если так не сделать, то программисты могут что-то поменять в работе сайта, что сильно ухудшит SEO — например, уберут canonical и в индекс попадёт много дубликатов. Проверяйте сайт перед большой выкладкой на тестовых серверах, чтобы замечать проблемы до того, как они попадают в Интернет.

Оптимизация больших сайтов. ч.1

Многие говорят, что MODX не очень оптимизирован для сайтов с большим количеством ресурсов. В основном говорят о пределе в 30-50 тыс. ресурсов. Дальше начинаются тормоза. Всё это справедливо, если пользоваться только базовыми настройками и готовыми компонентами. Опытные разработчики, конечно, могут обойти все узкие места. Но они, как правило, тусуются в лагере фреймворков, в MODX их мало. Это же справедливо и для других CMS. У них другой сегмент рынка. Это готовый инструмент — устанавливай и наполняй контентом. Но всему есть предел.

Итак, поговорим о том, что делать, если ваш сайт активно развивается и перешагнул границу в 100 тысяч ресурсов. При посещаемости в несколько тысяч уников в день вопрос об оптимизации встаёт особо остро. Любой разработчик высоконагруженных сайтов скажет, что первое, на что делают акцент, это кэш и очереди. Начнём с кэша. Для начала я советую ознакомиться с возможностями кэширования, которые MODX предлагает из коробки.

Настройки кэширования

В первую очередь для таких сайтов советуют отключать карту псевдонимов (алиасов). За это отвечает системная настройка cache_alias_map , которая связывает id ресурса и с его uri. Эта карта используется при парсинге ссылок типа [[~7]] и при запросе страницы для поиска ресурса по указанному в адресной строки URI. Если её отключить, то MODX будет делать запрос в БД, чтобы по URI найти id ресурса. Чтобы этого избежать, просто сразу указывайте URI нужного ресурса вместо таких тегов.

Что нам даст её отключение? Экономию ресурсов. Данная карта сохраняется в кэше контекста и очень сильно влияет на размер файла — сколько ресурсов, столько и строчек в файле. И все эти данные загружаются в память.

Но эта карта не одна. MODX также строит карту ресурсов, которая представляет собой одноуровневый массив ресурсов (ключи массива) и их прямых потомков (массив id чилдренов). Она используется в методах modX::getParentIds() и modX::getChildIds() . Эта карта также сильно раздувает кэш контекста, но в отличие от карты алиасов для неё не задумали возможности отключения. Причина скорее всего в том, что она более важная, чем карта алиасов. Мы добавим эту возможность.

Даже в phpDoc кэш-менеджера стоит пометка сделать рефакторинг метода генерации кэша контекста для уменьшения памяти и размера файла.

Из моего опыта

У сайта, который я оптимизировал, количество ресурсов около 160 тысяч. Размер таблицы 640 МБ. Даже с отключённой картой алиасов файл кэша контекста занимал чуть более 160 тысяч строк и весил более 5 МБ. Генерация кэша занимала от 0.3 до 0.5 секунд. После оптимизации в нём всего 11 тыс. строк и весит он не более 30 КБ.

Для управления картой ресурсов нам придётся расширить стандартный кэш-менеджер оптимизированным вариантом. На 214 строчке мы видим, что запрос ограничен только первым уровнем ресурсов

$sql .= "WHERE `r`.`deleted` = 0 and `r`.`parent` = 0 ";

Вы можете указать своё условие, если нужно. Кроме того, теперь вы можете управлять картой ресурсов. Для этого нужно создать системную настройку cache_resource_map в разделе «Кэширование» с типом «Да/Нет».

Разместить этот класс нужно в системной папке core/model/modx/ . MODX подгрузит его автоматически. Следующим шагом нужно указать MODX, чтобы он использовал именно его. Для этого предназначена системная настройка modCacheManager.class . Но так как кэш-менеджер подключается при инициализации объекта $modx ещё до события OnMODXInit, то подключить его в плагине не получится. Поэтому используем другой механизм — через файл настроек core/config/config.inc.php .

Теперь вы можете управлять кэшем контекста по своему желанию.

Внимание!

Ограничение списка ресурсов в карте ресурсов повлияет на функционал, использующий методы modX::getParentIds() и modX::getChildIds() . Это может проявиться в следующих местах:

  • 2 вида TV — автотег и список ресурсов. Выход простой — добавить нужные ресурсы-родители в запрос для формирования карты ресурсов или заменить другим решением.
  • Проверка на перемещение родителя в дочерний элемент при сохранении ресурса. Но это только при работе в форме редактирования ресурса или в режиме API, в дереве ресурсов этого сделать нельзя.
  • В интерфейсе удалённых ресурсов. Но опять же с оговорками. Если вы удаляете ресурс в дереве, то автоматически удалятся и все дочерние ресурсы (кстати, очень неоптимальным путём — запросом в БД для каждого ресурса вместо использования карты ресурсов). А если удалите его (пометите удалённым) с помощью API, то в дереве удалённым отобразится только этот ресурс, а дочерние ресурсы останутся неудалёнными. Но в интерфейсе корзины они отобразятся все. Это выглядит немного странно.
  • Компоненты, использующие данные методы. И первый в списке pdoTools. О нём мы поговорим подробнее чуть позже.

Остальные системные настройки такие

Хочу обратить внимание, что отключено кэширование скриптов, так как профита в этом никакого нет, только лишние файлы создаются. А ещё отключена настройка «Очищать кэш по-умолчанию». Если её не отключить, то при сохранении ресурса будут удалены кэш ресурсов, кэш контекста, кэш базы данных и кэш автопубликаций. Если 2 последних кэша редко кто использует (автопубликации ещё бывает, а кэш БД крайне редко), то очищать кэш всех ресурсов крайне вредно с точки зрения оптимизации. По кэшу контекста есть важная деталь — при сохранении ресурса кэш контекста перегенерируется 2 раза. Поэтому отключение этой настройки позволяет исключить одну перегенерацию. + 10 к уровню оптимизации :). Представьте, что у вас десятки тысяч ресурсов и кэш-менеджер вынужден 2 раза посылать запросы по ресурсам, плагинам, событиям, правам доступа, а потом разбирать их, чтобы создать кэш.

Для информации!

Когда MODX очищает кэш системных настроек (например, при редактировании настройки), кэш контекста или кэш автопубликаций, то, в отличие от других кэшей, они сразу же пересоздаются. Напомню также, что при сохранении любого элемента сбрасывается кэш всего сайта.

Заключение

С настройками кэширования разобрались. В следующей части рассмотрим подход к кэшированию ресурса.

Источник https://ru.megaindex.com/blog/big-site-seo

Источник https://modzone.ru/blog/2021/06/16/big-sites-optimization-p1/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *