Перайсці да змесціва

PageSpeed Insights MCP: як я падключыў праверку хуткасці сайта да Claude

У верасні 2026 года я падключыў PageSpeed Insights да Claude праз MCP-сервер. Правяраць хуткасць сайта ўручную заўсёды адбываецца аднолькава: адкрываеш справаздачу, чакаеш замер, прабіраешся праз дзясятак англійскіх паказчыкаў, а праз тыдзень ужо не памятаеш, як было раней. Захацелася даручыць гэта памочніку: няхай сам запускае праверку, параўноўвае старонкі і тлумачыць, што тармозіць сайт. Ніжэй увесь шлях: ключ Google, устаноўка, рэгістрацыя ў Claude Code, першыя вынікі на сайце студыі і пасткі, у якія я трапіў.

Акно тэрмінала і знак PageSpeed Insights са спідометрам: падключэнне праверкі хуткасці сайта да ШІ-памочніка

Што гэта за сервер і навошта ён патрэбны

MCP (Model Context Protocol) — адкрыты пратакол, праз які ШІ-памочнік выклікае знешнія інструменты; падрабязней я пісаў пра гэта ў артыкуле пра падключэнне Search Console. Тут важна адно: MCP-сервер — гэта праграма-пасярэднік на вашым камп'ютары. З аднаго боку яна размаўляе з памочнікам, з другога — звяртаецца да API Google PageSpeed Insights, тога самага рухавіка Lighthouse, што стаіць за справаздачай на сайце сэрвісу. Claude сам просіць замер, атрымлівае лічбы і разбірае іх, а мне застаецца задаваць пытанні звычайнымі словамі.

Заадно сервер умее тое, чаго няма ў вэб-версіі: параўнаць дзве старонкі, праверыць да дзесяці адрасоў за раз, запомніць базавы замер і супаставіць з ім новы.

Які сервер я выбраў і што праверыў да ўстаноўкі

Я ўзяў pagespeed-insights-mcp — npm-пакет на TypeScript, версія 2.1.0. Вырашылі тры рэчы:

  • Шэсць зразумелых інструментаў замест россыпу. Аналіз старонкі, дыягностыка па адным «разрэзе», даныя рэальных карыстальнікаў, параўнанне, пакетная праверка і скід кэшу. Нічога лішняга.
  • Гатовыя справаздачы пад задачу. Замест сырога адказу Google на 850 КБ — зводка, спіс правак па важнасці або разбор рэсурсаў, што блакуюць паказ. Мадэлі так прасцей, а токенаў ідзе менш.
  • Кароткі чытэльны код. Яго можна праверыць за вечар, а не гадаць, што робіць чужая праграма.

Код я прачытаў цалкам да ўстаноўкі — гэта мая звычка для любога MCP-сервера. Ліцэнзія Apache-2.0. Сетка: толькі два адрасы Google — сэрвіс PageSpeed Insights і Chrome UX Report. Ключ API выразаецца з логаў і тэкстаў памылак, паўторныя спробы ідуць з нарастаючай паўзай, паралельных запытаў не болей за тры, а адказы кэшуюцца на гадзіну. Чаму такая праверка — не фармальнасць, я разбіраў у артыкуле пра бяспеку ШІ-інструментаў.

Крок 1. Ключ Google: асобны і з абмежаваннем

Сэрвіс бясплатны, але без ключа не запрацуе: агульная ананімная квота вычарпана, і ўжо першы запыт вярнуў памылку 429 — перавышаны ліміт запытаў. Патрэбны API-ключ з праекта Google Cloud.

  1. У праекце Google Cloud уключыць PageSpeed Insights API. Праект у мяне ўжо быў — той самы, што для Google Analytics і Search Console, — і гэты інтэрфейс у ім быў уключаны.
  2. У раздзеле «Уліковыя даныя» стварыць API-ключ і даць яму зразумелую назву.
  3. У абмежаваннях ключа абраць «Абмежаваць ключ» і адзначыць патрэбныя інтэрфейсы, а не пакідаць «Не абмяжоўваць».

Існуючыя ключы праекта я пашыраць не стаў: у кожнага свая задача, і ключ ад індэксацыі не павінен умець хадзіць у праверку хуткасці. Асобны ключ — гэта яшчэ і асобны водгук: калі нешта пойдзе не так, адключаеш адзін ключ, а не высвятляеш, якія сэрвісы ад яго залежаць. Абмежаванне па адрасе ці сайце не ставіў — сервер працуе на маім камп'ютары са зменлівым адрасам.

