mediarox / pagespeed

Magento Google Pagespeed Optimization Extension
112 stars 58 forks source link

Magento Google PageSpeed Optimization Extension

This extension should help, to fulfill the requirements of the tool Google PageSpeed Insights.

Current features

  1. 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
  2. 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
  3. 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

  1. Eliminate render-blocking JavaScript and CSS in above-the-fold content (feature 1 & 2)
  2. Prioritize visible content (possible with feature 3)

Requirements from PageSpeed Insights which are covered by 3rd party extensions

  1. Minify CSS
  2. Minify JavaScript
    • Both are covered by Speedster Advanced by Fooman (note: that we have no experience with this extension, but Fooman seems to be a good guy.)
  3. Optimize images
  4. Minify HTML

Requirements from PageSpeed Insights which are covered by your server admin :)

  1. Enable compression
  2. Avoid landing page redirects
  3. Leverage browser caching
  4. Reduce server response time

Goal

Goal

Notices

  1. 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.
  2. Test before use. There are also "great" things like multiple </body> tags, that will crash the party.
  3. Front Page Cache: Test it. Look that our event "controller_front_send_response_before" is called before your FPC-Extension starts to observe.
  4. 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)