Регулярно мониторите скорость загрузки десятков или сотен URL? Хотите проанализировать скорость загрузки сайтов в отрасли или постранично на своем сайте? Вводить каждый раз URL в PageSpeed Insights и переносить данные в «эксельку» — это долго.
Мы нашли простое решение — оно позволяет получать метрики из PageSpeed Insights по расписанию, причем на полном автомате. На настройку у вас уйдет 5-10 минут, но вы сэкономите часы.
![Автоматизируем получение данных о скорости загрузки сайта из Google PageSpeed Insights [шаблон]](https://habrastorage.org/webt/54/av/h6/54avh6zwawbdvbmcjp_p1q6uejw.png)
Когда мы готовили исследование скорости загрузки сайтов в eCommerce, то серьезно озадачились автоматизацией получения данных из PageSpeed Insights. Открывать каждый URL в сервисе, запускать анализ, переносить метрики — все это съедает массу времени.
В статье James_McNulty для MOZ мы нашли решение. В этой статье представлен шаблон Google Sheets, который с помощью PageSpeed Insights API V5 снимает данные для десктопов по пяти метрикам. Мы модифицировали шаблон — теперь с его помощью можно снимать данные по восьми метрикам (не только для десктопа, но и мобайла).
![Автоматизируем получение данных о скорости загрузки сайта из Google PageSpeed Insights [шаблон]](https://habrastorage.org/webt/nk/vz/zq/nkvzzq0hcrohkbhr_am50r3lqpo.png)
Зачем мониторить скорость загрузки страниц
Данные о скорости загрузки страниц полезны оптимизаторам и разработчикам в ряде случаев:
- для аудита скорости загрузки в разрезе конкретных страниц сайта — вы сможете определить, какие из них тормозят загрузку;
- для мониторинга скорости в результате изменений на сайте — так вы будете понимать, как те или иные изменения сказались на скорости загрузки страниц;
- для сравнения с конкурентами — вы поймете, насколько быстро загружается ваш сайт по сравнению с конкурентами, и решите, нужно ли ускорять его или можно пока оставить все как есть.
Как пользоваться шаблоном
Для начала создайте копию шаблона Automated PageSpeed Insights API Tool.
В файле три вкладки (названия вкладок не меняйте!):
- Settings — здесь указывается API ключ и расписание сбора данных.
- Results — это лист, на котором собираются данные по заданным URL (данные листа обновляются после каждого запуска скрипта).
- Log — на этот лист переносятся собранные данные (в том числе за прошлые периоды).
Предварительная подготовка шаблона
Для корректной работы нужно:
- получить API ключ,
- включить PageSpeed API.
Для получения API ключа перейдите в раздел «Учетные данные» сервиса Google APIs и нажмите кнопку «Создать учетные данные».
![Автоматизируем получение данных о скорости загрузки сайта из Google PageSpeed Insights [шаблон]](https://habrastorage.org/webt/uf/4v/cw/uf4vcwxoc-dficfqeju_kyclqtg.png)
В выпадающем списке выберите «Ключ API».
![Автоматизируем получение данных о скорости загрузки сайта из Google PageSpeed Insights [шаблон]](https://habrastorage.org/webt/d6/ds/ua/d6dsuabwj6cwfkqpevjwhcxqipw.png)
Скопируйте созданный ключ.
![Автоматизируем получение данных о скорости загрузки сайта из Google PageSpeed Insights [шаблон]](https://habrastorage.org/webt/en/ao/jz/enaojzeklud0igpwh3i-qzniydo.png)
Вставьте его в шаблон на листе «Settings».
![Автоматизируем получение данных о скорости загрузки сайта из Google PageSpeed Insights [шаблон]](https://habrastorage.org/webt/nj/su/sw/njsuswhtbe2mdl5mexeesckdy7y.png)
Но для работы шаблона ключа недостаточно — нужно еще включить PageSpeed API. Для этого перейдите на страницу PageSpeed API и нажмите кнопку «Включить».
![Автоматизируем получение данных о скорости загрузки сайта из Google PageSpeed Insights [шаблон]](https://habrastorage.org/webt/8u/pk/w3/8upkw3vwsnoym4fg5mnltsal8ji.png)
Важно! Если не включить PageSpeed API, скрипт в шаблоне работать не будет, и в таблице вы увидите ошибки.
Контекст на профессиональном уровне и без агентства — в системе PromoPult. Автоматический подбор слов, автоматическая генерация объявлений, «умное» управление ставками. Готовые отраслевые решения. Статистика в реальном времени.
Получение данных из PageSpeed Insights
Перейдите на вкладку «Results» и введите список URL. Откройте меню «PageSpeed Menu» и нажмите «Manual Push Report». Сразу после этого скрипт начнет выполняться, и через некоторое время вы получите данные.
![Автоматизируем получение данных о скорости загрузки сайта из Google PageSpeed Insights [шаблон]](https://habrastorage.org/webt/ts/lj/zv/tsljzvauwdjamarwjmpg8ezmei4.png)
В шаблоне собираются такие метрики:
- время загрузки для взаимодействия (TTI);
- время загрузки первого контента (FCP);
- время загрузки достаточной части контента (FMP);
- время загрузки первого байта (скорость ответа сервера);
- индекс скорости загрузки (Speed Index);
- время окончания работы ЦП;
- первая задержка ввода;
- оценка производительности.
Об успешном завершении сбора данных говорит статус «complete» в строке с URL.
![Автоматизируем получение данных о скорости загрузки сайта из Google PageSpeed Insights [шаблон]](https://habrastorage.org/webt/li/h0/jj/lih0jj-r80c5_0m3cgbm7o7vqxe.png)
Как изменить тип устройства
По умолчанию в шаблоне собираются данные по скорости при имитации загрузки с мобильного устройства.
Если вам нужны данные по десктопам, перейдите в раздел Google Sheets «Инструменты» / «Редактор скриптов», найдите функцию runCheck и измените в переменной serviceUrl (строка 587) значение параметра “strategy” с “mobile” на “desktop”. Сохраните изменения.
![Автоматизируем получение данных о скорости загрузки сайта из Google PageSpeed Insights [шаблон]](https://habrastorage.org/webt/nn/gy/jd/nngyjdblndwdxtwcxuqazpq4uvg.png)
Теперь шаблон будет собирать данные для тех же URL, но уже для десктопов.
![Автоматизируем получение данных о скорости загрузки сайта из Google PageSpeed Insights [шаблон]](https://habrastorage.org/webt/8e/bs/lo/8ebslosq5pojwopgfn_c4fmhpvm.png)
Если вам нужно регулярно мониторить и мобильную, и десктопную версию, удобнее будет создать две копии шаблона — в одной ничего не менять, а во второй задать “strategy=desktop”.
Настройка расписания получения данных из PageSpeed Insights
На вкладке «Settings» укажите, в какой день и в какое время запускать сбор данных (меняете только данные в первой строке). Например, мы указали четверг, 8 утра (время установлено по местному времени, определенному в учетной записи Google).
![Автоматизируем получение данных о скорости загрузки сайта из Google PageSpeed Insights [шаблон]](https://habrastorage.org/webt/mq/xv/9g/mqxv9gv4voonqnunaapcr4zgf_e.png)
После установки дня недели и времени в шаблоне дополнительно назначается время сбора данных в 9, 10 и 11 утра. Это нужно для обхода ограничений, установленных PageSpeed API.
Ограничения при сборе данных через API
Шаблон Google Sheets использует скрипт Google Apps для сбора данных из PageSpeed Insights. Каждый раз, когда запускается отчет, Google Apps Scripts устанавливает 6-минутный лимит времени исполнения (для обычных пользователей).
Этого времени будет достаточно, чтобы проанализировать не менее 30 URL. По истечении этого времени (если вы задали больше URL), вы получите сообщение:
![Автоматизируем получение данных о скорости загрузки сайта из Google PageSpeed Insights [шаблон]](https://habrastorage.org/webt/yb/pb/is/ybpbisi12njgilbkgd8pdljbsog.png)
Для продолжения сбора данных достаточно просто заново запустить скрипт. Вот почему в расписании указаны часы, в которые отчет запускается повторно. Таким образом, вы соберете данные не менее чем по 120 URL.
Но тут мы сталкиваемся с еще одним препятствием — теперь уже со стороны Google Sheets. Скрипт в шаблоне срабатывает по заданному расписанию благодаря триггерам.
![Автоматизируем получение данных о скорости загрузки сайта из Google PageSpeed Insights [шаблон]](https://habrastorage.org/webt/yc/2q/z2/yc2qz2vyqdxiqd-zp8yyfj1zyao.png)
Проблема в том, что использование триггеров более четырех раз подряд вызывает ошибку — «Service using too much computer time for one day». Это означает, что скрипт Google Apps превысил общее допустимое время выполнения в течение одного дня.
Решение — запустить скрипт вручную.
Если у вас более 120 URL для проверки, просто запустите скрипт через «PageSpeed Menu» («Manual Push Report»). В этом случае ограничений на количество срабатывания триггеров не будет, и вы сможете проверить столько URL, сколько вам нужно.
Настройка расписания выгрузки данных
На вкладке «Settings» в поле «Log Results every» задайте день недели и время выгрузки. Учитывайте при этом расписание сбора данных. Например, если вы задали сбор данных на четверг в 8 утра, то выгружать их лучше не ранее 12 дня — чтобы они наверняка были собраны.
![Автоматизируем получение данных о скорости загрузки сайта из Google PageSpeed Insights [шаблон]](https://habrastorage.org/webt/v3/h3/sv/v3h3svg1edwpsnmuoil0auhnuaa.png)
После того как вы настроили расписание сбор и выгрузки данных, обязательно перейдите в «PageSpeed Menu» и нажмите «Set Report & Log Schedule». Это действие активирует расписание.
![Автоматизируем получение данных о скорости загрузки сайта из Google PageSpeed Insights [шаблон]](https://habrastorage.org/webt/ia/_q/sl/ia_qsl4c4f3gg6wnsrcwzd4nba4.png)
Если вы захотите отменить выгрузку по расписанию, кликните «Reset Schedule».
После того как подойдет указанное в расписании время, скрипт перенесет данные из листа «Results» на лист «Log». При этом данные на листе «Results» исчезнут (кроме URL), а на листе «Log» будут накапливаться каждый раз после выгрузки. Таким образом, у вас будет история изменения скорости загрузки.
![Автоматизируем получение данных о скорости загрузки сайта из Google PageSpeed Insights [шаблон]](https://habrastorage.org/webt/mt/u-/tc/mtu-tcgktjre27baucvvkghrv7y.png)
PageSpeed Insights API V5 позволяет выгружать все данные, представленные в аудитах Lighthouse. То есть при необходимости вы можете дополнить скрипт и получать больше данных с помощью шаблона.