Как измерить размер
Веб-браузеры принимают множество решений о том, что загружать, основываясь на их конкретном контексте (например, какие алгоритмы сжатия он поддерживает). Трудно воспроизвести эти условия во внешнем инструменте, таком как скручивание. Поэтому вы захотите использовать инструмент, который выглядит как браузер (или браузер).
Сервер также может выбрать отправку различного контента на основе информации о посетителе (пользовательский агент, вошли ли они в систему, геолокации и т. Д.) Или даже совершенно произвольных условий (например, случайное изображение). Таким образом, вы захотите взглянуть на более чем один образец, предпочтительно из множества пользовательских агентов и местоположений.
Большинство инструментов не обеспечивают такую мощность.
Самое близкое, что я могу предложить, это WebPageTest . Он использует реальный веб-браузер для посещения вашего сайта и сообщает об анализе этого посещения, включая общий вес страницы (даже в разбивке по различным событиям страницы). WebPageTest можно использовать как API и даже запускать локально. Вывод доступен в формате JSON, поэтому вы можете анализировать и создавать пользовательские отчеты с помощью приложений CLI.
Как ускорить работу сайта
Технический вопрос о «взвешивании» веб-сайта в стороне, есть более широкая проблема, которую вы пытаетесь решить: как ускорить ваш веб-сайт. Для оптимизации производительности доступно много информации.
В частности, существует много дискуссий о том, какие метрики следует учитывать при оценке эффективности страницы, какой вес следует придавать каждой метрике и как использовать эту информацию для определения приоритетов оптимизации.
При рассмотрении веса страницы я настоятельно рекомендую разбить его на количество байтов, необходимое для выполнения определенных задач. Google рекомендует думать о ресурсах с точки зрения критического пути рендеринга - HTML, блокирующего JS и неотложенного CSS, необходимого для создания веб-страницы.
У вас может быть страница размером 1 МБ, где ресурсы, важные для рендеринга, составляют только 10 КБ страницы - это очень быстрый сайт. Или у вас может быть страница размером 1 МБ, где для первоначального рендеринга требуется 500 КБ - не так быстро. WebPageTest помогает вам распределить эти веса по событиям.
Хотелось бы дать больше технических подробностей об использовании WebPageTest с инструментами CLI. Это то, что я планирую изучить в ближайшее время. Но сейчас, надеюсь, это даст вам хорошее начало.