Performance Optimization Workflow: From Testing to Production

Back to Blog
Blyxo Team
9 min read
PerformanceWorkflowCI/CDTestingOptimization

You've tested your site's performance. You've identified issues. You've even fixed some of them. But three weeks later, performance has regressed. A new feature added 2MB of JavaScript. An A/B test doubled your LCP. Nobody noticed until users complained.

This is the performance optimization trap: treating it as a one-time project instead of an ongoing practice.

Performance isn't something you fix once. It's something you maintain—with processes, thresholds, and automation that catch regressions before they reach production.

The performance optimization lifecycle

Effective performance optimization follows a continuous cycle:

  1. Baseline: Measure current performance across key pages
  2. Set thresholds: Define acceptable performance targets
  3. Optimize: Fix the biggest issues first
  4. Monitor: Track performance over time
  5. Prevent regressions: Automate testing in CI/CD
  6. Repeat: Continuously improve

Let's walk through each step.

Step 1: Establish a performance baseline

Before you can improve, you need to know where you stand.

What to measure

Don't try to test every page on day one. Start with the pages that matter most:

High-traffic pages:

  • Homepage
  • Top landing pages (check analytics)
  • Product/service pages
  • Checkout flow (if e-commerce)

High-value pages:

  • Pages that drive conversions
  • Pages that generate revenue
  • Pages with high bounce rates (might be performance issues)

How to measure

Run tests from conditions that match your users:

Geographic distribution: If 40% of users are in Europe, test from European locations Device distribution: If 60% are on mobile, prioritize mobile testing Network distribution: Test on 3G/4G, not just WiFi

Example baseline:

Homepage (Desktop, US, WiFi):
- LCP: 2.1s
- INP: 180ms
- CLS: 0.08

Homepage (Mobile, India, 3G):
- LCP: 8.4s ⚠️
- INP: 620ms ⚠️
- CLS: 0.22 ⚠️

Product page (Desktop, US, WiFi):
- LCP: 3.2s
- INP: 210ms
- CLS: 0.15

Product page (Mobile, India, 3G):
- LCP: 12.1s ⚠️
- INP: 890ms ⚠️
- CLS: 0.31 ⚠️

This baseline shows your performance varies wildly by location and device—crucial information.

How Blyxo helps: Automatically tests key pages from multiple locations and devices, giving you a comprehensive baseline without manual testing.

Step 2: Set realistic performance thresholds

Google's "good" thresholds (LCP < 2.5s, INP < 200ms, CLS < 0.1) are targets, not requirements. Your thresholds should reflect your users and business context.

Performance budgets vs. thresholds

Performance budgets: Resource limits (e.g., "JavaScript bundle < 300KB") Performance thresholds: User experience limits (e.g., "LCP < 3s on 3G")

Both are useful, but thresholds matter more—users don't care about your bundle size, they care about load time.

How to set thresholds

Start with your baseline and ask:

  1. What's acceptable for your users? E-commerce sites need faster load times than documentation sites
  2. What's achievable given your constraints? A media-heavy site will have higher LCP than a text-only blog
  3. What's the business impact? If 1 second costs 5% of conversions, your threshold should be stricter

Example thresholds:

Homepage:
- LCP: < 2.5s (WiFi), < 4s (3G)
- INP: < 200ms
- CLS: < 0.1

Product pages:
- LCP: < 3s (WiFi), < 5s (3G)
- INP: < 250ms
- CLS: < 0.15

Important: Set separate thresholds for different network conditions. A page that loads in 2s on WiFi might take 6s on 3G—and that might be acceptable.

How Blyxo helps: Lets you set custom thresholds per page type, device, and network condition. Tests against your thresholds automatically.

Step 3: Prioritize and optimize

You can't fix everything at once. Focus on the highest-impact fixes first.

Prioritization framework

Impact = (Traffic × Improvement × Business Value)

Example:

  • Homepage hero image optimization: High traffic (50K/month) × Large improvement (LCP 5s → 2s) × High value (landing page) = TOP PRIORITY
  • Blog post font loading: Medium traffic (10K/month) × Small improvement (CLS 0.15 → 0.08) × Low value (informational) = Lower priority

Common high-impact optimizations

Images (usually the biggest win):

  • Compress images (use WebP/AVIF)
  • Add width/height attributes (prevents CLS)
  • Use responsive images (srcset)
  • Lazy-load below-the-fold images (but NOT hero images)

JavaScript:

  • Code-split by route
  • Defer non-critical scripts
  • Remove unused dependencies
  • Use dynamic imports

CSS:

  • Inline critical CSS
  • Defer non-critical CSS
  • Remove unused styles
  • Minimize render-blocking stylesheets

Fonts:

  • Use font-display: swap
  • Preload critical fonts
  • Subset fonts (only include characters you need)
  • Consider system font stacks

Third-party scripts:

  • Load asynchronously
  • Use facades (e.g., click-to-load for YouTube embeds)
  • Remove unused scripts
  • Self-host when possible

How Blyxo helps: Prioritizes issues by impact, shows specific elements causing slowdowns, and suggests actionable fixes.

Step 4: Monitor performance over time

Performance degrades. New features add weight. Third-party scripts slow down. CDN configurations change.

What to monitor

Core Web Vitals: LCP, INP, CLS for key pages Page weight: Total bytes transferred, number of requests Resource breakdown: JavaScript size, CSS size, image size Regional performance: How different locations compare Historical trends: Are you improving or regressing?

Set up alerts

