etechflow / module-page-speed-optimizer

etechflow/module-page-speed-optimizer

Magento 2 Page Speed Optimizer Pro — Google PageSpeed Insights diagnostic, WebP image conversion + picture blocks + native lazy-load, HTML minification, JS defer-to-footer, Defer Fonts Loading with exclusion list, Server Push / resource preload hints, Back/Forward Cache compatibility. Full Amasty PSO Pro feature parity at lower price.

magento2-module Compatibility: Not yet tested Code Quality: Pending Tests: N/A Security: Pending proprietary
Viewing version 1.0.0. Latest version is 2.5.5. Switch to latest

ETechFlow Page Speed Optimizer

Magento 2 module that integrates with Google PageSpeed Insights — run real performance diagnostics from the admin, see Lighthouse lab data + real-user CrUX field data side-by-side, and get inline mappings from Google's recommendations to the ETechFlow setting that fixes each one.

Code optimization (CSS/JS/HTML minification, defer fonts, prioritize resource loading) is in development for v1.1+. v1.0 ships the visible-value feature first.

Install

composer require etechflow/module-page-speed-optimizer:^1.0
bin/magento module:enable ETechFlow_PageSpeedOptimizer
bin/magento setup:upgrade
bin/magento setup:di:compile
bin/magento cache:flush
# Restart php-fpm to clear OPcache (mandatory on prod with opcache.validate_timestamps=0)

Set up the Google API key (~3 min, one-time)

  1. https://console.cloud.google.com/apis/credentialsCreate Credentials → API Key (free)
  2. Enable PageSpeed Insights API on the project (free, 25,000 requests/day)
  3. Paste the key into Stores → Configuration → eTechFlow → Page Speed Optimizer → Google PageSpeed Insights → API Key

Without a key it still works, but you'll hit Google's per-IP rate limit (~1 request/second).

Activate the licence

php tools/generate-license.php --module=page-speed-optimizer --host=<your-domain>

