You can install the package via composer:
$ composer require renatomarinho/laravel-page-speed
You don't have to do anything else, this package uses Package Auto-Discovery's feature, and should be available as soon as you install it via Composer.
Add the Service Provider to your config/app.php: RenatoMarinho\LaravelPageSpeed\ServiceProvider::class
This is required for publishing the configuration file:
php artisan vendor:publish --provider="RenatoMarinho\LaravelPageSpeed\ServiceProvider"
Next, the \RenatoMarinho\LaravelPageSpeed\Middleware\CollapseWhitespace::class
and others middleware must be registered in the kernel:
//app/Http/Kernel.php
protected $middleware = [
...
\RenatoMarinho\LaravelPageSpeed\Middleware\InlineCss::class,
\RenatoMarinho\LaravelPageSpeed\Middleware\ElideAttributes::class,
\RenatoMarinho\LaravelPageSpeed\Middleware\InsertDNSPrefetch::class,
\RenatoMarinho\LaravelPageSpeed\Middleware\RemoveComments::class,
\RenatoMarinho\LaravelPageSpeed\Middleware\TrimUrls::class,
\RenatoMarinho\LaravelPageSpeed\Middleware\RemoveQuotes::class,
\RenatoMarinho\LaravelPageSpeed\Middleware\CollapseWhitespace::class,
]
Name | Description | Available |
inline_css | Inlines small external CSS files | YES |
elide_attributes | Removes unnecessary attributes in HTML tags | YES |
insert_dns_prefetch | Injects tags in the HEAD to enable the browser to do DNS prefetching | YES |
remove_quotes | Removes unnecessary quotes in HTML tags | YES |
trim_urls | Removes unnecessary prefixes from URLs | YES |
collapse_whitespace | Removes unnecessary whitespace in HTML | YES |
remove_comments | Removes HTML comments | YES |
combine_css | Combines multiple CSS files into one | NO |
combine_heads | Combines multiple elements into one | NO |
combine_javascript | Combines multiple JavaScript files into one | NO |
dedup_inlined_images | Replaces repeated inlined images with JavaScript that loads the data from the first instance of the image | NO |
defer_javascript | Defers the execution of javascript in the HTML | NO |
pedantic | Adds default type attributes to script and style tags that are missing them | NO |
extend_cache | Improves cacheability | NO |
fallback_rewrite_css_urls | Rewrite URLs in CSS even if CSS is not parseable | NO |
flatten_css_imports | Flattens @import rules in CSS by replacing the rule with the contents of the imported resource | NO |
hint_preload_subresources | Inserts link: headers to preload CSS and JavaScript resources | NO |
inline_google_font_css | Inlines small font-loading CSS from Google Fonts API | NO |
inline_import_to_link | Inlines style tags comprising only CSS @imports by converting them to an equivalent link | NO |
inline_javascript | Inlines small external Javascript files | NO |
inline_preview_images | Delays original images; serves inlined, low-quality placeholder images until originals are loaded | NO |
insert_ga | Inserts Google Analytics javascript snippet | NO |
lazyload_images | Loads images when they become visible in the client viewport | NO |
local_storage_cache | Loads inlined CSS and image resources into HTML5 local storage whence the client fetches them subsequently rather than the server sending them again | NO |
make_show_ads_async | Converts synchronous Google AdSense tags to asynchronous format | NO |
make_google_analytics_async | Converts synchronous Google Analytics code to load asynchronously | NO |
move_css_above_scripts | Moves CSS Above Scripts | NO |
move_css_to_head | Moves CSS into the element | NO |
outline_css | Moves large inline <style> tags into external files for cacheability | NO |
outline_javascript | Moves large inline <script> tags into external files for cacheability | NO |
prioritize_critical_css | Instruments the page, inlines its critical CSS at the top, and lazily loads the rest | NO |
resize_mobile_images | Just like inline_preview_images, but uses smaller placeholder images for mobile browsers | NO |
resize_rendered_image_dimensions | Resize images to rendered dimensions | NO |
responsive_images | Serve responsive images using the srcset attribute | NO |
rewrite_css | Minifies CSS | NO |
rewrite_images | Rescales, and compresses images; inlines small ones | NO |
rewrite_javascript | Minifies Javascript | NO |
rewrite_style_attributes | Rewrite the CSS in style attributes by applying the configured rewrite_css filter to it | NO |
rewrite_style_attributes_with_url | Rewrite the CSS in style attributes by applying the configured rewrite_css filter to it, but only if the attribute contains the text 'url(' | NO |
sprite_images | Sprites images | NO |
After installing package, you may need to configure some options.
You would probably like to set up the local environment to get a readable output.
//config/laravel-page-speed.php
//Set this field to false to disable the laravel page speed service.
'enable' => env('LARAVEL_PAGE_SPEED_ENABLE', true),
You would probably like to configure the package to skip some routes.
//config/laravel-page-speed.php
//You can use * as wildcard.
'skip' => [
'*.pdf', //Ignore all routes with final .pdf
'*/downloads/*',//Ignore all routes that contain 'downloads'
];
By default this field comes configured with some options, so feel free to configure according to your needs...
$ composer test
Please see CONTRIBUTING for details.
Mod Page Speed (https://www.modpagespeed.com/)
The MIT License (MIT). Please see License File for more information.