Клиентская сторона против. Серверный рендеринг

Клиентская сторона против. Серверный рендеринг

Как опытный веб-разработчик с многолетним опытом работы за плечами, я имел удовольствие работать как с рендерингом на стороне сервера (SSR), так и с рендерингом на стороне клиента (CSR). Каждый из них имеет свои уникальные преимущества и недостатки, и выбор между ними во многом зависит от характера вашего проекта.


Улучшенная скорость загрузки веб-страниц существенно влияет на удобство работы пользователей и поисковую оптимизацию (SEO). Скорость загрузки страницы — важнейший компонент, который учитывает алгоритм Google.

Веб-дизайнер, работающий над пользовательскими интерфейсами, должен выбрать оптимальный метод отображения сайта, обеспечивающий быстрое взаимодействие и обновление контента в режиме реального времени.

Два популярных метода рендеринга включают рендеринг на стороне клиента (CSR) и рендеринг на стороне сервера (SSR).

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

Google и JavaScript

Google предоставляет исчерпывающие ресурсы, подробно описывающие работу с JavaScript, при этом сотрудники Google часто делятся своими знаниями и отвечают на запросы, связанные с JavaScript, в различных средах, охватывая как формальные, так и неформальные каналы.

В подкасте Search Off The Record они рассказали о том, как Google обрабатывает рендеринг страниц для результатов поиска, даже со значительным количеством JavaScript.

Эта тема вызвала обширное обсуждение в LinkedIn, и вот две дополнительные идеи, почерпнутые из подкаста, а также из последующих разговоров:

  • Google не отслеживает, насколько дорого обходится рендеринг определенных страниц.
  • Google отображает все страницы для просмотра контента — независимо от того, использует он JavaScript или нет.

Полный комментарий Мартина Сплитта на LinkedIn по этому поводу был следующим:

Мы не отслеживаем стоимость отдельных страниц для нас. Многие части Интернета используют JavaScript для динамического добавления, удаления или изменения контента на страницах. В результате мы просто отображаем или «рендерингуем» страницу для просмотра всего ее содержимого. Независимо от того, использует ли страница JavaScript или нет, это не оказывает существенного влияния на нашу способность видеть весь контент, поскольку мы можем гарантировать полное представление только после отображения страницы.

Мартин также проверил наличие очереди и возможную задержку между парсингом и листингом, но это связано не только с тем, используется ли что-то JavaScript или нет. Также важно отметить, что проблема неиндексации URL-адресов не является загадочной, поскольку основной причиной является наличие JavaScript.

Общие рекомендации по JavaScript

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

  • Избегайте блокировки рендеринга.
  • Избегайте внедрения JavaScript в DOM.

Что такое рендеринг на стороне клиента и как он работает?

Рендеринг на стороне клиента — относительно новый подход к рендерингу веб-сайтов.

Его использование получило широкое распространение, когда библиотеки JavaScript начали его включать, причем Angular и React.js служат заслуживающими внимания примерами таких библиотек, используемых в этой конкретной технике рендеринга.

Он работает путем рендеринга JavaScript веб-сайта в вашем браузере, а не на сервере.

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

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

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

Процесс КСО выглядит следующим образом:

  • Пользователь вводит URL-адрес, который хочет посетить, в адресную строку.
  • Запрос данных отправляется на сервер по указанному URL-адресу.
  • При первом запросе клиента на сайт сервер доставляет статические файлы (CSS и HTML) в браузер клиента.
  • Клиентский браузер сначала загружает содержимое HTML, а затем JavaScript. Эти HTML-файлы подключают JavaScript, запуская процесс загрузки, отображая символы загрузки, определенные разработчиком пользователю. На этом этапе веб-сайт по-прежнему не виден пользователю.
  • После загрузки JavaScript контент динамически генерируется в браузере клиента.
  • Веб-контент становится видимым, когда клиент перемещается по веб-сайту и взаимодействует с ним.

Что такое серверный рендеринг и как он работает?

Рендеринг на стороне сервера — более распространенный метод отображения информации на экране.

Проще говоря, когда вы запрашиваете у своего веб-браузера конкретную информацию (например, нажимаете на ссылку), он отправляет запрос на сервер. Затем сервер собирает для вас персонализированные данные и создает полную веб-страницу HTML. Готовая страница затем возвращается на ваше устройство, где она отображается как веб-страница, которую вы видите.

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