Paste the key into Configuration → eTechFlow → Page Speed Optimizer → License Key (or use the Bundle License Key if you're an ETechFlow suite customer).

Verify

bin/magento etechflow:pso:verify

Ten PASS lines means you're good to go.

Run your first diagnostic

bin/magento etechflow:pso:diagnose --url=https://your-store.com/ --strategy=mobile

Or via the admin: Stores → Settings → Page Speed Diagnose → click Run diagnostic.

Configuration

Stores → Configuration → eTechFlow → Page Speed Optimizer:

  • License Key — per-module key (or use Bundle License Key for the suite)
  • Module Enabled — toggle the whole module
  • Google PageSpeed Insights API Key — your Google Cloud API key
  • Default Strategy — mobile (Google's mobile-first indexing default) or desktop
  • API Timeout — default 90s (PSI typically takes 15-45s per page)

Compatibility

  • Magento Open Source 2.4.4 – 2.4.8
  • Adobe Commerce 2.4.4 – 2.4.8
  • PHP 8.1 / 8.2 / 8.3 / 8.4
  • Hyvä Theme + Hyvä Checkout — admin-only module, theme-agnostic

Support

[email protected] — include your license key + Magento version when reporting issues.

Changelog — ETechFlow Page Speed Optimizer

All notable changes to this module. Adheres to Semantic Versioning.


[1.0.0] — 2026-05-21 — Google PageSpeed Insights diagnostic + foundation

First commercial release. Ships the PSI Diagnose feature — the visible-feature that closes every "is your store fast?" conversation with merchants. Code optimization (CSS/JS/HTML minification, defer fonts, prioritize resource loading) follows in v1.1+.

Why v1.0 ships Diagnose first

Every Amasty / Mageworx / Mirasvit page-speed module markets the same optimization features. What makes Amasty's $259 product feel premium is the Diagnostic tool — it shows merchants a real Google score before/after, with concrete recommendations. We ship that as v1.0 because:

  1. It's the highest-perceived-value feature in the category
  2. It gives merchants something to measure their other ETechFlow modules against (IO's WebP conversion, future PSO minification, etc.)
  3. The code already exists — it was originally added to IO v1.2.0 then moved here in IO v1.3.0 because a measurement tool didn't belong in an image-optimization module.

Added

Foundation

  • registration.php, composer.json (proprietary licence, soft-deps on IO + suite modules via Bundle key).
  • etc/module.xml setup_version 1.0.0.
  • DB schema: 1 table etechflow_pso_diagnostic_log — full audit of every PSI run with lab + field metrics + raw JSON for future re-parsing.
  • Admin config (etc/adminhtml/system.xml) — License section + Google PageSpeed Insights section + Code Optimization section (placeholder toggles for v1.1+ features).

Licensing + Infrastructure

  • Model/LicenseValidator — per-domain HMAC + bundle key. MODULE_ID = page-speed-optimizer. Shares BUNDLE_SECRET_FRAGMENTS byte-identical with every other ETechFlow module.
  • Model/Config — license-aware isEnabled(). PSI API key + default strategy + timeout getters.
  • Model/Performance/Profiler — Tideways span helper, tags ETechFlow_PSO_*.

Google PageSpeed Insights Integration

  • Model/Psi/PsiClient — vanilla Curl client. Free tier: 25,000 requests/day per merchant's Google Cloud API key (no key works too, with Google's per-IP rate limit).
  • Model/Data/DiagnosticResult — typed value object: lab Lighthouse score + Core Web Vital metrics + CrUX real-user field metrics + sorted recommendation list.
  • Model/Recommendation/Mapper — curated mapping of 16 PSI audit IDs to the ETechFlow feature that fixes them. Drives the "ETechFlow can fix this" badge inline next to each Google recommendation.
  • Model/Psi/DiagnosticLogger — best-effort persistence to the audit table.

Admin UI

  • New page at Stores → Settings → Page Speed Diagnose:
    • Big colour-coded score card (green ≥ 90, orange 50-89, red < 50 — Google's own bands)
    • Lab metrics row (FCP, LCP, TBT, CLS)
    • Field metrics row (real-user CrUX data when available — LCP, INP, CLS + overall FAST/AVERAGE/SLOW category)
    • Sorted recommendation list (biggest LCP impact first) with HIGH/MEDIUM/LOW badges
    • ETechFlow fix badge on every recommendation we cover

CLI

  • bin/magento etechflow:pso:diagnose --url=... --strategy=mobile|desktop --json --pass-score=80 — headless diagnostic for CI gates.
  • bin/magento etechflow:pso:verify — 10-check smoke test.

Deferred to v1.1+

  • CSS minification (build-time, stored in pub/static)
  • JavaScript minification + defer
  • HTML minification
  • Defer Fonts Loading with exclusion list
  • Prioritize Resource Loading (<link rel="preload"> injection)
  • GZIP/Brotli headers via .htaccess / nginx hints
  • Critical CSS extraction (above-the-fold CSS inlining)
  • Performance budgets (admin-set max JS/CSS/image total per page; flag offenders)
  • Score timeline graph (chart of LCP / INP / CLS over time from the diagnostic_log table)
  • Hyvä Mode (auto-detect Hyvä, skip optimizations Hyvä already handles)

Setup (one-time, ~3 min)

  1. Go to https://console.cloud.google.com/apis/credentials
  2. Click "Create Credentials → API Key" (free)
  3. Enable "PageSpeed Insights API" on the project (free, 25,000 requests/day)
  4. Paste the key into Stores → Configuration → eTechFlow → Page Speed Optimizer → Google PageSpeed Insights → PageSpeed Insights API Key

Without a key it still works (Google's per-IP rate limit) but the key is strongly recommended.

Compatibility

  • Magento Open Source 2.4.4 – 2.4.8
  • Adobe Commerce 2.4.4 – 2.4.8
  • PHP 8.1 / 8.2 / 8.3 / 8.4
  • Hyvä Theme + Hyvä Checkout (PSO is admin-side; theme-agnostic for now — Hyvä-aware optimizations land in v1.1+)
Versions
Version Stability QA Status Compatibility Released
2.5.5 stable Fail Magento 2.4.7-2.4.8 Details 2026-06-22 11:39:20
2.5.4 stable Not tested Not yet tested Details 2026-06-22 09:37:33
2.5.0 stable Not tested Not yet tested Details 2026-06-06 14:14:44
2.4.0 stable Not tested Not yet tested Details 2026-06-04 10:23:48
2.3.1 stable Not tested Not yet tested Details 2026-05-30 14:33:11
2.3.0 stable Not tested Not yet tested Details 2026-05-21 10:02:55
2.2.0 stable Not tested Not yet tested Details 2026-05-21 09:55:49
2.1.0 stable Not tested Not yet tested Details 2026-05-21 09:41:38
2.0.0 stable Not tested Not yet tested Details 2026-05-21 07:20:33
1.1.0 stable Not tested Not yet tested Details 2026-05-21 06:15:11
1.0.0 stable Not tested Not yet tested Details 2026-05-21 06:07:22

Requires 7

Package Constraint
magento/framework ^103.0||^104.0
magento/module-backend ^102.0||^103.0
magento/module-catalog ^104.0||^105.0
magento/module-config ^101.2||^102.0
magento/module-store ^101.1||^102.0
magento/module-ui ^101.2||^102.0
php ~8.1.0||~8.2.0||~8.3.0||~8.4.0

Suggests 3

Package Reason
etechflow/module-back-in-stock-notification Bundle key activates this module too.
etechflow/module-image-optimizer Pair with IO so the PSI Diagnose recommendation mapper can point to specific image-optimization settings (e.g. 'Serve images in next-gen formats → Enable WebP conversion').
etechflow/module-next-day-eligibility Bundle key activates this module too. Existing ETechFlow suite customer? Get this free.

No QA results yet

QA pipelines haven't run for this version. Compatibility and quality results appear here once the vendor publishes a tagged release that gets ingested.

License
proprietary
Authors

More from etechflow

View vendor
Make it pay

Turn an existing module into recurring revenue.

If you already maintain a Magento 2 module on GitHub or GitLab, listing it on Packagento takes about five minutes. We mirror your tags, handle distribution signing, and route paid licenses through Stripe Connect, so you can keep shipping the way you already do.