Magento Google PageSpeed Optimization Extension
This extension should help, to fulfill the requirements of the tool Google PageSpeed Insights.
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 .
Backend Configuration
All modules (Pagespeed_Js, Pagespeed_Css) are disabled by default.
Configuration path: System > Configuration > ADVANCED > Pagespeed
How it works ?
Simple parse the final html stream on the event "controller_front_send_response_before".
What about performance/parsing time ?
On our local hardware the html parsing requires a maximum of 4 milliseconds.
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
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
Features inspired by
Licence
OSL - Open Software Licence 3.0
Copyright
(c) 2015 mediarox UG (haftungsbeschraenkt) (http://www.mediarox.de)