Пастка, якая каштавала мне лішняга заходу: інтэрфейс Chrome UX Report API — той, што аддае даныя рэальных наведвальнікаў, — у праекце выключаны па змаўчанні, нават калі PageSpeed ужо працуе. Пакуль яго не ўключыць і не дадаць у абмежаванні ключа, інструмент рэальных даных адказвае 403 з прычынай API_KEY_SERVICE_BLOCKED. Правяраць гэта надзейней простым запытам да інтэрфейсу, чым гадаць па паведамленні сервера.

Крок 2. Устаноўка

Патрэбны Node.js версіі 20.19 або навейшы. Правяраем:

node --version

Ставім пакет глабальна:

npm install -g pagespeed-insights-mcp

Устаноўка заняла каля 20 секунд і 127 пакетаў залежнасцей. У камандным радку з'явілася праграма pagespeed-insights-mcp — гэта і ёсць сервер. Запускаць яе ўручную не трэба: стартуе яе сам Claude.

Крок 3. Рэгістрацыя ў Claude Code

Ключ перадаецца праз зменную асяроддзя. У PowerShell:

$k = "ваш_ключ_Google"
claude mcp add `
  pagespeed-insights -s user `
  -e "GOOGLE_API_KEY=$k" `
  -e NODE_ENV=production `
  -- pagespeed-insights-mcp

Сцяг -s user кладзе запіс у карыстальніцкую канфігурацыю, а не ў файл праекта: папка праекта сінхранізуецца з воблакам, і ключу там рабіць няма чаго. NODE_ENV=production пераключае логі з каляровага тэксту на кампактны JSON — так іх прасцей разбіраць, калі нешта пойдзе не так. Правяраем:

claude mcp list

Насупраць pagespeed-insights з'явілася «Connected». Далей знаёмая па Search Console гісторыя: у ужо адкрытай сесіі новых інструментаў няма, спіс падхопліваецца пры запуску. Да таго ж «Connected» азначае толькі, што працэс стартаваў і адказаў на рукапацісканне, — а не тое, што ключ працоўны і API уключаны. Таму спачатку я праверыў ключ звычайным запытам да інтэрфейсу PageSpeed: адказ 200 і поўная справаздача па галоўнай старонцы. Толькі потым адкрыў новую сесію.

Шэсць інструментаў простымі словамі

  • Аналіз старонкі. Поўная праверка Lighthouse: адзнакі хуткасці, даступнасці, SEO і рэкамендацый. Можна папрасіць зводку, поўны разбор або спіс правак па прыярытэце.
  • Дыягностыка. Адзін «разрэз» на выбар: рэсурсы, што блакуюць паказ, малюнкі, скрыпты, староннія падключэнні, сетка, візуальная загрузка, элементы старонкі.
  • Даныя рэальных карыстальнікаў. Метрыкі са справаздачы Chrome UX Report — тое, што бачаць жывыя наведвальнікі, а не лабараторны замер.
  • Параўнанне. Дзве старонкі паміж сабой або старонка са сваім мінулым замерам; базавы замер захоўваецца ў файле ў хатняй папцы карыстальніка.
  • Пакетная праверка. Да дзесяці адрасоў за адзін выклік і зводка па кожным.
  • Скід кэшу. Сервер трымае адказы гадзіну; пасля правак сайта кэш варта скінуць, інакш атрымаеш стары замер.

Што паказаў першы прагон на маім сайце

Я праверыў галоўную старонку студыі на мабільным профілі. Адзнакі: хуткасць — 66–71 са 100 (у розных запусках), даступнасць — 90, рэкамендацыі — 100, SEO — 100. Найслабейшае месца па галоўных метрыках Google (Core Web Vitals): час з'яўлення галоўнага блока (LCP) — 5,0–5,3 с пры норме да 2,5 с і зрух макета пры загрузцы (CLS) — каля 0,13 пры норме да 0,1.