Вот как поэтапно происходит процесс SSR:

  • Пользователь вводит URL-адрес, который хочет посетить, в адресную строку.
  • Сервер передает браузеру готовый к отображению HTML-ответ.
  • Браузер отображает страницу (теперь она доступна для просмотра) и загружает JavaScript.
  • Браузер выполняет React, что делает страницу интерактивной.

Каковы различия между рендерингом на стороне клиента и на стороне сервера?

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

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

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

Однако рендеринг на стороне клиента — более дешевый вариант для владельцев веб-сайтов.

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

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

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

Недостатком CSR является более длительное время начальной загрузки. Это может повлиять на SEO; сканеры могут не дождаться загрузки контента и покинуть сайт.

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

Когда использовать рендеринг на стороне сервера

Если вы хотите улучшить свою видимость в Google и занять высокие позиции на страницах результатов поисковых систем (SERP), рендеринг на стороне сервера — это выбор номер один.

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

Когда использовать рендеринг на стороне клиента

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

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

Что лучше: рендеринг на стороне сервера или на стороне клиента?

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

Рассмотрите текущий проект и подумайте, как выбранная вами презентация может повлиять на ваш рейтинг в поисковых системах (SERP) и общий пользовательский опыт вашего веб-сайта.

Как правило, CSR лучше подходит для динамических веб-сайтов, а SSR лучше всего подходит для статических веб-сайтов.

Частота обновления контента

Для сайтов, предлагающих быстро меняющиеся данные, таких как платформы азартных игр или Форекс, зачастую более эффективно реализовать клиентский рендеринг (CSR), а не серверный рендеринг (SSR), поскольку эти сайты часто обновляют свой контент каждую секунду. Однако выбор между CSR и SSR может зависеть от вашей стратегии привлечения пользователей; вы можете выбрать CSR только на определенных целевых страницах, а не применять его по всему сайту.

Повышение скорости сайта (SSR) работает лучше всего, когда контент вашего веб-сайта не требует активного взаимодействия с пользователем. Это повышает доступность, сокращает время загрузки страниц, улучшает поисковую оптимизацию (SEO) и усиливает интеграцию с социальными сетями.

Вместо этого позвольте мне сказать следующее: по сравнению с другими методами рендеринг контент-сервисов (CSR) предлагает доступное решение для визуализации веб-приложений. Его также проще создавать и управлять. Кроме того, он превосходно улучшает задержку первого входа (FID).

Можно сказать так: ключевой аспект CSR (корпоративной социальной ответственности) включает в себя обеспечение того, чтобы метатеги (заголовок, описание), канонические URL-адреса и теги Hreflang предоставлялись сервером в начале ответа HTML для сканеров поисковых систем. чтобы оперативно их обнаружить. Это не идеально, если они появляются только в окончательном HTML-коде.

Особенности платформы

Как специалист по цифровому маркетингу, я часто обнаруживаю, что поддержка технологии CSR (клиентский рендеринг) обходится дороже. Это связано с тем, что почасовые ставки для разработчиков, владеющих продвинутыми языками, такими как React.js или Node.js, как правило, значительно выше, чем у их коллег, специализирующихся на более традиционных платформах, таких как PHP или WordPress.

Кроме того, вы найдете меньший выбор готовых плагинов или готовых решений, разработанных для рамок правил безопасности контента (CSR), в отличие от обширного разнообразия плагинов, которые могут использовать пользователи WordPress.

Если вы обдумываете автономную конфигурацию WordPress, такую ​​как Frontity, помните, что для беспрепятственной настройки вам потребуются услуги не только разработчиков React.js, но и разработчиков PHP.

Эта настройка работает благодаря тому, что WordPress без управления использует React.js в пользовательском интерфейсе, хотя он продолжает зависеть от PHP для своих серверных операций.

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

Функциональность и назначение веб-сайта

Иногда нет необходимости выбирать только один подход, поскольку существуют смешанные варианты. Фактически, элементы как социальной ответственности (CSR), так и отзывчивости поисковых систем (SSR) могут быть включены в один и тот же сайт или страницу в Интернете.

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

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

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

Приступая к ранним этапам разработки продукта, вы столкнетесь с двумя широко используемыми методами рендеринга веб-сайтов: рендеринг на стороне клиента (CSR) и рендеринг на стороне сервера (SSR). Крайне важно сделать выбор между этими методами, исходя из требований вашего проекта.

Смотрите также

2024-09-19 13:39