Magento Google PageSpeed Optimization Extension
This extension should help, to fulfill the requirements of the tool Google PageSpeed Insights., (*1)
Current features
- Move all Javascript tags (head & inline) to the bottom.
({stripped_html}{js}</body></html>)
- including conditional js units
(<!--[if lt IE 7]>{multiple js tags}<![endif]-->)
- including external js tags
- including "inline" js tags
- Move all CSS tags (head & inline) to the bottom.
({stripped_html}{css}</body></html>)
- including conditional css units
(<!--[if lt IE 7]>{multiple css tags}<![endif]-->)
- including external css tags
- including inline css tags
- Backend configuration option to exclude specific js tags/units or css tags/units from the move. (regex pattern)
Compatibility
From Magento 1.5.x to Magento 1.9.x ., (*2)
Backend Configuration
All modules (Pagespeed_Js, Pagespeed_Css) are disabled by default., (*3)
Configuration path: System > Configuration > ADVANCED > Pagespeed, (*4)
How it works ?
Simple parse the final html stream on the event "controller_front_send_response_before"., (*5)
On our local hardware the html parsing requires a maximum of 4 milliseconds., (*6)
Requirements from PageSpeed Insights and planned features
- ~~Eliminate render-blocking JavaScript and CSS in above-the-fold content~~ (feature 1 & 2)
- ~~Prioritize visible content~~ (possible with feature 3)
Requirements from PageSpeed Insights which are covered by 3rd party extensions
- Minify CSS
-
Minify JavaScript
-
Optimize images
-
Minify HTML
Requirements from PageSpeed Insights which are covered by your server admin :)
- Enable compression
- Avoid landing page redirects
- Leverage browser caching
- Reduce server response time
Goal
, (*7)
Notices
- There is also a great tool called PageSpeed Module
for common webservers like apache and nginx. If you have the opportunity: Use it, but read the manual.
- Test before use. There are also "great" things like multiple
</body>
tags, that will crash the party.
- Front Page Cache: Test it. Look that our event "controller_front_send_response_before" is called before
your FPC-Extension starts to observe.
- If an Javascript use the outdated "document.write", it must be excluded by the regex pattern.
Developers
Special thanks
- Sander Kwantes sanderkwantes
- Adam Johnson [adamj88] (https://github.com/adamj88)
- Ben Corlett [bencorlett] (https://github.com/bencorlett)
Features inspired by
Licence
OSL - Open Software Licence 3.0, (*8)
Copyright
(c) 2015 mediarox UG (haftungsbeschraenkt) (http://www.mediarox.de), (*9)