Get notified when performance degrades:

Threshold alerts: "LCP on homepage exceeded 3s" Regression alerts: "Product page LCP increased by 30% compared to last week" Regional alerts: "Performance in Asia degraded by 40%"

How Blyxo helps: Monitors performance continuously, tracks trends over time, and sends alerts when thresholds are breached or regressions are detected.

Step 5: Integrate performance testing into CI/CD

This is where performance optimization becomes sustainable. Instead of manual testing, automate it in your development workflow.

CI/CD integration workflow

1. Developer pushes code 2. CI/CD pipeline runs performance tests (via Blyxo API or integration) 3. Tests compare metrics against thresholds 4. Build fails if any threshold is exceeded 5. Developer gets feedback: "Hero image increased LCP by 1.4s—compress or lazy-load"

Example GitHub Actions workflow:

name: Performance Tests
on: [pull_request]

jobs:
  performance:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Deploy to staging
        run: ./deploy-staging.sh
      - name: Run Blyxo performance tests
        run: |
          blyxo test --url=https://staging.example.com \
            --threshold-lcp=2500 \
            --threshold-inp=200 \
            --threshold-cls=0.1
      - name: Fail if thresholds exceeded
        if: failure()
        run: echo "Performance thresholds exceeded" && exit 1

Performance budgets in CI/CD

In addition to thresholds, enforce resource budgets:

JavaScript budget: < 300KB (gzipped) CSS budget: < 50KB (gzipped) Image budget: < 2MB total per page Total page weight: < 3MB

Example performance-budget.json:

{
  "budget": {
    "javascript": 300,
    "css": 50,
    "images": 2000,
    "total": 3000
  }
}

How Blyxo helps: Integrates with CI/CD via API, runs tests on every deploy, fails builds when thresholds are exceeded, and provides detailed feedback.

Step 6: Build a performance culture

Technology alone won't keep your site fast. You need a team culture that values performance.

Make performance visible

Dashboard: Show Core Web Vitals on a team dashboard Metrics in standups: Discuss performance trends in weekly meetings Performance champions: Assign team members to own performance Celebrate wins: When LCP improves by 1s, share it with the team

Educate the team

Designers: Understand how image size impacts LCP Product managers: Know the business impact of performance Developers: Learn performance best practices QA: Include performance testing in test plans

Make performance part of the definition of done

Acceptance criteria should include:

  • "Page LCP < 2.5s on 3G"
  • "No layout shifts (CLS < 0.1)"
  • "Interactive within 200ms (INP < 200ms)"

If a feature doesn't meet performance criteria, it's not done.

Performance reviews

Weekly: Review performance trends, identify regressions Monthly: Deep-dive into one area (e.g., third-party scripts, image optimization) Quarterly: Reassess thresholds based on user analytics and business goals

How Blyxo helps: Provides team dashboards, shares reports across teams, tracks who introduced regressions, and integrates performance data into development workflows.

Real-world workflow example

Here's how a typical team uses Blyxo for performance optimization:

Week 1: Baseline

  • Run Blyxo scans on 10 key pages
  • Identify top issues: large images, render-blocking scripts
  • Set initial thresholds: LCP < 3s, INP < 250ms, CLS < 0.15

Week 2-3: Optimize

  • Compress images (78% size reduction)
  • Code-split JavaScript (reduced initial bundle by 40%)
  • Defer non-critical CSS
  • Add image dimensions
  • Result: LCP improved from 4.2s to 2.1s, CLS from 0.18 to 0.06

Week 4: Integrate into CI/CD

  • Set up Blyxo integration in GitHub Actions
  • Define strict thresholds: LCP < 2.5s, INP < 200ms, CLS < 0.1
  • Configure alerts for regressions

Week 5-onwards: Monitor and maintain

  • Performance tests run on every PR
  • Regressions caught before merge
  • Monthly reviews to tighten thresholds
  • Result: Performance stays consistent, no regressions in 3 months

The reality: Performance is never "done"

Even with perfect optimization today, performance will degrade:

  • New features add code
  • Third-party scripts change
  • CDN configurations drift
  • Device capabilities evolve

The goal isn't perfection. It's continuous improvement with systems that prevent major regressions.

What success looks like

Good performance practice:

  • ✅ Performance tested on every deploy
  • ✅ Clear thresholds enforced in CI/CD
  • ✅ Team understands performance impact
  • ✅ Regressions caught before production
  • ✅ Performance trends tracked over time

Bad performance practice:

  • ❌ Performance tested once, then forgotten
  • ❌ No thresholds or accountability
  • ❌ "It works on my machine" mentality
  • ❌ Regressions discovered by users
  • ❌ No historical tracking

Get started today

Step 1: Pick 3-5 key pages to test Step 2: Run baseline tests (use Blyxo or Lighthouse) Step 3: Set realistic thresholds based on baseline Step 4: Fix the top 3 issues (usually images, JavaScript, fonts) Step 5: Integrate performance testing into CI/CD Step 6: Monitor and iterate

You don't need to fix everything on day one. Start small, build momentum, and make performance a continuous practice—not a one-time project.


Ready to automate performance testing in your workflow? Blyxo integrates with your CI/CD pipeline, tests from real user conditions, and catches regressions before they reach production.

Continue reading: Part 1: Testing From Where Your Users Actually Are | Part 2: Core Web Vitals Explained

Ready to improve your website's accessibility?

Blyxo helps teams find and fix accessibility issues with AI-powered testing and developer-friendly recommendations.