{
  "measuredOn": "2026-10-04",
  "purpose": "Measured page weight and speed of free WordPress block plugins, cited by pagebuildersandwich.com's alternatives pages. Only what those pages display is published (owner ruling, docs/471 §12c).",
  "environment": {
    "wordpress": "7.1.2",
    "php": "8.4 (8.4.26)",
    "server": "Apache (official wordpress:7.1-php8.4-apache Docker image), MariaDB 11 (11.8.9), Redis 7 (7.4.11)",
    "theme": "Twenty Twenty-Five 1.5",
    "content": "seed.php demo coffee shop (same as 2026-10-01)",
    "lighthouse": "13.5.0, mobile preset, simulated throttling (Chrome for Testing 153.0.8010.12, chromium-1243)",
    "runs": 5,
    "settleSeconds": 15
  },
  "method": {
    "lighthouse": "Median of 5 mobile Lighthouse runs per scenario: the performance score; one Lighthouse run for the SEO score.",
    "pageWeight": "Median of 5 loads in Chromium (mobile viewport): everything the browser downloaded within 15 s of load, after one scroll and pointer move.",
    "added": "Each figure is the scenario minus its baseline: the same page, same theme, no plugin active.",
    "defaults": "Each plugin is its free version from WordPress.org (or our own free plugin), at its default settings; the page is one section with a heading, a paragraph and a button, built in the block editor with the plugin's own blocks."
  },
  "scenarios": {
    "build-core": {
      "plugin": "— (WordPress blocks)",
      "version": "WordPress 7.1.2 core",
      "baseline": null,
      "setup": "defaults; core heading + paragraph + buttons/button (baseline; markup verbatim from the 2026-10-01 mkpages-builders.php)",
      "lighthouse": {
        "perf": 100,
        "seo": 92
      },
      "pageWeight": {
        "total_kb": 87.6,
        "third_party": 0
      }
    },
    "build-pbs": {
      "plugin": "Page Builder Sandwich (free)",
      "version": "6.34.2",
      "baseline": "build-core",
      "setup": "defaults; pbs/section + core heading + core paragraph + pbs/button (markup verbatim from the 2026-10-01 scenario); free zip = GitHub release v6.34.2 (latest), sha256 614b97a6d743f3aabd12e3cb9ff76ed31b41925ce77311b96eef08c7148d5842",
      "lighthouse": {
        "perf": 100,
        "seo": 92
      },
      "pageWeight": {
        "total_kb": 88.1,
        "third_party": 0
      }
    },
    "build-kadence": {
      "plugin": "Kadence Blocks (free)",
      "version": "3.7.12",
      "baseline": "build-core",
      "setup": "defaults; kadence/rowlayout picked as 'Row' (1 column) in Kadence's own layout picker > kadence/column > kadence/advancedheading (h2) + core/paragraph (Kadence has no separate text block) + kadence/advancedbtn > kadence/singlebtn",
      "lighthouse": {
        "perf": 100,
        "seo": 92
      },
      "pageWeight": {
        "total_kb": 93.6,
        "third_party": 0
      }
    },
    "build-spectra": {
      "plugin": "Spectra (free)",
      "version": "2.20.4",
      "baseline": "build-core",
      "setup": "defaults; uagb/container (one-column variation) > uagb/advanced-heading (h2, no description) + core/paragraph (Spectra has no separate text block) + uagb/buttons > uagb/buttons-child",
      "lighthouse": {
        "perf": 100,
        "seo": 92
      },
      "pageWeight": {
        "total_kb": 93,
        "third_party": 0
      }
    },
    "build-stackable": {
      "plugin": "Stackable (free)",
      "version": "3.20.2",
      "baseline": "build-core",
      "setup": "defaults; stackable/columns picked as 'One column' in Stackable's own variation picker > stackable/column > stackable/heading + stackable/text + stackable/button-group > stackable/button",
      "lighthouse": {
        "perf": 100,
        "seo": 92
      },
      "pageWeight": {
        "total_kb": 103.4,
        "third_party": 0
      }
    }
  }
}
