mage-os/module-theme-optimization 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

mage-os/module-theme-optimization

Composer 安装命令:

composer require mage-os/module-theme-optimization

包简介

Page transitions and speculative loading rules for Magento

README 文档

README

Latest Stable Version License Total Downloads

Mage-OS

MageOS_ThemeOptimization module

This module provides theme-related features to improve the performance of your Magento store, including:

  • Back/Forward Cache support for faster browser navigation
  • Page transitions when navigating between pages on Magento
  • Speculative preloading of internal links on hover

Requirements

  • Magento 2.4.5+ or equivalent version of Adobe Commerce, Adobe Commerce Cloud, or Mage-OS

Installation details

To install the module, run the following commands in SSH, from the Magento root directory:

composer require mage-os/module-theme-optimization
php bin/magento setup:upgrade

Configuration

The module provides settings in the Magento Admin Panel under: Stores > Configuration > Advanced > System

All values can be configured at Default, Website, and Store View scopes.

Back/Forward Cache

  • Enable Back/Forward Cache - Enable back/forward cache to store pages in browser memory temporarily for faster navigation. (Default: Yes)
  • Update Mini Cart on User Interaction
    • Yes: Mini cart updates only after user interaction when page is restored from cache (Default)
    • No: Mini cart updates immediately on page restore
    • Recommended "Yes" to maintain optimal Page Speed and Core Web Vitals scores
  • Auto Close Menu - Automatically close open menus when page is restored from back/forward cache (for compatible themes). (Default: Yes)
  • Exclude URLs - Optional configuration to exclude specific URL patterns from back/forward cache. Enter URL parts (substring), one per line. The extension automatically excludes non-cacheable URLs, so this is only needed for custom cached URLs that load private data via JavaScript.

Important

bfcache availability varies based on your Full Page Cache engine and hosting. Some require additional setup.

READ MORE: Configuring Back/Forward cache with Varnish FPC

For the Back/Forward Cache feature to work with Varnish Full Page Cache, you must modify your VCL file's vcl_deliver subroutine by updating the existing Cache-Control header logic.

sub vcl_deliver {
  # Find the existing line that sets Cache-Control, like:
  set resp.http.Cache-Control = "no-store, no-cache, must-revalidate, max-age=0";
  
  # Replace it with:
  if (resp.http.Cache-Control ~ "public") {
      set resp.http.Cache-Control = "no-cache, must-revalidate, max-age=0";
  } else {
      set resp.http.Cache-Control = "no-store, no-cache, must-revalidate, max-age=0";
  }
}
  • This modification requires manual VCL file editing and Varnish service restart
  • Test thoroughly in a staging environment before deploying to production
  • Consider using elgentos/magento2-varnish-extended for a more complete enhanced Varnish configuration
READ MORE: Configuring Back/Forward cache with Fastly (including Adobe Commerce Cloud)

For Fastly CDN, you must create two custom VCL snippets through the Magento admin panel, as follows:

Step 1: Access VCL Snippets

  1. Navigate to Stores > Settings > Configuration > Advanced > System
  2. Expand Full Page Cache > Fastly Configuration > Custom VCL Snippets
  3. Click Create Custom Snippet

Step 2: Configure Snippet 1

  • Name: bfcache-preserve-public-private
  • Type: fetch
  • Priority: 1
  • VCL Content:
if (beresp.http.Cache-Control) {
    if (beresp.http.Cache-Control ~ "public") {
        set beresp.http.X-MageOS-Bfcache = "public";
    } else {
        set beresp.http.X-MageOS-Bfcache  = "private";
    }
}

Save the snippet
Click Create Custom Snippet again

Step 3: Configure Snippet 2

  • Name: bfcache-remove-ccns
  • Type: deliver
  • Priority: 100
  • VCL Content:
if (fastly.ff.visits_this_service == 0 && req.restarts == 0) {
    if (resp.http.X-MageOS-Bfcache == "public") {
       set resp.http.Cache-Control = "no-cache, must-revalidate, max-age=0";
    }
}

unset resp.http.X-MageOS-Bfcache;

Save the snippet

Step 4: Deploy

Click Upload VCL to Fastly, and Activate the uploaded VCL

Speculative Loading

  • Enable Speculation Rules - Enables speculative loading to preload pages before links are clicked, making perceived load times faster. (Default: Yes)
  • Mode - Choose between prefetch and prerender modes. (Default: prefetch)
    • Prefetch: Downloads resources in advance
    • Prerender: Fully renders pages in advance (faster but may affect analytics data and UI changes)
  • Eagerness Level - Controls how aggressively pages are preloaded. (Default: Moderate)
    • Conservative: Minimal preloading, only when very likely to be needed
    • Moderate: Balanced approach between performance and resource usage
    • Eager: Aggressive preloading for maximum user experience, at the cost of loading pages the user may never visit
  • Exclude URL Patterns - URL patterns to never preload. One pattern per line. (Default: customer, login, logout, auth, cart, checkout, search, download, redirect, rewrite, store, productalert)
    • URL patterns are matched against the request URI. We recommend entering part or full route paths, like "customer" (to exclude all customer pages) or "customer/account/logout" (to specifically exclude logout).
  • Exclude File Extensions - File extensions to never preload. (Default: pdf, zip)
  • Exclude Selectors - CSS selectors for links to never preload. Enter one selector per line. (Default: .do-not-prerender)

View Transitions

  • Enable View Transitions - Toggle animated page changes for storefront. (Default: Yes)
  • Enable View Transitions for Admin - Enable transitions in Admin; disable if using a theme with built-in transitions. (Default: Yes)
  • Apply on Back/Forward - Show transitions when using browser navigation; can be disabled for faster restores. (Default: Yes)

Contributors

Initial module, page transitions, and speculation rules contributed by @rhoerr.

Back/forward cache support was contributed by Oli Jaufmann and @JaJuMa.

Credit for the default speculation rules to David Lambauer and @run_as_root.

This module is sponsored and maintained by Mage-OS. Mage-OS makes it open source and freely available for use by any Magento 2.4+ or Adobe Commerce website.

mage-os/module-theme-optimization 适用场景与选型建议

mage-os/module-theme-optimization 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 22.32k 次下载、GitHub Stars 达 41, 最近一次更新时间为 2025 年 08 月 19 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 mage-os/module-theme-optimization 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 mage-os/module-theme-optimization 我们能提供哪些服务?
定制开发 / 二次开发

基于 mage-os/module-theme-optimization 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 22.32k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 41
  • 点击次数: 34
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 41
  • Watchers: 3
  • Forks: 8
  • 开发语言: PHP

其他信息

  • 授权协议: OSL-3.0
  • 更新时间: 2025-08-19