This PHP library offers an effortless way to leverage Google's PageSpeed Insights API.
Analyze your web pages for performance metrics, get detailed reports, and optimize your site with ease. π
composer require smnandre/pagespeed-apiuse PageSpeed\Api\PageSpeedApi;
$pageSpeedApi = new PageSpeedApi();
// or with API key (optional)
$pageSpeedApi = new PageSpeedApi('YOUR_API_KEY');// Analyze a page
$analysis = $pageSpeedApi->analyse('https://example.com/');
// ...with a specific strategy (mobile or desktop)
$analysis = $pageSpeedApi->analyse('https://example.com/', 'mobile');
// ...with a specific locale (e.g., fr_FR)
$analysis = $pageSpeedApi->analyse('https://example.com/', locale: 'fr_FR');
// ...with a specific category (performance, accessibility, best-practices, seo)
$analysis = $pageSpeedApi->analyse('https://example.com/', categories: 'performance');| Parameter | Description | Default |
|---|---|---|
url |
The URL of the page to analyze. | - |
strategy |
The analysis strategy to use. Possible values are mobile or desktop. |
mobile |
locale |
The locale to use for the analysis. | en |
categories |
The categories to analyze. If not specified, all categories will be analyzed. | - |
use PageSpeed\Api\PageSpeedApi;
$pageSpeedApi = new PageSpeedApi();
$analysis = $pageSpeedApi->analyse('https://www.example.com');
$scores = $analysis->getAuditScores();
// array (
// 'performance' => 100,
// 'accessibility' => 88,
// 'best-practices' => 100,
// 'seo' => 90,
// )| # | Category | Description |
|---|---|---|
| β‘ | Performance | Measures how quickly the content on your page loads and becomes interactive. |
| π | Accessibility | Evaluates how accessible your page is to users, including those with disabilities. |
| π | Best Practices | Assesses your page against established web development best practices. |
| β | SEO | Analyzes your page's search engine optimization, ensuring it follows SEO guidelines. |
| Min | Max | β¬οΈ | Description |
|---|---|---|---|
| 0 | 49 | π₯π₯π₯π₯π₯β¬οΈβ¬οΈβ¬οΈβ¬οΈβ¬οΈ | Poor |
| 50 | 89 | π§π§π§π§π§π§π§π§π§οΈβ¬οΈοΈ | Needs improvement |
| 90 | 100 | π©π©π©π©π©π©π©π©π©π© | Good |
use PageSpeed\Api\PageSpeedApi;
$pageSpeedApi = new PageSpeedApi();
$analysis = $pageSpeedApi->analyse('https://www.example.com');
$metrics = $analysis->getLoadingMetrics();
// array (
// 'CUMULATIVE_LAYOUT_SHIFT_SCORE' => 'FAST',
// 'EXPERIMENTAL_TIME_TO_FIRST_BYTE' => 'AVERAGE',
// 'FIRST_CONTENTFUL_PAINT_MS' => 'FAST',
// 'FIRST_INPUT_DELAY_MS' => 'FAST',
// 'INTERACTION_TO_NEXT_PAINT' => 'FAST',
// 'LARGEST_CONTENTFUL_PAINT_MS' => 'FAST',
// )| # | Abbr | Metric | Description |
|---|---|---|---|
| πΌοΈ | FCP | First Contentful Paint | Time taken for the first piece of content to appear on the screen. |
| π | SI | Speed Index | How quickly the contents of a page are visibly populated. |
| π | FID | First Input Delay | |
| π | CLS | Cumulative Layout Shift | Measure of visual stability; the sum of all individual layout shift scores. |
| β³ | LCP | Largest Contentful Paint | Time taken for the largest content element to appear. |
| β±οΈ | INP | Interaction to Next Paint | The time from when a user interacts with a page (e.g., clicks a button) to the next time the page visually updates in response to that interaction. |
Contributions are welcome! If you would like to contribute, please fork the repository and submit a pull request.
This project is licensed under the MIT License. See the LICENSE file for more information.

