Open-Source Cold Email & Warmup Platform
Warmbly 是开源的冷邮件平台:温暖您的邮箱、发送活动、并对每条回复进行分流。可在我们的云端运行,也可自行托管整套系统。
AI 翻译
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Audit hundreds of URLs with Google's official PageSpeed Insights API: Lighthouse performance, SEO and accessibility scores plus LCP, INP and CLS for mobile and desktop. Built-in API key, pay per page, failures free. Runs on Apify Store: https://apify.com/josh99smith/pagespeed-insights-audit
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Audit any list of pages with the official PageSpeed Insights API and get back Core Web Vitals plus the Lighthouse performance, accessibility, best-practices and SEO scores, the lab metrics behind them (LCP, CLS, TBT, FCP, Speed Index, TTI) and real-user field data, for mobile and desktop, in one downloadable dataset.
Built for SEO agencies, web developers and site owners who need the same numbers as pagespeed.web.dev for dozens or thousands of URLs at once. You pay a flat price per audited page; pages Google cannot audit are reported free of charge.查看完整 README ↗Audit any list of pages with the official PageSpeed Insights API and get back Core Web Vitals plus the Lighthouse performance, accessibility, best-practices and SEO scores, the lab metrics behind them (LCP, CLS, TBT, FCP, Speed Index, TTI) and real-user field data, for mobile and desktop, in one downloadable dataset.
Built for SEO agencies, web developers and site owners who need the same numbers as pagespeed.web.dev for dozens or thousands of URLs at once. You pay a flat price per audited page; pages Google cannot audit are reported free of charge.
For every URL and device strategy the Actor calls the official PageSpeed Insights API v5, exactly as pagespeed.web.dev does. Google runs Lighthouse on the page in its own data centre; nothing is scraped and no browser runs inside the Actor. The Actor reduces the large report to category scores (0 to 100), lab metrics, field data (when Google has enough real-user traffic for the page or its origin) and, optionally, the top failing audits.
Each audit takes Google roughly 10 to 30 seconds, so 100 URLs at the default concurrency finish in about 10 minutes. Two Lighthouse runs of the same page can differ by a few points.
{
"urls": ["https://example.com", "https://www.wikipedia.org"],
"strategy": "both",
"categories": ["performance", "accessibility", "best-practices", "seo"],
"includeAuditDetails": true
}
Audit a few URLs and get the results back in one HTTP call:
curl -X POST "https://api.apify.com/v2/acts/josh99smith~pagespeed-insights-audit/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"urls": ["https://example.com"], "strategy": "mobile"}'
Python, with the apify-client package:
from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("josh99smith/pagespeed-insights-audit").call(
run_input={"urls": ["https://example.com", "https://www.wikipedia.org"], "strategy": "both", "includeAuditDetails": True}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["url"], item["strategy"], item.get("scores"))
JavaScript or TypeScript, with the apify-client package:
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "<YOUR_API_TOKEN>" });
const run = await client.actor("josh99smith/pagespeed-insights-audit").call({
urls: ["https://example.com", "https://www.wikipedia.org"],
strategy: "mobile",
categories: ["performance", "seo"],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
The Actor is exposed as a tool by the Apify MCP server, so an AI agent can call it by name. Add this to your MCP client configuration (Claude Desktop, Claude Code, Cursor, VS Code, Windsurf and others):
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=josh99smith/pagespeed-insights-audit",
"headers": { "Authorization": "Bearer <YOUR_API_TOKEN>" }
}
}
}
Then ask, for example: "Audit https://example.com on mobile with josh99smith/pagespeed-insights-audit and list the top opportunities." The agent fills in the input, runs the Actor and reads the dataset back; you pay the same per-result price as in the Console.
The Actor can also be scheduled, or connected to Zapier, Make, n8n and Google Sheets in the Integrations tab.
One record per URL and strategy. A successful record (trimmed):
{
"url": "https://example.com",
"finalUrl": "https://example.com/",
"strategy": "mobile",
"success": true,
"scores": { "performance": 72, "accessibility": 88, "bestPractices": 96, "seo": 100 },
"labMetrics": { "fcpMs": 2144, "lcpMs": 3413, "cls": 0.042, "tbtMs": 420, "speedIndexMs": 3187, "ttiMs": 4902 },
"fieldData": {
"lcpMs": { "percentile": 2371, "category": "FAST" },
"inpMs": { "percentile": 214, "category": "AVERAGE" },
"cls": { "percentile": 0.05, "category": "FAST" },
"fcpMs": { "percentile": 1312, "category": "FAST" },
"ttfbMs": { "percentile": 612, "category": "FAST" },
"overallCategory": "FAST",
"originFallback": false
},
"opportunities": [
{
"id": "render-blocking-resources",
"title": "Eliminate render-blocking resources",
"savingsMs": 780,
"savingsBytes": null,
"displayValue": "Est savings of 780 ms"
},
{
"id": "unused-javascript",
"title": "Reduce unused JavaScript",
"savingsMs": 450,
"savingsBytes": 120832,
"displayValue": "Est savings of 118 KiB"
}
],
"failedAudits": [
{
"id": "color-contrast",
"title": "Background and foreground colors do not have a sufficient contrast ratio.",
"category": "accessibility",
"score": 0,
"displayValue": "3 failing elements"
}
],
"lighthouseVersion": "12.8.2",
"analysisTimestamp": "2026-09-18T20:41:07.512Z",
"fetchedAt": "2026-09-18T20:41:21.203Z"
}
Pages that could not be audited are still recorded, so nothing silently disappears from your list:
{
"url": "https://this-domain-does-not-exist.example",
"strategy": "mobile",
"success": false,
"errorType": "dns",
"error": "Lighthouse could not audit the page (DNS_FAILURE): ...",
"statusCode": 500,
"fetchedAt": "..."
}
| Field | Description |
|---|---|
url / finalUrl | The URL you supplied and the URL Lighthouse ended on after redirects. |
strategy | mobile or desktop. |
success | true when Google returned a usable Lighthouse report. Only these records are billed. |
scores | Lighthouse category scores as integers from 0 to 100 (null for categories you did not request). 90+ is "good", 50 to 89 "needs improvement". |
labMetrics | Lighthouse lab measurements from Google's test device: FCP, LCP, CLS, TBT, Speed Index and TTI. Times in milliseconds. |
fieldData | Real-user Core Web Vitals from the Chrome UX Report (28-day 75th percentile): LCP, INP, CLS, FCP and TTFB, each with percentile and category (FAST, AVERAGE, SLOW), plus Google's overallCategory. null when the page has too little traffic; originFallback marks origin-level data. |
opportunities[] | With Include audit details: failing performance audits with estimated savingsMs / savingsBytes, largest first, up to 15. |
failedAudits[] | With Include audit details: failing accessibility, best-practices and SEO audits, most heavily weighted first, up to 15. |
lighthouseVersion / analysisTimestamp | The Lighthouse version Google used and when the analysis ran. |
errorType | For failures: invalid-url, rate-limited, http-error, dns, timeout, network, missing-api-key or other. |
You pay a flat price per successfully audited URL and strategy (see the price next to the Start button). Auditing 100 URLs on mobile is 100 events; on both mobile and desktop it is 200. Invalid URLs, pages Google cannot load and quota errors cost nothing. There is no charge for Actor start-up, and the Actor stops automatically when it reaches the maximum cost you set for a run, so a large list never produces a surprise bill.
How it compares (September 2026). Actors that run their own headless Lighthouse charge $0.04 to $0.10 per page and, per Apify's public stats, fail on a quarter of runs; the cheapest alternative relies on an undocumented Google endpoint. This Actor calls the official PageSpeed Insights API at $0.004 per audit, handles many URLs per run on mobile and desktop, and never bills quota errors or pages Google could not load.
By default the Actor uses a built-in Google API key shared by all its users. The PageSpeed Insights API is free but rate limited (25,000 requests per day and a few hundred per minute per key). For large or scheduled workloads, create your own free key in the Google Cloud Console (enable the "PageSpeed Insights API", then create an API key) and paste it into the Google API key field. The key is stored encrypted and never written to the log or dataset. When a quota is exhausted you get free rate-limited failure records; retry later or use your own key.
desktop when the audience is mostly desktop.fieldData.overallCategory reflects real users, scores.performance is a lab estimate. Fix field data first.timeout records and finishes normally, so you keep everything already audited.Yes: same API, same Lighthouse run in Google's data centre, subject only to the usual run-to-run variance.
Google only publishes Chrome UX Report data for pages and origins with enough real-user traffic. Low-traffic pages have lab data only.
No. Google's servers must be able to fetch the page publicly; protected or localhost pages fail with http-error.
No scraping is involved. The Actor uses Google's official, documented PageSpeed Insights API under its terms of service and audits only the public pages you specify.
There is no hard limit on list size; the shared key allows a few hundred audits per minute and 25,000 per day across all users, and your own key gives you that quota to yourself. When a quota is exhausted, affected URLs are reported as free rate-limited failures and the run finishes normally.
No. Output fields are stable: existing fields are never renamed or removed without a major version bump announced in the changelog, and new fields are only ever added. You can build integrations on the schema without checking it after every run.
Best Damn PageSpeed Insights Audit plugs into the tools you already use through Apify integrations, so results can flow on without anyone downloading a file. Ready-made connectors include:
You can also attach webhooks to trigger your own endpoint whenever a run succeeds, fails or times out. For example, alert Slack when a page drops below your performance threshold, or log every audit to a Google Sheet for trend charts.
Found a page that fails unexpectedly, or a field you are missing? Open a ticket in the Issues tab of this Actor. If this Actor saved you time, a review on its Store page helps other people find it.
This Actor is open source under the MIT licence. PageSpeed Insights and Lighthouse are trademarks of Google LLC; this Actor is not affiliated with Google.
The full source code is on GitHub: josh99smith/pagespeed-insights-audit. Stars and pull requests are welcome.