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

Што гэта за сервер і навошта ён патрэбны
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.
- У праекце Google Cloud уключыць PageSpeed Insights API. Праект у мяне ўжо быў — той самы, што для Google Analytics і Search Console, — і гэты інтэрфейс у ім быў уключаны.
- У раздзеле «Уліковыя даныя» стварыць API-ключ і даць яму зразумелую назву.
- У абмежаваннях ключа абраць «Абмежаваць ключ» і адзначыць патрэбныя інтэрфейсы, а не пакідаць «Не абмяжоўваць».
Існуючыя ключы праекта я пашыраць не стаў: у кожнага свая задача, і ключ ад індэксацыі не павінен умець хадзіць у праверку хуткасці. Асобны ключ — гэта яшчэ і асобны водгук: калі нешта пойдзе не так, адключаеш адзін ключ, а не высвятляеш, якія сэрвісы ад яго залежаць. Абмежаванне па адрасе ці сайце не ставіў — сервер працуе на маім камп'ютары са зменлівым адрасам.
Пастка, якая каштавала мне лішняга заходу: інтэрфейс 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 і дастатковы трафік.
- З агаворкамі: гэта вымярэнне, а не лячэнне. Сервер нічога не змяняе на сайце: ён паказвае, што тармозіць, а выпраўляць усё роўна вам або распрацоўшчыку. Затое замест паўгадзіны ў справаздачы вы атрымліваеце спіс правак за хвіліну.
- Памятаць заўсёды: правяраюцца толькі адкрытыя старонкі. Асабісты кабінет і ўсё, што схавана за паролем, сэрвіс не ўбачыць.
Кароткі чэк-ліст
- Пераканацца, што стаіць Node.js 20.19 або навейшы.
- Уключыць PageSpeed Insights API (і Chrome UX Report API, калі патрэбны даныя рэальных карыстальнікаў).
- Стварыць асобны API-ключ і абмежаваць яго патрэбнымі інтэрфейсамі.
- Паставіць пакет
pagespeed-insights-mcpпраз npm. - Зарэгістраваць сервер камандай
claude mcp addу карыстальніцкай вобласці. - Праверыць ключ звычайным запытам і адкрыць новую сесію Claude.
- Для параўнання «да і пасля» прасіць ад трох да пяці запускаў замест аднаго.
Калі праходзіць гэты шлях самому не хочацца, мы можам падключыць PageSpeed Insights да ШІ-памочніка за вас — на вашым камп'ютары ці ў вашым воблаку.