Дыягностыка па рэсурсах, што блакуюць паказ, назвала дзесяць файлаў — стылі і скрыпты шаблона, якія браўзер павінен загрузіць да паказу старонкі. Разам яны затрымлівалі паказ прыкладна на 1,9 с. Найцяжэйшыя — асноўны файл стыляў тэмы (каля 81 КБ) і скрыпт UIkit (каля 50 КБ). Плюс невыкарыстоўваемы код: прыкладна 101 КБ стыляў і 49 КБ скрыптоў, а асобным радком — лішнія перанакіраванні, якія з'ядаюць каля 0,75 с. Гэта шаблон канструктара, а не мой код, таму вырашаць давядзецца наладамі зборкі і кэшу, а не праўкай файлаў.

Пакетная праверка дзвюх старонак паказала разброс, які ўручную лёгка не заўважыць: галоўная — 69, старонка пра SEO — 85 (LCP 3,2 с, зрухаў макета няма). Параўнанне рускай і англійскай галоўнай: 66 супраць 71. Даных рэальных карыстальнікаў справаздача Chrome па дамене не аддала: «недастаткова трафіку». Для невялікага сайта гэта нармальна, а не паломка: у справаздачу трапляюць толькі адрасы з дастатковай колькасцю наведванняў з Chrome.

Пасткі, у якія я трапіў

  • 429 без ключа. Ананімная квота Google агульная і амаль заўсёды вычарпана, «паспрабаваць без ключа» не атрымаецца.
  • 403 на даных рэальных карыстальнікаў. Ключ, абмежаваны адным інтэрфейсам, не прапусціць іншы: Chrome UX Report API трэба ўключыць асобна і дадаць у абмежаванні ключа.
  • Новых інструментаў няма ў старой сесіі. Пасля claude mcp add сесію трэба адкрыць нанова.
  • Адзнакі гуляюць. Замер лабараторны, на ўмоўным тэлефоне, і ад запуску да запуску розніца ў некалькі балаў — у мяне 66 і 71 на адной і той жа старонцы. Адзін запуск — не доказ: у інструментаў ёсць параметр «колькасць запускаў» (да пяці), а сервер сам вытрымлівае паўзу каля хвіліны паміж імі, інакш Google вярнуў бы той самы вынік.
  • Кэш на гадзіну. Паправілі сайт — скіньце кэш сервера і толькі потым мерайце. Інакш параўнаеце сябе з самім сабой.
  • Пазнака «змяняе даныя» ў параўнання — пра лакальны файл. Гаворка толькі пра файл з базавым замерам у вашай хатняй папцы. Сайт і сэрвісы Google інструмент не кранае.

Што аказалася карысным, а што не

  • Працуе адразу: высвятленне прычын павольнасці, спіс правак па важнасці, параўнанне старонак аднаго сайта, пакетная праверка. Памочнік сам выбірае патрэбны інструмент пад пытанне і перакладае справаздачу з англійскай.
  • Патрабуе падрыхтоўкі: даныя рэальных карыстальнікаў — асобнае ўключэнне API і дастатковы трафік.
  • З агаворкамі: гэта вымярэнне, а не лячэнне. Сервер нічога не змяняе на сайце: ён паказвае, што тармозіць, а выпраўляць усё роўна вам або распрацоўшчыку. Затое замест паўгадзіны ў справаздачы вы атрымліваеце спіс правак за хвіліну.
  • Памятаць заўсёды: правяраюцца толькі адкрытыя старонкі. Асабісты кабінет і ўсё, што схавана за паролем, сэрвіс не ўбачыць.

Кароткі чэк-ліст

  1. Пераканацца, што стаіць Node.js 20.19 або навейшы.
  2. Уключыць PageSpeed Insights API (і Chrome UX Report API, калі патрэбны даныя рэальных карыстальнікаў).
  3. Стварыць асобны API-ключ і абмежаваць яго патрэбнымі інтэрфейсамі.
  4. Паставіць пакет pagespeed-insights-mcp праз npm.
  5. Зарэгістраваць сервер камандай claude mcp add у карыстальніцкай вобласці.
  6. Праверыць ключ звычайным запытам і адкрыць новую сесію Claude.
  7. Для параўнання «да і пасля» прасіць ад трох да пяці запускаў замест аднаго.

Калі праходзіць гэты шлях самому не хочацца, мы можам падключыць PageSpeed Insights да ШІ-памочніка за вас — на вашым камп'ютары ці ў вашым воблаку.