Bulk Lighthouse Audit – Page Speed & SEO Scores
Pricing
from $25.00 / 1,000 lighthouse audits
Bulk Lighthouse Audit – Page Speed & SEO Scores
Bulk Lighthouse audits for up to 500 URLs, mobile and/or desktop: performance, SEO and accessibility scores plus lab metrics. Pay-per-event pricing.
Pricing
from $25.00 / 1,000 lighthouse audits
Rating
0.0
(0)
Developer
Luxe Tasks
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
Bulk Website Auditor – runs Google Lighthouse
Developer: Luxe_tasks.
This Actor runs Google Lighthouse 13.6.0 (the open-source auditing tool, Apache-2.0) on a list of public web pages, on mobile, desktop or both, and returns performance, accessibility, best-practices, SEO and agentic-browsing scores, the key lab metrics (LCP, CLS, TBT, FCP, Speed Index, TTI), and the full JSON and HTML reports. Lighthouse runs inside the Actor in its own Google Chrome browser (from Apify's base image). No Google API key, no PageSpeed Insights API.
Input
urls(required): up to 500 publichttp/httpsURLs.file:,data:, other schemes, URLs with credentials, private/loopback addresses are refused (free).formFactor:mobile(default),desktop, orboth(two audits of the same URL, twoauditevents).saveHtmlReport(defaulttrue): also store the HTML report (the JSON report is always stored).timeoutSecs(30–120, default 45): maximum wait for the page to load in one audit.- Audits run one at a time (
maxConcurrencyis fixed at 1) so results are not distorted by parallel audits on the same CPU. - Each run has a default timeout of 1 hour (3600 seconds); for very large lists you can raise the timeout in the run options.
Fixed measurement profile (not configurable)
Simulated throttling (Lantern), equal to Lighthouse 13.6.0's own presets:
| network (simulated) | CPU slowdown | screen | |
|---|---|---|---|
| mobile | RTT 150 ms, 1.6 Mbps (Slow 4G) | 4x | 412x823 @1.75 |
| desktop | RTT 40 ms, 10 Mbps | 1x | 1350x940 @1 |
| Scores are lab measurements on cloud hardware; they vary from run to run and will not equal PageSpeed Insights or Chrome DevTools numbers exactly. |
Output
One dataset record per input URL: index, url, status, ok, charged, chargedEvents, chargeEvent, httpStatus, error, robots, timingMs and
formFactor,lighthouseVersion,scores(0–100 per category),metrics(lcpMs, fcpMs, tbtMs, cls, siMs, ttiMs),finalUrl(query string redacted);audits[]: one entry per form factor with its ownstatus,error,scores,metrics,requests,blockedRequestsandreports.json/reports.html({key, link, bytes}pointing to the key-value store). Withboth, the flatscores/metricsfields are omitted; useaudits[].
Key-value store: the full reports (audit-...-json, audit-...-html, about 0.3–1 MB each), SUMMARY (JSON) and SUMMARY-csv
(one line per URL and form factor), and RUN_SUMMARY (counts, charged events, stopped domains).
Statuses: success, invalid_input, ssrf_blocked, robots_disallowed, http_error, http_403, http_429, http_5xx, blocked_or_captcha,
skipped_blocked (domain stopped earlier in the run), timeout, no_content, network_error, not_html, audit_error, save_failed, budget_reached.
Pricing
Pay per event: $0.025 per audit ($25 per 1,000 audits) plus a start fee of $0.005 per GB of memory per run (4 GB default, so $0.02 per run).
audit($0.025): one per completed audit whose reports were saved (soboth= up to two per URL, $0.05).- Start fee: Apify's
apify-actor-startevent at $0.005 per GB of memory, charged by Apify once at the start of every run. The Actor runs with 4 GB (one CPU core, needed for stable scores), so the start fee is 4 x $0.005 = $0.02 per run. Example: 100 URLs on mobile, all audited: 100 x $0.025 + $0.02 = $2.52. Failed, blocked, robots-disallowed, stopped-domain, invalid and budget-skipped audits are free (the start fee still applies). The run reserves budget before each audit and stops at your maximum charge; a URL is not audited if the remaining budget cannot pay for all of its form factors. The syntheticapify-default-dataset-itemevent must stay unpriced (the actor refuses to run if it is priced).
Politeness and safety (kit defaults; may only be tightened)
- robots.txt honoured by default (matched for
LuxeTasksBulkAuditorand*); owner-only override with an attestation naming one registered domain, small runs only. - At most one audit per second per site origin, one audit at a time; no proxy rotation; no retries beyond one for transient errors.
- User-Agent. Every request (page, subresources, redirects, robots.txt) is sent with the unmodified Chrome User-Agent followed by this Actor's token:
<Chrome UA> LuxeTasksBulkAuditor/0.1.0 (+https://apify.com/luxe_tasks/bulk-website-auditor; honours robots.txt)(for exampleMozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/139.0.0.0 Safari/537.36 LuxeTasksBulkAuditor/0.1.0 (...)).HeadlessChromeis kept and the UA is never rotated or disguised. Because of this, the mobile audit does not use Lighthouse's emulated Android User-Agent; a site that serves different HTML by User-Agent may show its desktop markup in the mobile viewport. Mobile scores may therefore differ from PageSpeed Insights. - A 403, 429, CAPTCHA or repeated 5xx stops the whole registered domain for the rest of the run (and after a restart); later items are skipped, not charged.
- Every request the browser makes, including iframes, workers and scripts, is checked: private, loopback, link-local and cloud-metadata addresses are refused,
re-checked after DNS resolution and on every redirect hop. Blocked subresources are listed in
blockedRequests; the page is still audited without them. - No logins, cookies or session tokens: cookies are neither sent nor stored. The Actor takes no API keys.
Acceptable use
Acceptable use. This Actor audits publicly accessible web pages that you choose. By running it you confirm that:
- You will submit only public URLs that you have the right or permission to test, and you will use the output lawfully.
- You will not submit pages behind a login, paywall, or other access control, and the Actor does not accept passwords, cookies or session tokens.
- You will not use it to get around CAPTCHAs, rate limits, IP blocks, or any other technical measure a site uses to restrict access, and not as a load or stress test.
- You will comply with the target site's terms of use and robots.txt, and with all applicable law, including copyright and data-protection law (GDPR, CCPA and similar). You are the controller of any personal data in your results.
- You will not process, store or distribute illegal content, or use the Actor to harass, stalk, or profile individuals.
- You will keep request volumes reasonable. The Actor enforces per-site rate limits and identifies itself in its User-Agent. Report problems through the Actor's Issues tab.
Privacy
"Results are written only to your run's default Apify storage and are not copied, viewed, or retained by the developer. If your results contain personal data, you are the controller and the developer acts only as your processor under Apify's Standard Actor Contract. Apify's retention settings apply."
The full Lighthouse reports contain the URLs (including query strings) of the page and every resource it loaded, page text snippets used by audits, and response headers. The dataset and SUMMARY redact query strings; the stored reports do not. Do not audit URLs that carry secrets or personal data in the query string. Anyone you share the run's storage or report links with can see these URLs.
Third-party software
Lighthouse is © Google LLC, licensed under the Apache License 2.0 (see NOTICE and node_modules/lighthouse/LICENSE). This Actor is not affiliated
with or endorsed by Google. puppeteer-core (Apache-2.0) is listed in NOTICE. Audits run in Google Chrome, which Apify's base image apify/actor-node-puppeteer-chrome installs and which is not included in this repository. Chrome is provided under Google's terms (https://www.google.com/chrome/terms/); see NOTICE.
Runtime
Node 24 (engines, .nvmrc; Lighthouse itself needs Node >= 22.19, tests also pass on Node 22). Needs a Chrome or Chromium binary (CHROME_PATH or a standard path);
the Docker image (apify/actor-node-puppeteer-chrome:24-25.16.0, pinned by digest) bundles Google Chrome and sets CHROME_PATH. Tests: npm test (unit), sh scripts/e2e-netns.sh (real audits of a local fixture site inside a network namespace with no internet).
Bench: sh bench/run-bench.sh (results in bench/results/).
Contact: https://apify.com/Luxe_tasks · Issues tab on the Actor page.