# Sustainability Scan Report: SCAN: barcelona.cat

- Issue number: #36
- Generated at: 2026-04-13T23:02:52.029Z
- URLs requested: 100
- URLs scanned: 100
- Distinct sites scanned: 1
- Scan errors: 0
- Average performance score: 59/100
- Total transfer: 189.94 MB
- Estimated CO2: 76.2953 g
- Average transfer per page: 1.90 MB
- Average CO2 per page: 0.7630 g
- Average redundancy score: 22/100
- Pages with high redundancy urgency: 5
- Average modularization score: 27/100
- Pages with high modularization urgency: 36
- Average dead-code score: 8/100
- Pages with high dead-code urgency: 8
- Average non-critical resources score: 19/100
- Pages with high non-critical resource urgency: 87
- Average form validation score: 62/100
- Pages with high form validation urgency: 92
- Average metadata score: 8/100
- Pages with high metadata urgency: 0
- Average layout adaptation score: 32/100
- Pages with high layout urgency: 0
- Average lightweight security score: 59/100
- Pages with high security urgency: 0
- Average dependency maintenance score: 10/100
- Pages with high dependency maintenance urgency: 0
- Average expected-files score: 25/100
- Pages with high expected-files urgency: 0
- Average compression score: 60/100
- Pages with high compression urgency: 47
- Average optimization score: 100/100
- Pages with high optimization urgency: 100
- Average offline support score: 100/100
- Pages with high offline support urgency: 100
- Average media hints score: 36/100
- Pages with high media hints urgency: 0
- Average language version score: 0/100
- Pages with high language version urgency: 0

## WSG Form Validation and Tooling

- WSG reference: Validate form errors and account for tooling requirements (https://www.w3.org/TR/web-sustainability-guidelines/#validate-form-errors-and-account-for-tooling-requirements)
- Unique form element signatures assessed: 14
- Total form element occurrences observed: 281
- Reused assessments (not re-scanned repeats): 135

### Recurring Form Elements (Assessed Once, Reused Across Pages)

- text (query): appears on 36 page(s), risk 60/100, urgency HIGH
- text (query): appears on 35 page(s), risk 60/100, urgency HIGH
- text (query): appears on 31 page(s), risk 60/100, urgency HIGH
- select: appears on 22 page(s), risk 90/100, urgency HIGH
- checkbox: appears on 5 page(s), risk 50/100, urgency MEDIUM
- select (actualitat-nr): appears on 4 page(s), risk 50/100, urgency MEDIUM
- date (datefrom): appears on 4 page(s), risk 20/100, urgency LOW
- date (dateto): appears on 4 page(s), risk 20/100, urgency LOW

## WSG Metadata for Machine Readability

- WSG reference: Structure metadata for machine readability (https://www.w3.org/TR/web-sustainability-guidelines/#structure-metadata-for-machine-readability)
- Assessed pages: 100
- Average metadata score: 8/100
- Pages with high urgency: 0
- Missing metadata across pages:
  - Missing html lang: 0
  - Missing meta description: 30
  - Missing canonical URL: 0
  - Missing Open Graph core tags: 30
  - Missing twitter:card: 1
  - Invalid or missing JSON-LD: 0

## WSG Multi-Device Layout Support

- WSG reference: Ensure layouts work for different devices and requirements (https://www.w3.org/TR/web-sustainability-guidelines/#ensure-layouts-work-for-different-devices-and-requirements)
- Assessed pages: 100
- Average layout adaptation score: 32/100
- High urgency pages: 0
- Pages with mobile overflow: 0
- Pages with tablet overflow: 0
- Total small tap targets on mobile: 4868
- Total small tap targets on tablet: 4557
- Total fixed-width offenders: 73

## WSG Lightweight Security Review

- WSG reference: Ensure that your code is secure (https://www.w3.org/TR/web-sustainability-guidelines/#ensure-that-your-code-is-secure)
- Assessed pages: 100
- Average lightweight security score: 59/100
- High urgency pages: 0
- Pages missing Content-Security-Policy: 100
- HTTPS pages missing Strict-Transport-Security: 100
- Pages with vulnerable JS library findings: 0
- External scripts missing SRI (total): 746

## WSG Dependency Maintenance Review

- WSG reference: Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- Assessed pages: 100
- Average dependency maintenance score: 10/100
- High urgency pages: 0
- Pages with vulnerable dependencies: 0
- Total vulnerable dependency findings: 0

## WSG Expected and Beneficial Files

- WSG reference: Include expected and beneficial files (https://www.w3.org/TR/web-sustainability-guidelines/#include-expected-and-beneficial-files)
- Assessed pages: 100
- Average expected-files score: 25/100
- High urgency pages: 0
- Missing files across pages:
  - robots.txt missing: 0
  - sitemap.xml missing: 0
  - .well-known/security.txt missing: 100
  - manifest.webmanifest missing: 100
  - favicon.ico missing: 0

## WSG Reduce Data Transfer With Compression

- WSG reference: Reduce data transfer with compression (https://www.w3.org/TR/web-sustainability-guidelines/#reduce-data-transfer-with-compression)
- Assessed pages: 100
- Average compression score: 60/100
- High urgency pages: 47
- Pages missing effective text compression: 15
- Aggregate potential compression savings: 133.45 MB
- Recurring compression opportunities:
  - Use modern image compression formats: appears on 100 page(s), est. 78.72 MB total savings, urgency HIGH
  - Improve image encoding quality/size: appears on 100 page(s), est. 53.92 MB total savings, urgency HIGH
  - Enable Brotli/gzip for text assets: appears on 15 page(s), est. 448.34 KB total savings, urgency MEDIUM
  - Minify JavaScript before transfer: appears on 8 page(s), est. 364.60 KB total savings, urgency HIGH
  - Minify CSS before transfer: appears on 4 page(s), est. 14.33 KB total savings, urgency LOW

## WSG Efficient Solution Optimization Opportunities

- WSG reference: Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)
- Assessed pages: 100
- Average optimization score: 100/100
- High urgency pages: 100
- Aggregate potential byte savings: 175.55 MB
- Aggregate render-blocking reduction potential: 150288 ms
- Recurring optimization opportunities:
  - Serve images in next-gen formats: appears on 100 page(s), est. 78.72 MB total savings
  - Compress oversized image assets: appears on 100 page(s), est. 53.92 MB total savings
  - Lazy-load offscreen images: appears on 100 page(s), est. 14.08 MB total savings
  - Remove unused JavaScript: appears on 100 page(s), est. 12.88 MB total savings
  - Remove unused CSS: appears on 100 page(s), est. 9.08 MB total savings
  - Eliminate render-blocking resources: appears on 100 page(s), est. 150288 ms unblock
  - Right-size images for viewport: appears on 32 page(s), est. 6.07 MB total savings
  - Enable text compression: appears on 15 page(s), est. 448.34 KB total savings
  - Minify JavaScript: appears on 8 page(s), est. 364.60 KB total savings
  - Minify CSS: appears on 4 page(s), est. 14.33 KB total savings

## WSG Offline Access and Caching Support

- WSG reference: Optimize caching and support offline access (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-caching-and-support-offline-access)
- Assessed pages: 100
- Average offline support score: 100/100
- High urgency pages: 100
- Pages without service worker support: 100
- Pages without offline support: 100
- Pages with weak cache TTL signals: 100
- Recurring offline/caching opportunities:
  - Add service worker support: appears on 100 page(s), urgency HIGH
  - Ensure critical routes work offline: appears on 100 page(s), urgency HIGH
  - Improve web app manifest support: appears on 100 page(s), urgency MEDIUM
  - Strengthen static asset cache TTL: appears on 100 page(s), urgency MEDIUM
  - Support offline start URL behavior: appears on 100 page(s), urgency MEDIUM

## WSG Latest Stable Language Version

- WSG reference: Use the latest stable language version (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-latest-stable-language-version)
- Assessed pages: 100
- Average language-version score: 0/100
- High urgency pages: 0
- Pages exposing runtime/language version signals: 0
- Pages with outdated runtime/language signals: 0

## WSG Media Sustainability Hints

- WSG reference: Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- Assessed pages: 100
- Average media hints score: 36/100
- High urgency pages: 0
- Pages with autoplay media: 0
- Pages with unmuted autoplay: 0
- Pages without dark mode support: 100
- Pages with lazy loading gap (< 50% of images lazy): 72

## WSG Success Criteria & Best Practices

- Assessed pages: 100
- Average WSG compliance score: 85/100

### [MEDIUM] [SCRIPT] Incomplete media lazy loading
Only 29/56 images use loading="lazy". Global lazy loading reduces initial data transfer and energy consumption.
- Recurs on 100 page(s).

**Best Practice Example:**
```javascript
<picture> 
  <source type="image/avif" srcset="image.avif">
  <source type="image/webp" srcset="image.webp">
  <img width="100px" height="100px" src="image.jpg" alt="" loading="lazy"/>
</picture>
```
- [WSG Guideline 11](https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)

### [INVESTIGATE] [HUMAN] Review User Journey Efficiency
Have a human walk through the main user journeys and verify they require the fewest steps possible. Unnecessary steps waste user time and device energy. Look for redundant confirmations, forced account creation, and non-essential interstitials.
- Recurs on 100 page(s).
- [WSG 2.4 Reference](https://www.w3.org/TR/web-sustainability-guidelines/#minimize-non-essential-content-interactivity-or-journeys)

### [INVESTIGATE] [HUMAN] Check for Engagement Traps
Manually review the page for patterns that artificially prolong engagement: infinite scroll, autoplay carousels, sticky overlays, and notification permission prompts. These waste user attention and device energy.
- Recurs on 100 page(s).
- [WSG 2.6 Reference](https://www.w3.org/TR/web-sustainability-guidelines/#design-to-assist-and-not-to-distract)

### [INVESTIGATE] [HUMAN] Audit for Deceptive Design Patterns
Have a human identify dark patterns: misleading consent dialogs, hidden unsubscribe links, forced continuity, and bait-and-switch flows. Deceptive patterns waste user time and undermine trust.
- Recurs on 100 page(s).
- [WSG 2.7 Reference](https://www.w3.org/TR/web-sustainability-guidelines/#avoid-being-manipulative-or-deceptive)

### [INVESTIGATE] [HUMAN] Verify Accessible Alternatives for All Media
Manually check that every video has captions, every audio file has a transcript, every image has meaningful alt text, and every PDF has an accessible HTML alternative. Alternatives let assistive technology users avoid re-downloading heavy formats.
- Recurs on 100 page(s).
- [WSG 2.14 Reference](https://www.w3.org/TR/web-sustainability-guidelines/#offer-suitable-alternatives-for-every-format-used)

### [INVESTIGATE] [HUMAN] Confirm User Research Was Conducted
Verify that genuine user research or usability testing has informed the design. Research-driven design reduces wasted iterations, removes unnecessary features, and ensures the product meets real needs efficiently.
- Recurs on 100 page(s).
- [WSG 2.18 Reference](https://www.w3.org/TR/web-sustainability-guidelines/#involve-users-early-in-the-project)

### [INVESTIGATE] [AI] Review Content Conciseness
Use a Large Language Model (e.g. locally or via API) to evaluate page text for conciseness and clarity. Removing superfluous text reduces payload, reading time, and inference energy for search engines indexing this content.
- Recurs on 100 page(s).
- [WSG 2.10 Reference](https://www.w3.org/TR/web-sustainability-guidelines/#provide-clear-inclusive-content-with-purpose)

### [INVESTIGATE] [HUMAN] Verify Error Pages and Redirects Are Configured
Have a human check that custom 404 and 500 error pages exist and that there are no redirect chains longer than one hop. Broken links force wasted round-trips. Redirect chains multiply transfer costs.
- Recurs on 100 page(s).
- [WSG 4.4 Reference](https://www.w3.org/TR/web-sustainability-guidelines/#setup-necessary-error-pages-and-redirection-links)

### [INVESTIGATE] [HUMAN] Review CDN Usage and Geographic Distribution
Confirm that static assets are served from a CDN and that the CDN edge nodes are geographically close to the primary audience. CDN misuse—or absence—increases last-mile transfer distance and the associated energy cost of data delivery.
- Recurs on 100 page(s).
- [WSG 4.10 Reference](https://www.w3.org/TR/web-sustainability-guidelines/#use-content-delivery-networks-cdns-appropriately)

### [INVESTIGATE] [HUMAN] Confirm a Sustainability Advocate Is Assigned
Verify that someone on the team has explicit responsibility for web sustainability. Without a designated advocate, sustainability improvements tend to be deprioritized and never reach the backlog.
- Recurs on 100 page(s).
- [WSG 5.2 Reference](https://www.w3.org/TR/web-sustainability-guidelines/#assign-a-sustainability-advocate)

### [INVESTIGATE] [HUMAN] Check for a Public Sustainability Statement
Look for a publicly accessible sustainability statement, disclosure page, or environmental policy. Mandatory disclosure requirements are growing globally and transparency builds user trust. The statement should include measurable targets and dates.
- Recurs on 100 page(s).
- [WSG 5.8 Reference](https://www.w3.org/TR/web-sustainability-guidelines/#support-mandatory-disclosures-and-reporting)

## WSG Third-Party JavaScript Assessment

- WSG reference: Give third parties the same priority as first parties during assessment (https://www.w3.org/TR/web-sustainability-guidelines/#give-third-parties-the-same-priority-as-first-parties-during-assessment)
- Average third-party JS risk score: 66/100
- Pages with high urgency: 99
- Distinct third-party script providers: 12

### Top Third-Party Script Providers

- cdn.lawwwing.com: GREEN (Hetzner Online GmbH); on 100 page(s), 100 request(s), 3.03 MB
- ajuntament.barcelona.cat: NOT GREEN; on 100 page(s), 233 request(s), 1.24 MB
- plausible.io: NOT GREEN; on 100 page(s), 116 request(s), 279.39 KB
- cdn.matomo.cloud: NOT GREEN; on 99 page(s), 103 request(s), 7.48 MB
- stackpath.bootstrapcdn.com: GREEN (Cloudflare); on 99 page(s), 99 request(s), 1.47 MB
- code.jquery.com: NOT GREEN; on 99 page(s), 99 request(s), 530.19 KB
- dadesbcn.matomo.cloud: NOT GREEN; on 99 page(s), 107 request(s), 28.11 KB
- cdnjs.cloudflare.com: GREEN (Cloudflare); on 31 page(s), 31 request(s), 494.83 KB

## Cross-Page Hosting Risk (Non-Green Providers)

- Focus: recurring external CSS/JS providers with non-green or unknown hosting status.

### Recurring Non-Green Providers

- ajuntament.barcelona.cat: on 100 page(s), 454 request(s), 1.65 MB total; types script, stylesheet
- cdn.matomo.cloud: on 99 page(s), 103 request(s), 7.48 MB total; types script
- code.jquery.com: on 99 page(s), 99 request(s), 530.19 KB total; types script
- mobile.com-shi-va.barcelona.cat: on 4 page(s), 20 request(s), 3.62 MB total; types script, stylesheet
- com-shi-va.barcelona.cat: on 4 page(s), 20 request(s), 2.34 MB total; types script, stylesheet
- plausible.io: on 100 page(s), 116 request(s), 279.39 KB total; types script
- releases.jquery.com: on 4 page(s), 4 request(s), 494.78 KB total; types script
- geoportal.barcelona.cat: on 5 page(s), 11 request(s), 80.16 KB total; types script

## Green Hosting Checks

- Source: https://www.thegreenwebfoundation.org/tools/green-web-dataset/
- Submitted URL hosts checked: 100
- Submitted URL hosts on green energy: 0
- Submitted URL hosts not confirmed green: 100
- Submitted URL hosts unknown: 0
- External CSS/JS origins checked: 18
- External CSS/JS origins on green energy: 8
- External CSS/JS origins not confirmed green: 10
- External CSS/JS origins unknown: 0

## WSG SC 3.1 Budget Guidance

- WSG reference: Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- Sustainable Web Design benchmark: https://sustainablewebdesign.org/digital-carbon-ratings/
- Current transfer rating: E
- Current CO2 rating: F
- Recommended budget target: rating B
- Budget max transfer/page: 975.85 KB
- Budget max CO2/page: 0.1450 g
- Transfer reduction needed: 969.09 KB (49.8%)
- CO2 reduction needed: 0.6180 g (81.0%)
- Stretch budget (rating A): 531.15 KB and 0.0790 g per page

## WSG SC 3.2 Redundancy Analysis

- WSG reference: Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- Redundancy score: 0 (low redundancy) to 100 (high redundancy)
- Urgency levels: low, medium, high

## WSG Remove Unnecessary Code Analysis

- WSG reference: Remove unnecessary code (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-code)
- Dead-code score: 0 (low unnecessary code) to 100 (high unnecessary code)
- Includes unused CSS/JS, duplicated JS, and HTML complexity heuristics

## WSG Defer Non-Critical Resources Analysis

- WSG reference: Defer the loading of non-critical resources (https://www.w3.org/TR/web-sustainability-guidelines/#defer-the-loading-of-non-critical-resources)
- Non-critical score: 0 (few defer opportunities) to 100 (many deferrable resources)
- Uses offscreen image savings, unused CSS/JS, render-blocking delay, and heavy likely-non-critical assets

## WSG Modularization Analysis

- WSG reference: Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- Modularization score: 0 (few obvious on-demand opportunities) to 100 (many heavy initial-load components)
- This analysis looks for heavy scripts, images, styles, fonts, and media that should be split or loaded on demand.

## Cross-Page Patterns

- This same heavy image pattern appears on 63 pages. Fix it once in the shared template, CMS block, or design system component to reduce load across the whole site.
- These 3 script bundles are recurring modularization targets. Move the fix to the shared bundle or component boundary so every affected page gets lighter at once.
- These 3 modularization targets recur across multiple pages. Centralize the fix at the component or bundle level instead of treating each page separately.
- Heavy assets from www.barcelona.cat recur across 100 pages. Review whether that dependency should be deferred, optimized, or loaded conditionally.

### Recurring Heavy Assets

- font assets from www.barcelona.cat/assetsdi appears on 96 pages (13.32 MB total)
- script assets from cdn.matomo.cloud/dadesbcn.matomo.cloud appears on 95 pages (6.92 MB total)
- stylesheet assets from www.barcelona.cat/sites appears on 95 pages (4.57 MB total)
- image assets from www.barcelona.cat/sites appears on 61 pages (56.58 MB total)
- script assets from www.barcelona.cat/estatics appears on 8 pages (3.13 MB total)

### Recurring Modularization Targets

- Defer non-critical UI modules until after first render affects 100 pages
- Lazy-load offscreen images and media galleries affects 87 pages (est. 14.00 MB aggregate savings)
- Modularize heavy image asset from www.barcelona.cat affects 63 pages (est. 19.46 MB aggregate savings)
- Modularize heavy font asset from www.barcelona.cat affects 59 pages (est. 5.10 MB aggregate savings)
- Split JavaScript by route or interaction affects 52 pages (est. 11.40 MB aggregate savings)

### Recurring Heavy Origins

- www.barcelona.cat is a recurring heavy source on 100 pages (81.00 MB total)
- cdn.matomo.cloud is a recurring heavy source on 99 pages (7.22 MB total)
- maps.googleapis.com is a recurring heavy source on 6 pages (1.19 MB total)
- api.com-shi-va.barcelona.cat is a recurring heavy source on 4 pages (3.85 MB total)
- mobile.com-shi-va.barcelona.cat is a recurring heavy source on 4 pages (3.57 MB total)

## Site-Wide Guidance

- This scan appears to target a single site. Shared recommendations below should typically be fixed once at platform/template level.

### https://www.barcelona.cat
- Sampled pages: 100
- Shared recommendations:
  - [LOW] Publish .well-known/security.txt
    - .well-known/security.txt is missing for all sampled pages on https://www.barcelona.cat.
  - [HIGH] Apply Content-Security-Policy site-wide
    - CSP is absent across all sampled pages on https://www.barcelona.cat.
  - [MEDIUM] Enable Strict-Transport-Security site-wide
    - HSTS is missing across all sampled HTTPS pages on https://www.barcelona.cat.
  - [HIGH] Introduce service worker support
    - No sampled pages on https://www.barcelona.cat indicate service worker support for offline resilience.
  - [HIGH] Support offline fallback behavior
    - Offline page behavior was not detected across sampled pages on https://www.barcelona.cat.
  - [MEDIUM] Fix recurring optimization bloat at shared layer
    - Serve images in next-gen formats recurs across 100 pages on https://www.barcelona.cat (est. 78.72 MB aggregate savings).
  - [HIGH] Prioritize recurring compression fixes
    - Use modern image compression formats recurs across 100 pages on https://www.barcelona.cat (est. 78.72 MB aggregate savings).
  - [HIGH] Prioritize recurring offline/caching improvements
    - Add service worker support is needed across 100 pages on https://www.barcelona.cat.
- Recurring offline/caching opportunities:
  - Add service worker support: 100 page(s), urgency HIGH
  - Ensure critical routes work offline: 100 page(s), urgency HIGH
  - Improve web app manifest support: 100 page(s), urgency MEDIUM
  - Strengthen static asset cache TTL: 100 page(s), urgency MEDIUM
  - Support offline start URL behavior: 100 page(s), urgency MEDIUM
- Recurring compression opportunities:
  - Use modern image compression formats: 100 page(s), est. 78.72 MB total savings, urgency HIGH
  - Improve image encoding quality/size: 100 page(s), est. 53.92 MB total savings, urgency HIGH
  - Enable Brotli/gzip for text assets: 15 page(s), est. 448.34 KB total savings, urgency MEDIUM
  - Minify JavaScript before transfer: 8 page(s), est. 364.60 KB total savings, urgency HIGH
  - Minify CSS before transfer: 4 page(s), est. 14.33 KB total savings, urgency LOW
- Recurring optimization opportunities:
  - Serve images in next-gen formats: 100 page(s), est. 78.72 MB total savings
  - Compress oversized image assets: 100 page(s), est. 53.92 MB total savings
  - Lazy-load offscreen images: 100 page(s), est. 14.08 MB total savings
  - Remove unused JavaScript: 100 page(s), est. 12.88 MB total savings
  - Remove unused CSS: 100 page(s), est. 9.08 MB total savings
  - Eliminate render-blocking resources: 100 page(s), est. 150288 ms unblock

## Page-Specific Guidance

- Use this section for page-level exceptions after site-wide/platform fixes are planned.

### https://www.barcelona.cat
- https://barcelona.cat/ca/que-pots-fer-a-bcn/banys-i-platges/historia-de-les-platges
  - Combined urgency: HIGH
  - Compression score: 100/100, optimization score: 100/100, offline score: 100/100, dependency score: 10/100, language score: 0/100, security score: 59/100, expected-files score: 25/100
  - [HIGH] Use modern image compression formats
  - [HIGH] Improve image encoding quality/size
  - [HIGH] Serve images in next-gen formats
- https://barcelona.cat/es/que-hacer-en-bcn/banos-y-playas/historia-de-las-playas
  - Combined urgency: HIGH
  - Compression score: 100/100, optimization score: 100/100, offline score: 100/100, dependency score: 10/100, language score: 0/100, security score: 59/100, expected-files score: 25/100
  - [HIGH] Use modern image compression formats
  - [HIGH] Improve image encoding quality/size
  - [HIGH] Serve images in next-gen formats
- https://barcelona.cat/es/vivir-en-bcn/vive-el-barrio
  - Combined urgency: HIGH
  - Compression score: 77/100, optimization score: 100/100, offline score: 100/100, dependency score: 10/100, language score: 0/100, security score: 59/100, expected-files score: 25/100
  - [HIGH] Use modern image compression formats
  - [HIGH] Improve image encoding quality/size
  - [HIGH] Serve images in next-gen formats
- https://barcelona.cat/en/what-to-do-in-bcn/parks-and-gardens/history
  - Combined urgency: HIGH
  - Compression score: 100/100, optimization score: 100/100, offline score: 100/100, dependency score: 10/100, language score: 0/100, security score: 59/100, expected-files score: 25/100
  - [HIGH] Use modern image compression formats
  - [HIGH] Improve image encoding quality/size
  - [HIGH] Serve images in next-gen formats
- https://barcelona.cat/en/discoverbcn
  - Combined urgency: HIGH
  - Compression score: 97/100, optimization score: 100/100, offline score: 100/100, dependency score: 10/100, language score: 0/100, security score: 59/100, expected-files score: 25/100
  - [HIGH] Use modern image compression formats
  - [HIGH] Improve image encoding quality/size
  - [HIGH] Serve images in next-gen formats
- https://barcelona.cat/ca/coneixbcn
  - Combined urgency: HIGH
  - Compression score: 96/100, optimization score: 100/100, offline score: 100/100, dependency score: 10/100, language score: 0/100, security score: 59/100, expected-files score: 25/100
  - [HIGH] Use modern image compression formats
  - [HIGH] Improve image encoding quality/size
  - [HIGH] Serve images in next-gen formats

## Priority Improvements

### https://barcelona.cat/
- Performance: 15/100
- Transfer: 8.88 MB
- CO2 estimate: 3.5666 g
- Page host green energy status: NOT GREEN
- Redundancy score: 48/100
- Redundancy urgency: HIGH
- Modularization score: 45/100
- Modularization urgency: HIGH
- Dead-code score: 16/100
- Dead-code urgency: HIGH
- Non-critical resources score: 13/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 42/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 57/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 90/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 2.15 MB (24.2% of transfer)
- Redundancy recommendations:
  - [HIGH] Reduce unused javascript (est. 1.84 MB savings)
  - [HIGH] Reduce unused css (est. 319.99 KB savings)
  - [MEDIUM] Enable and verify text compression (est. 4.86 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 25 (6.75 MB total)
- On-demand modularization candidates:
  - [HIGH] Lazy-load offscreen images and media galleries (est. 265.21 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Split JavaScript by route or interaction (est. 1.84 MB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [MEDIUM] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 1.02 MB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT mobile.com-shi-va.barcelona.cat: NOT GREEN; 4 request(s), 710.12 KB
  - SCRIPT com-shi-va.barcelona.cat: NOT GREEN; 4 request(s), 540.50 KB
  - SCRIPT maps.googleapis.com: GREEN (Google Cloud); 5 request(s), 313.96 KB
  - STYLESHEET mobile.com-shi-va.barcelona.cat: NOT GREEN; 1 request(s), 215.75 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 11 request(s), 149.97 KB
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 2 request(s), 143.61 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 14 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 9 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 319.99 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [HIGH] Remove unused JavaScript and feature bundles (est. 1.84 MB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [HIGH] Lazy-load offscreen images (est. 265.21 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [HIGH] Defer non-critical JavaScript (est. 1.84 MB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 319.99 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [MEDIUM] Eliminate render-blocking resources (est. 531 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 1.02 MB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 64 small targets on mobile and 59 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 6 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 10 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 10 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 3.07 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.90 MB.
  - [HIGH] Minify JavaScript before transfer
    - Minify JS bundles so transport compression produces better results with fewer bytes. Estimated savings: 85.21 KB.
  - [LOW] Enable Brotli/gzip for text assets
    - Compress HTML, CSS, JS, JSON, SVG, and XML responses with Brotli or gzip. Estimated savings: 4.86 KB.
  - [LOW] Minify CSS before transfer
    - Minification amplifies compression efficiency and reduces payload size. Estimated savings: 3.58 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 3.07 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.90 MB.
  - [HIGH] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 1.84 MB.
  - [HIGH] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 319.99 KB.
  - [HIGH] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 265.21 KB.
  - [HIGH] Minify JavaScript
    - Use minified production JS output to reduce payload size. Estimated byte savings: 85.21 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 2.96 MB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 15.1 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Speed Index
  - Current value: 16.3 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 1,885 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 320 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 3,147 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,948 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)

### https://barcelona.cat/en/living-in-bcn/accessibility
- Performance: 50/100
- Transfer: 1.94 MB
- CO2 estimate: 0.7778 g
- Page host green energy status: NOT GREEN
- Redundancy score: 24/100
- Redundancy urgency: MEDIUM
- Modularization score: 27/100
- Modularization urgency: HIGH
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 11/100
- Non-critical resources urgency: MEDIUM
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 138.49 KB (7.0% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.67 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 56.82 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 9 (879.85 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Split JavaScript by route or interaction (est. 56.82 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [MEDIUM] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 141.44 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.67 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 56.82 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 3.37 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 56.82 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.67 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [MEDIUM] Eliminate render-blocking resources (est. 897 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 141.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 64 small targets on mobile and 60 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.08 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 916.72 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.08 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 916.72 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.67 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 56.82 KB.
  - [MEDIUM] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 897 ms.
  - [LOW] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 3.37 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.11 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 7.8 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Speed Index
  - Current value: 10.9 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 57 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,105 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 917 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)

### https://barcelona.cat/en/what-to-do-in-bcn/bathing-and-beaches/accessibility
- Performance: 48/100
- Transfer: 1.15 MB
- CO2 estimate: 0.4606 g
- Page host green energy status: NOT GREEN
- Redundancy score: 15/100
- Redundancy urgency: LOW
- Modularization score: 30/100
- Modularization urgency: MEDIUM
- Dead-code score: 6/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 19/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 66/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 45/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 110.89 KB (9.4% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.17 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (667.83 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 403.17 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.64 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.21 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.99 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.17 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.17 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1469 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 403.17 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 39 small targets on mobile and 36 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 419.54 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 353.70 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 419.54 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 353.70 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1469 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.17 KB.
  - [MEDIUM] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 45.50 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.10 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 12 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 7.3 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 79 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 420 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 354 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,470 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/en/what-to-do-in-bcn/montjuic-park/find-out-about-montjuic-park-council
- Performance: 52/100
- Transfer: 1.13 MB
- CO2 estimate: 0.4537 g
- Page host green energy status: NOT GREEN
- Redundancy score: 15/100
- Redundancy urgency: LOW
- Modularization score: 31/100
- Modularization urgency: MEDIUM
- Dead-code score: 6/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 19/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 69/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 45/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 110.58 KB (9.6% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.43 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.15 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (681.36 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 81.70 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 416.52 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.45 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.80 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.13 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.21 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 7.00 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.54 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.43 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.15 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 81.70 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.15 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.43 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1408 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 416.52 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 37 small targets on mobile and 35 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 434.22 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 368.13 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 434.22 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 368.13 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1408 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 81.70 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.43 KB.
  - [MEDIUM] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 47.01 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.22 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 12 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 10.4 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 31 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 79 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 434 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 368 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 82 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/ca
- Performance: 20/100
- Transfer: 8.87 MB
- CO2 estimate: 3.5644 g
- Page host green energy status: NOT GREEN
- Redundancy score: 48/100
- Redundancy urgency: HIGH
- Modularization score: 45/100
- Modularization urgency: HIGH
- Dead-code score: 16/100
- Dead-code urgency: HIGH
- Non-critical resources score: 22/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 42/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 57/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 90/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 2.16 MB (24.3% of transfer)
- Redundancy recommendations:
  - [HIGH] Reduce unused javascript (est. 1.84 MB savings)
  - [HIGH] Reduce unused css (est. 319.96 KB savings)
  - [MEDIUM] Enable and verify text compression (est. 4.86 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 25 (6.75 MB total)
- On-demand modularization candidates:
  - [HIGH] Lazy-load offscreen images and media galleries (est. 265.19 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Split JavaScript by route or interaction (est. 1.84 MB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 1.02 MB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT mobile.com-shi-va.barcelona.cat: NOT GREEN; 4 request(s), 709.92 KB
  - SCRIPT com-shi-va.barcelona.cat: NOT GREEN; 4 request(s), 540.51 KB
  - SCRIPT maps.googleapis.com: GREEN (Google Cloud); 5 request(s), 313.96 KB
  - STYLESHEET mobile.com-shi-va.barcelona.cat: NOT GREEN; 1 request(s), 215.73 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 11 request(s), 149.99 KB
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 2 request(s), 143.61 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 14 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 9 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 319.96 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [HIGH] Remove unused JavaScript and feature bundles (est. 1.84 MB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [HIGH] Lazy-load offscreen images (est. 265.19 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [HIGH] Defer non-critical JavaScript (est. 1.84 MB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 319.96 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1426 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 1.02 MB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 64 small targets on mobile and 58 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 6 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 10 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 10 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 3.07 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.90 MB.
  - [HIGH] Minify JavaScript before transfer
    - Minify JS bundles so transport compression produces better results with fewer bytes. Estimated savings: 85.20 KB.
  - [LOW] Enable Brotli/gzip for text assets
    - Compress HTML, CSS, JS, JSON, SVG, and XML responses with Brotli or gzip. Estimated savings: 4.86 KB.
  - [LOW] Minify CSS before transfer
    - Minification amplifies compression efficiency and reduces payload size. Estimated savings: 3.58 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 3.07 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.90 MB.
  - [HIGH] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 1.84 MB.
  - [HIGH] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 319.96 KB.
  - [HIGH] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 265.19 KB.
  - [HIGH] Minify JavaScript
    - Use minified production JS output to reduce payload size. Estimated byte savings: 85.20 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 2.95 MB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 18.1 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Speed Index
  - Current value: 7.5 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 1,888 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 320 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 3,147 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,948 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)

### https://barcelona.cat/en
- Performance: 31/100
- Transfer: 8.71 MB
- CO2 estimate: 3.4987 g
- Page host green energy status: NOT GREEN
- Redundancy score: 48/100
- Redundancy urgency: HIGH
- Modularization score: 46/100
- Modularization urgency: HIGH
- Dead-code score: 15/100
- Dead-code urgency: HIGH
- Non-critical resources score: 23/100
- Non-critical resources urgency: HIGH
- Form validation score: 57/100
- Form validation urgency: MEDIUM
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 42/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 58/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 90/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 2.07 MB (23.8% of transfer)
- Redundancy recommendations:
  - [HIGH] Reduce unused javascript (est. 1.76 MB savings)
  - [HIGH] Reduce unused css (est. 319.98 KB savings)
  - [MEDIUM] Enable and verify text compression (est. 4.83 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 25 (6.75 MB total)
- On-demand modularization candidates:
  - [HIGH] Lazy-load offscreen images and media galleries (est. 263.67 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Split JavaScript by route or interaction (est. 1.76 MB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 1.02 MB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT mobile.com-shi-va.barcelona.cat: NOT GREEN; 4 request(s), 709.90 KB
  - SCRIPT com-shi-va.barcelona.cat: NOT GREEN; 4 request(s), 533.42 KB
  - STYLESHEET mobile.com-shi-va.barcelona.cat: NOT GREEN; 1 request(s), 215.74 KB
  - SCRIPT maps.googleapis.com: GREEN (Google Cloud); 5 request(s), 180.92 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 10 request(s), 149.97 KB
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 2 request(s), 143.28 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 14 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 9 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 319.98 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [HIGH] Remove unused JavaScript and feature bundles (est. 1.76 MB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [HIGH] Lazy-load offscreen images (est. 263.67 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [HIGH] Defer non-critical JavaScript (est. 1.76 MB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 319.98 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1751 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 1.02 MB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 3 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 3 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 2 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 64 small targets on mobile and 58 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 6 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 10 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 10 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 3.07 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.90 MB.
  - [HIGH] Minify JavaScript before transfer
    - Minify JS bundles so transport compression produces better results with fewer bytes. Estimated savings: 85.20 KB.
  - [LOW] Enable Brotli/gzip for text assets
    - Compress HTML, CSS, JS, JSON, SVG, and XML responses with Brotli or gzip. Estimated savings: 4.83 KB.
  - [LOW] Minify CSS before transfer
    - Minification amplifies compression efficiency and reduces payload size. Estimated savings: 3.58 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 3.07 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.90 MB.
  - [HIGH] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 1.76 MB.
  - [HIGH] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 319.98 KB.
  - [HIGH] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 263.67 KB.
  - [HIGH] Minify JavaScript
    - Use minified production JS output to reduce payload size. Estimated byte savings: 85.20 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 2.94 MB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 19.4 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Speed Index
  - Current value: 7.9 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 1,802 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 320 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 3,146 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,948 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)

### https://barcelona.cat/es
- Performance: 17/100
- Transfer: 8.85 MB
- CO2 estimate: 3.5536 g
- Page host green energy status: NOT GREEN
- Redundancy score: 48/100
- Redundancy urgency: HIGH
- Modularization score: 45/100
- Modularization urgency: HIGH
- Dead-code score: 15/100
- Dead-code urgency: HIGH
- Non-critical resources score: 23/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 42/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 57/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 90/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 2.06 MB (23.3% of transfer)
- Redundancy recommendations:
  - [HIGH] Reduce unused javascript (est. 1.75 MB savings)
  - [HIGH] Reduce unused css (est. 319.94 KB savings)
  - [MEDIUM] Enable and verify text compression (est. 4.86 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 25 (6.75 MB total)
- On-demand modularization candidates:
  - [HIGH] Lazy-load offscreen images and media galleries (est. 264.26 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Split JavaScript by route or interaction (est. 1.75 MB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 1.02 MB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT mobile.com-shi-va.barcelona.cat: NOT GREEN; 4 request(s), 709.87 KB
  - SCRIPT com-shi-va.barcelona.cat: NOT GREEN; 4 request(s), 538.33 KB
  - SCRIPT maps.googleapis.com: GREEN (Google Cloud); 5 request(s), 288.34 KB
  - STYLESHEET mobile.com-shi-va.barcelona.cat: NOT GREEN; 1 request(s), 215.72 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 10 request(s), 149.91 KB
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 2 request(s), 143.28 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 14 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 9 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 319.94 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [HIGH] Remove unused JavaScript and feature bundles (est. 1.75 MB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [HIGH] Lazy-load offscreen images (est. 264.26 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [HIGH] Defer non-critical JavaScript (est. 1.75 MB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 319.94 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1903 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 1.02 MB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 2 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 65 small targets on mobile and 58 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 6 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 10 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 10 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 3.07 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.90 MB.
  - [HIGH] Minify JavaScript before transfer
    - Minify JS bundles so transport compression produces better results with fewer bytes. Estimated savings: 85.20 KB.
  - [LOW] Enable Brotli/gzip for text assets
    - Compress HTML, CSS, JS, JSON, SVG, and XML responses with Brotli or gzip. Estimated savings: 4.86 KB.
  - [LOW] Minify CSS before transfer
    - Minification amplifies compression efficiency and reduces payload size. Estimated savings: 3.58 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 3.07 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.90 MB.
  - [HIGH] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 1.75 MB.
  - [HIGH] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 319.94 KB.
  - [HIGH] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 264.26 KB.
  - [HIGH] Minify JavaScript
    - Use minified production JS output to reduce payload size. Estimated byte savings: 85.20 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 2.95 MB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 19.5 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Speed Index
  - Current value: 8.4 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 1,791 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 320 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 3,148 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,949 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)

### https://barcelona.cat/ca/canelons
- Performance: 45/100
- Transfer: 1001.79 KB
- CO2 estimate: 0.3930 g
- Page host green energy status: NOT GREEN
- Redundancy score: 16/100
- Redundancy urgency: LOW
- Modularization score: 28/100
- Modularization urgency: MEDIUM
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 14/100
- Non-critical resources urgency: MEDIUM
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 54/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 45/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 111.42 KB (11.1% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.70 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (509.65 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 81.70 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 245.00 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.21 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.70 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 81.70 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.70 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [MEDIUM] Eliminate render-blocking resources (est. 878 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 245.00 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 33 small targets on mobile and 31 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 289.31 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 247.26 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 289.31 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 247.26 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 81.70 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.70 KB.
  - [MEDIUM] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 878 ms.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 12 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 7.6 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 32 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 80 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 289 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 247 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 82 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/ca/coneixbcn
- Performance: 66/100
- Transfer: 1.87 MB
- CO2 estimate: 0.7510 g
- Page host green energy status: NOT GREEN
- Redundancy score: 14/100
- Redundancy urgency: MEDIUM
- Modularization score: 33/100
- Modularization urgency: HIGH
- Dead-code score: 5/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 18/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 96/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 27/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.44 KB (7.0% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.69 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 52.75 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 9 (1.08 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 81.70 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 52.75 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 255.29 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.69 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 52.75 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 81.70 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 52.75 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.69 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1664 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 255.29 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 38 small targets on mobile and 33 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1013.03 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 832.52 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1013.03 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 832.52 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1664 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 81.70 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.69 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 52.75 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.07 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 23 of 37 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 10.0 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,013 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 833 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 82 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/ca/diada-nacional-de-catalunya-2022
- Performance: 64/100
- Transfer: 790.97 KB
- CO2 estimate: 0.3103 g
- Page host green energy status: NOT GREEN
- Redundancy score: 18/100
- Redundancy urgency: LOW
- Modularization score: 20/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 16/100
- Non-critical resources urgency: MEDIUM
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 19/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 45/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 111.67 KB (14.1% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.95 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.66 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 81.70 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.95 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 81.70 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.95 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [MEDIUM] Eliminate render-blocking resources (est. 874 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 33 small targets on mobile and 31 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 96.72 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
- Optimization recommendations:
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 96.72 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 81.70 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.95 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
  - [MEDIUM] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 874 ms.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 12 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 7.8 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 32 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 80 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 97 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 57 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 82 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/ca/implicat
- Performance: 64/100
- Transfer: 1.68 MB
- CO2 estimate: 0.6768 g
- Page host green energy status: NOT GREEN
- Redundancy score: 15/100
- Redundancy urgency: MEDIUM
- Modularization score: 15/100
- Modularization urgency: MEDIUM
- Dead-code score: 6/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 13/100
- Non-critical resources urgency: MEDIUM
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 91/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 143.65 KB (8.3% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.36 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 62.29 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (378.17 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 81.70 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 62.29 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [MEDIUM] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 110.74 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.64 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.52 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.36 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 62.29 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 81.70 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 62.29 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.36 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [MEDIUM] Eliminate render-blocking resources (est. 883 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 110.74 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 47 small targets on mobile and 43 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 860.41 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 711.26 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 860.41 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 711.26 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 81.70 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.36 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 62.29 KB.
  - [MEDIUM] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 883 ms.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 8.8 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 62 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 860 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 711 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 82 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/ca/pagina-imatge-promocional
- Performance: 55/100
- Transfer: 1.00 MB
- CO2 estimate: 0.4035 g
- Page host green energy status: NOT GREEN
- Redundancy score: 16/100
- Redundancy urgency: LOW
- Modularization score: 26/100
- Modularization urgency: MEDIUM
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 14/100
- Non-critical resources urgency: MEDIUM
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 53/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 45/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 111.68 KB (10.9% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.96 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (483.64 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 218.98 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.96 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.96 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [MEDIUM] Eliminate render-blocking resources (est. 876 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 218.98 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 33 small targets on mobile and 31 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 306.57 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 243.00 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 306.57 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 243.00 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.96 KB.
  - [MEDIUM] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 876 ms.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.07 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 12 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 9.5 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 32 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 80 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 307 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 243 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/ca/prova-video
- Performance: 66/100
- Transfer: 756.69 KB
- CO2 estimate: 0.2968 g
- Page host green energy status: NOT GREEN
- Redundancy score: 18/100
- Redundancy urgency: LOW
- Modularization score: 21/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 16/100
- Non-critical resources urgency: MEDIUM
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 17/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 111.60 KB (14.7% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.88 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.99 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.88 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.88 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [MEDIUM] Eliminate render-blocking resources (est. 876 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 33 small targets on mobile and 31 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 70.71 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
- Optimization recommendations:
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.88 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 70.71 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
  - [MEDIUM] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 876 ms.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.07 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 11 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 8.1 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 32 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 80 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 71 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 57 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/ca/que-pots-fer-a-bcn
- Performance: 65/100
- Transfer: 2.28 MB
- CO2 estimate: 0.9164 g
- Page host green energy status: NOT GREEN
- Redundancy score: 23/100
- Redundancy urgency: MEDIUM
- Modularization score: 21/100
- Modularization urgency: HIGH
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 18/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 34/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.69 KB (5.8% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.35 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.34 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 8 (711.43 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.34 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 128.51 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.35 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.34 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.34 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.35 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1502 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 128.51 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 46 small targets on mobile and 33 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 2 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.32 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.10 MB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.32 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.10 MB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1502 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.35 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 53.34 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 6.7 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,348 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,130 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/ca/treball-i-empresa
- Performance: 62/100
- Transfer: 3.07 MB
- CO2 estimate: 1.2336 g
- Page host green energy status: NOT GREEN
- Redundancy score: 22/100
- Redundancy urgency: MEDIUM
- Modularization score: 35/100
- Modularization urgency: HIGH
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 17/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 138.68 KB (4.4% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.37 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 57.31 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 17 (1.88 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 57.31 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 154.58 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.37 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 57.31 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 57.31 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.37 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1510 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 154.58 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 96 small targets on mobile and 93 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 2.05 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.73 MB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 2.05 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.73 MB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1510 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.37 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 57.31 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 7.6 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 57 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 2,096 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,770 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/ca/viure-a-bcn
- Performance: 64/100
- Transfer: 2.21 MB
- CO2 estimate: 0.8897 g
- Page host green energy status: NOT GREEN
- Redundancy score: 13/100
- Redundancy urgency: MEDIUM
- Modularization score: 13/100
- Modularization urgency: MEDIUM
- Dead-code score: 5/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 18/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.80 KB (5.9% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.46 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.34 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (368.82 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 113.50 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.34 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 101.39 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.46 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.34 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 113.50 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.34 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.46 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1511 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 101.39 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 37 small targets on mobile and 32 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.28 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.00 MB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.28 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.00 MB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1511 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 113.50 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.46 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 53.34 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 8.2 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,316 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,027 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,510 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/en/catalan-national-day-2022
- Performance: 64/100
- Transfer: 809.25 KB
- CO2 estimate: 0.3174 g
- Page host green energy status: NOT GREEN
- Redundancy score: 18/100
- Redundancy urgency: LOW
- Modularization score: 20/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 16/100
- Non-critical resources urgency: MEDIUM
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 22/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 45/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 111.67 KB (13.8% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.95 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.66 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.52 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.95 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.95 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [MEDIUM] Eliminate render-blocking resources (est. 900 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 33 small targets on mobile and 31 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 122.82 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
- Optimization recommendations:
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 122.82 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.95 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
  - [MEDIUM] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 900 ms.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 12 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 8.6 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 32 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 80 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 123 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 900 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/en/discoverbcn
- Performance: 66/100
- Transfer: 1.87 MB
- CO2 estimate: 0.7495 g
- Page host green energy status: NOT GREEN
- Redundancy score: 14/100
- Redundancy urgency: MEDIUM
- Modularization score: 34/100
- Modularization urgency: HIGH
- Dead-code score: 5/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 18/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 97/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 27/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 135.03 KB (7.1% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.69 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.34 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 9 (1.08 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.34 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 255.24 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.69 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.34 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.34 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.69 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1637 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 255.24 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 38 small targets on mobile and 33 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1013.03 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 832.52 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1013.03 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 832.52 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1637 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.69 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 53.34 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 23 of 37 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 8.0 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,013 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 833 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/en/getinvolved
- Performance: 69/100
- Transfer: 1.67 MB
- CO2 estimate: 0.6698 g
- Page host green energy status: NOT GREEN
- Redundancy score: 15/100
- Redundancy urgency: MEDIUM
- Modularization score: 16/100
- Modularization urgency: MEDIUM
- Dead-code score: 6/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 19/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 92/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 144.28 KB (8.5% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.38 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 62.89 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (378.22 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 92.55 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 62.89 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 110.78 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.38 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 62.89 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 92.55 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 62.89 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.38 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1465 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 110.78 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 46 small targets on mobile and 43 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 860.02 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 710.92 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 860.02 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 710.92 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1465 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 92.55 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.38 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 62.89 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 6.6 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 63 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 860 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 711 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 93 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/en/living-in-bcn
- Performance: 65/100
- Transfer: 2.20 MB
- CO2 estimate: 0.8831 g
- Page host green energy status: NOT GREEN
- Redundancy score: 13/100
- Redundancy urgency: MEDIUM
- Modularization score: 13/100
- Modularization urgency: MEDIUM
- Dead-code score: 5/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 18/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.21 KB (6.0% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.46 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 52.75 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (368.83 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 111.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 52.75 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 101.40 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.46 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 52.75 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 111.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 52.75 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.46 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1500 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 101.40 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 37 small targets on mobile and 32 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.28 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.00 MB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.28 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.00 MB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1500 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 111.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.46 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 52.75 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 8.7 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,316 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,027 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,500 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/en/pagina-exemple-mapa-sant-jordi
- Performance: 71/100
- Transfer: 737.90 KB
- CO2 estimate: 0.2895 g
- Page host green energy status: NOT GREEN
- Redundancy score: 18/100
- Redundancy urgency: LOW
- Modularization score: 22/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 22/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 17/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 111.68 KB (15.1% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.96 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.66 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.96 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.96 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1482 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 33 small targets on mobile and 31 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 70.71 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1482 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.96 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 70.71 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 11 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.0 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 80 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 71 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 57 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,480 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/en/what-to-do-in-bcn
- Performance: 63/100
- Transfer: 2.32 MB
- CO2 estimate: 0.9332 g
- Page host green energy status: NOT GREEN
- Redundancy score: 23/100
- Redundancy urgency: MEDIUM
- Modularization score: 21/100
- Modularization urgency: HIGH
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 18/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 34/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.72 KB (5.7% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.37 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.34 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 8 (711.43 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.34 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 128.51 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.37 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.34 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.34 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.37 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1648 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 128.51 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 47 small targets on mobile and 33 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 2 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.38 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.15 MB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.38 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.15 MB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1648 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.37 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 53.34 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.07 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 7.9 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,408 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,180 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/conocebcn
- Performance: 67/100
- Transfer: 1.87 MB
- CO2 estimate: 0.7514 g
- Page host green energy status: NOT GREEN
- Redundancy score: 14/100
- Redundancy urgency: MEDIUM
- Modularization score: 33/100
- Modularization urgency: HIGH
- Dead-code score: 5/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 18/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 96/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 27/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.43 KB (7.0% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.69 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 52.75 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 9 (1.08 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 81.70 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 52.75 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 255.23 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.52 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.69 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 52.75 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 81.70 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 52.75 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.69 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1638 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 255.23 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 38 small targets on mobile and 33 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1013.03 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 832.52 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1013.03 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 832.52 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1638 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 81.70 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.69 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 52.75 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 23 of 37 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 7.1 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,013 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 833 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 82 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/diada-nacional-de-cataluna-2022
- Performance: 48/100
- Transfer: 831.65 KB
- CO2 estimate: 0.3262 g
- Page host green energy status: NOT GREEN
- Redundancy score: 17/100
- Redundancy urgency: LOW
- Modularization score: 19/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 15/100
- Non-critical resources urgency: MEDIUM
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 22/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 45/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 111.67 KB (13.4% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.95 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.66 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 81.70 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.95 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 81.70 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.95 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [MEDIUM] Eliminate render-blocking resources (est. 882 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 33 small targets on mobile and 31 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 126.27 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
- Optimization recommendations:
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 126.27 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 81.70 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.95 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
  - [MEDIUM] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 882 ms.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 12 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 7.8 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 32 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 80 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 126 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 57 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 82 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/implicate
- Performance: 63/100
- Transfer: 1.63 MB
- CO2 estimate: 0.6541 g
- Page host green energy status: NOT GREEN
- Redundancy score: 25/100
- Redundancy urgency: MEDIUM
- Modularization score: 16/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 19/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 88/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 143.64 KB (8.6% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.35 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 62.29 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (378.17 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 81.70 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 62.29 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 110.75 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.35 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 62.29 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 81.70 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 62.29 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.35 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1957 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 110.75 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 47 small targets on mobile and 43 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 808.69 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 666.90 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 808.69 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 666.90 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1957 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 81.70 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.35 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 62.29 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.08 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 7.5 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 62 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 809 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 667 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 82 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/que-hacer-en-bcn
- Performance: 59/100
- Transfer: 2.28 MB
- CO2 estimate: 0.9167 g
- Page host green energy status: NOT GREEN
- Redundancy score: 23/100
- Redundancy urgency: MEDIUM
- Modularization score: 21/100
- Modularization urgency: HIGH
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 17/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 34/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.71 KB (5.8% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.36 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.35 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 8 (711.38 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 81.70 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.35 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 128.49 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 7.00 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.36 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.35 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 81.70 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.35 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.36 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1477 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 128.49 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 46 small targets on mobile and 33 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 2 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.32 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.10 MB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.32 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.10 MB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1477 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 81.70 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.36 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 53.35 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.08 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 9.0 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,348 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,130 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 82 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/trabajo-y-empresa
- Performance: 67/100
- Transfer: 3.07 MB
- CO2 estimate: 1.2340 g
- Page host green energy status: NOT GREEN
- Redundancy score: 22/100
- Redundancy urgency: MEDIUM
- Modularization score: 35/100
- Modularization urgency: HIGH
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 17/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 138.08 KB (4.4% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.37 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 56.71 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 17 (1.88 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 89.42 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 56.71 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 154.56 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.37 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 56.71 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 89.42 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 56.71 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.37 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1493 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 154.56 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 96 small targets on mobile and 94 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 2.05 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.73 MB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 2.05 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.73 MB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1493 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 89.42 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.37 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 56.71 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 7.0 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 2,096 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,769 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 89 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,490 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/es/vivir-en-bcn
- Performance: 68/100
- Transfer: 2.22 MB
- CO2 estimate: 0.8913 g
- Page host green energy status: NOT GREEN
- Redundancy score: 13/100
- Redundancy urgency: MEDIUM
- Modularization score: 12/100
- Modularization urgency: MEDIUM
- Dead-code score: 5/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 17/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.21 KB (5.9% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.46 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 52.75 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (368.80 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Split JavaScript by route or interaction (est. 52.75 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 101.37 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.46 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 52.75 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 10.85 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 52.75 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.46 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1500 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 101.37 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 37 small targets on mobile and 32 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.29 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.00 MB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.29 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.00 MB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1500 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.46 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 52.75 KB.
  - [LOW] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 10.85 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.07 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 7.2 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,317 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,028 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,500 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/es/aviso-legal/banoasistido
- Performance: 69/100
- Transfer: 757.19 KB
- CO2 estimate: 0.2970 g
- Page host green energy status: NOT GREEN
- Redundancy score: 18/100
- Redundancy urgency: LOW
- Modularization score: 21/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 22/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 17/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 111.49 KB (14.7% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.77 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.66 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.52 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.77 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.77 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1483 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 35 small targets on mobile and 33 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 70.71 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1483 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.77 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 70.71 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.05 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 11 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.0 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 80 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 71 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 57 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,480 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/es/blogoteca/condiciones-uso
- Performance: 71/100
- Transfer: 791.44 KB
- CO2 estimate: 0.3105 g
- Page host green energy status: NOT GREEN
- Redundancy score: 18/100
- Redundancy urgency: LOW
- Modularization score: 20/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 22/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 18/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 111.42 KB (14.1% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.70 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.70 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.70 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1487 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 34 small targets on mobile and 32 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 70.71 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 68.86 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1487 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.70 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 70.71 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 68.86 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 11 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.0 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 80 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 71 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 69 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,490 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/es/conocebcn/la-ciutadella-del-conocimiento
- Performance: 65/100
- Transfer: 1.92 MB
- CO2 estimate: 0.7696 g
- Page host green energy status: NOT GREEN
- Redundancy score: 24/100
- Redundancy urgency: MEDIUM
- Modularization score: 30/100
- Modularization urgency: HIGH
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 22/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 77/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 137.46 KB (7.0% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 80.80 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 56.66 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 8 (894.89 KB total)
- On-demand modularization candidates:
  - [HIGH] Lazy-load offscreen images and media galleries (est. 306.15 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 56.66 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 208.82 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT www.youtube.com: GREEN (Google Cloud); 2 request(s), 10.80 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 80.80 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 56.66 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [HIGH] Lazy-load offscreen images (est. 306.15 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 56.66 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 80.80 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1493 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 208.82 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 47 small targets on mobile and 45 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 878.93 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 631.72 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 878.93 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 631.72 KB.
  - [HIGH] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 306.15 KB.
  - [HIGH] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 180.96 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1493 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 80.80 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 377.76 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 7.2 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 57 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 879 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 632 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 306 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/que-hacer-en-bcn/banos-y-playas/actividades-deportivas-organizadas-por-deportistas-federados
- Performance: 65/100
- Transfer: 1022.69 KB
- CO2 estimate: 0.4012 g
- Page host green energy status: NOT GREEN
- Redundancy score: 16/100
- Redundancy urgency: LOW
- Modularization score: 28/100
- Modularization urgency: MEDIUM
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 14/100
- Non-critical resources urgency: MEDIUM
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 51/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 45/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 110.63 KB (10.8% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.51 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.12 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (529.94 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 265.27 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.51 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.12 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.12 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.51 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [MEDIUM] Eliminate render-blocking resources (est. 878 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 265.27 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 36 small targets on mobile and 34 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 289.92 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 228.98 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 289.92 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 228.98 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.51 KB.
  - [MEDIUM] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 878 ms.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.12 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 12 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 9.7 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 80 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 290 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 229 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 880 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/en/what-to-do-in-bcn/montjuic-park/news
- Performance: 65/100
- Transfer: 1.85 MB
- CO2 estimate: 0.7447 g
- Page host green energy status: NOT GREEN
- Redundancy score: 13/100
- Redundancy urgency: LOW
- Modularization score: 28/100
- Modularization urgency: MEDIUM
- Dead-code score: 5/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 18/100
- Non-critical resources urgency: HIGH
- Form validation score: 38/100
- Form validation urgency: MEDIUM
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 50/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 110.58 KB (5.8% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.48 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.10 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 6 (965.77 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from media-edg.barcelona.cat (est. 429.84 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT www.youtube.com: GREEN (Google Cloud); 2 request(s), 10.80 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.48 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.10 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.10 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.48 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1631 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from media-edg.barcelona.cat (est. 429.84 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No error messaging hook
    - 4 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 47 small targets on mobile and 45 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 867.69 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 89.47 KB.
- Optimization recommendations:
  - [HIGH] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 911.83 KB.
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 867.69 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1631 ms.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 89.47 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.48 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 1.21 MB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.3 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 79 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 868 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 89 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,630 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/en/what-to-do-in-bcn/parks-and-gardens/belvederes
- Performance: 65/100
- Transfer: 1.03 MB
- CO2 estimate: 0.4145 g
- Page host green energy status: NOT GREEN
- Redundancy score: 24/100
- Redundancy urgency: LOW
- Modularization score: 19/100
- Modularization urgency: MEDIUM
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 26/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 39/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.59 KB (11.5% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 89.87 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Enable and verify text compression (est. 18.04 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.66 KB total)
- On-demand modularization candidates:
  - [HIGH] Lazy-load offscreen images and media galleries (est. 246.33 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.54 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.97 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 89.87 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 246.33 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 89.87 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1634 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 51 small targets on mobile and 49 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 229.64 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 168.10 KB.
  - [LOW] Enable Brotli/gzip for text assets
    - Compress HTML, CSS, JS, JSON, SVG, and XML responses with Brotli or gzip. Estimated savings: 18.04 KB.
- Optimization recommendations:
  - [HIGH] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 246.33 KB.
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 229.64 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1634 ms.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 168.10 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 89.87 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 382.63 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 15 of 15 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 9.5 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 32 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 230 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 168 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 246 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/en/discoverbcn/pics
- Performance: 60/100
- Transfer: 2.06 MB
- CO2 estimate: 0.8294 g
- Page host green energy status: NOT GREEN
- Redundancy score: 33/100
- Redundancy urgency: MEDIUM
- Modularization score: 29/100
- Modularization urgency: MEDIUM
- Dead-code score: 13/100
- Dead-code urgency: HIGH
- Non-critical resources score: 24/100
- Non-critical resources urgency: HIGH
- Form validation score: 55/100
- Form validation urgency: MEDIUM
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 52/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 29/100
- Media hints urgency: LOW
- Third-party JS risk score: 82/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 411.25 KB (19.5% of transfer)
- Redundancy recommendations:
  - [HIGH] Reduce unused javascript (est. 331.81 KB savings)
  - [MEDIUM] Reduce unused css (est. 79.44 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 7 (866.26 KB total)
- On-demand modularization candidates:
  - [HIGH] Lazy-load offscreen images and media galleries (est. 238.65 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Split JavaScript by route or interaction (est. 331.81 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy script asset from www.barcelona.cat (est. 269.45 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.jsdelivr.net: GREEN (Cloudflare); 1 request(s), 160.06 KB
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 20.27 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 9 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.44 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [HIGH] Remove unused JavaScript and feature bundles (est. 331.81 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 238.65 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [HIGH] Defer non-critical JavaScript (est. 331.81 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.44 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1767 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy script from www.barcelona.cat (est. 269.45 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 4 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 4 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 2 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 65 small targets on mobile and 63 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 9 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 9 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 804.59 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 295.32 KB.
  - [LOW] Minify JavaScript before transfer
    - Minify JS bundles so transport compression produces better results with fewer bytes. Estimated savings: 5.93 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 804.59 KB.
  - [HIGH] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 331.81 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 295.32 KB.
  - [HIGH] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 238.65 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1767 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.44 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 832.32 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 32 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 8.1 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 332 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 79 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 805 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 295 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 239 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/vivir-en-bcn/vive-el-barrio
- Performance: 60/100
- Transfer: 2.78 MB
- CO2 estimate: 1.1184 g
- Page host green energy status: NOT GREEN
- Redundancy score: 23/100
- Redundancy urgency: MEDIUM
- Modularization score: 35/100
- Modularization urgency: HIGH
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 17/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 77/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 166.93 KB (5.9% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused javascript (est. 87.22 KB savings)
  - [MEDIUM] Reduce unused css (est. 79.71 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 6 (1.99 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Split JavaScript by route or interaction (est. 87.22 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 892.52 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.71 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [HIGH] Remove unused JavaScript and feature bundles (est. 87.22 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 3.37 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 87.22 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.71 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1538 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 892.52 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 34 small targets on mobile and 32 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.42 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 747.77 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.42 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 747.77 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1538 ms.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 87.22 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.71 KB.
  - [LOW] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 3.37 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 11 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.1 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 80 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,456 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 748 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 3 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,540 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/ca/viure-a-bcn/diada/transports-publics-durant-la-diada-2024
- Performance: 60/100
- Transfer: 1.92 MB
- CO2 estimate: 0.7714 g
- Page host green energy status: NOT GREEN
- Redundancy score: 23/100
- Redundancy urgency: LOW
- Modularization score: 28/100
- Modularization urgency: HIGH
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 9/100
- Non-critical resources urgency: MEDIUM
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 6/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 46/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 90/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 110.63 KB (5.6% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.51 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.12 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 9 (925.65 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy script asset from www.gstatic.com (est. 245.82 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
  - [MEDIUM] Modularize heavy script asset from maps.googleapis.com (est. 177.25 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
  - [MEDIUM] Modularize heavy document asset from www.google.com (est. 116.48 KB)
    - Move this asset behind an explicit interaction, route boundary, or lazy-loading trigger.
- External CSS/JS hosting checks:
  - SCRIPT maps.googleapis.com: GREEN (Google Cloud); 13 request(s), 412.91 KB
  - SCRIPT www.gstatic.com: GREEN (Google Cloud); 4 request(s), 286.74 KB
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - STYLESHEET www.gstatic.com: GREEN (Google Cloud); 1 request(s), 50.75 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 9 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.51 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.12 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 3.37 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.12 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.51 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [MEDIUM] Eliminate render-blocking resources (est. 766 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy script from www.gstatic.com (est. 245.82 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 54 small targets on mobile and 53 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 70.71 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
- Optimization recommendations:
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.51 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 70.71 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
  - [MEDIUM] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 766 ms.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.12 KB.
  - [LOW] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 3.37 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 215.46 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 15 of 16 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.7 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 80 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 71 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 57 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 3 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 770 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/en/what-to-do-in-bcn/magic-fountain/history
- Performance: 39/100
- Transfer: 2.04 MB
- CO2 estimate: 0.8187 g
- Page host green energy status: NOT GREEN
- Redundancy score: 24/100
- Redundancy urgency: MEDIUM
- Modularization score: 41/100
- Modularization urgency: HIGH
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 13/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 34/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 94/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 135.21 KB (6.5% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.59 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.62 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 12 (1.53 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.62 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 257.54 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.99 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.59 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.62 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.62 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.59 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1038 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 257.54 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 43 small targets on mobile and 33 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 2 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.09 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 853.31 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.09 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 853.31 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1038 ms.
  - [MEDIUM] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 146.57 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.59 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.07 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 9.9 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 54 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,112 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 853 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/conocebcn/ciutadelladelconocimiento/biblioteca-central
- Performance: 54/100
- Transfer: 1012.42 KB
- CO2 estimate: 0.3971 g
- Page host green energy status: NOT GREEN
- Redundancy score: 27/100
- Redundancy urgency: MEDIUM
- Modularization score: 17/100
- Modularization urgency: MEDIUM
- Dead-code score: 10/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 21/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 34/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 38/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 135.83 KB (13.4% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.61 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 54.23 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (267.43 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 54.23 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.61 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 54.23 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 54.23 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.61 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1637 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 37 small targets on mobile and 33 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 2 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 212.27 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 171.82 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 212.27 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1637 ms.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 171.82 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.61 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 54.23 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 8.4 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 54 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 212 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 172 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/en/what-to-do-in-bcn/festes-majors
- Performance: 67/100
- Transfer: 1.02 MB
- CO2 estimate: 0.4104 g
- Page host green energy status: NOT GREEN
- Redundancy score: 34/100
- Redundancy urgency: MEDIUM
- Modularization score: 23/100
- Modularization urgency: MEDIUM
- Dead-code score: 9/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 24/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 28/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.48 KB (11.6% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 89.76 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Enable and verify text compression (est. 32.97 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (367.55 KB total)
- On-demand modularization candidates:
  - [HIGH] Lazy-load offscreen images and media galleries (est. 180.46 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from estatics-nasia.dtibcn.cat (est. 102.89 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.49 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 89.76 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 180.46 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 89.76 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1595 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from estatics-nasia.dtibcn.cat (est. 102.89 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 59 small targets on mobile and 60 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 180.80 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 79.23 KB.
  - [MEDIUM] Enable Brotli/gzip for text assets
    - Compress HTML, CSS, JS, JSON, SVG, and XML responses with Brotli or gzip. Estimated savings: 32.97 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1595 ms.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 180.80 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 180.46 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 89.76 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 79.23 KB.
  - [MEDIUM] Enable text compression
    - Serve text assets with Brotli or gzip to remove avoidable transfer bloat. Estimated byte savings: 32.97 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 355.97 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.8 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 181 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 79 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 180 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,600 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/ca/viure-a-bcn/amb-nens-i-nenes/lleure/llistat-de-ludotecas
- Performance: 64/100
- Transfer: 1.19 MB
- CO2 estimate: 0.4768 g
- Page host green energy status: NOT GREEN
- Redundancy score: 33/100
- Redundancy urgency: MEDIUM
- Modularization score: 16/100
- Modularization urgency: MEDIUM
- Dead-code score: 9/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 22/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 44/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 51/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.50 KB (10.0% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 89.78 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Enable and verify text compression (est. 21.90 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [HIGH] Lazy-load offscreen images and media galleries (est. 166.09 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.50 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 89.78 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 166.09 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 89.78 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1788 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 64 small targets on mobile and 63 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 7 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 348.81 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 247.81 KB.
  - [LOW] Enable Brotli/gzip for text assets
    - Compress HTML, CSS, JS, JSON, SVG, and XML responses with Brotli or gzip. Estimated savings: 21.90 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 348.81 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 247.81 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1788 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 166.09 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 89.78 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 513.09 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 10.0 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 32 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 349 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 248 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,790 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/en/what-to-do-in-bcn/parks-and-gardens/childrens-play-areas
- Performance: 68/100
- Transfer: 807.89 KB
- CO2 estimate: 0.3169 g
- Page host green energy status: NOT GREEN
- Redundancy score: 18/100
- Redundancy urgency: LOW
- Modularization score: 20/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 22/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 16/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.59 KB (15.1% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 89.87 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.50 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 89.87 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 89.87 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1649 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 50 small targets on mobile and 48 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 70.71 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1649 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 89.87 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 70.71 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 11 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.5 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 71 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 57 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,650 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/ca/que-pots-fer-a-bcn/estiu/refrescat-a-les-piscines-municipals
- Performance: 67/100
- Transfer: 1.10 MB
- CO2 estimate: 0.4421 g
- Page host green energy status: NOT GREEN
- Redundancy score: 16/100
- Redundancy urgency: LOW
- Modularization score: 21/100
- Modularization urgency: MEDIUM
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 29/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 44/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.70 KB (10.8% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 89.98 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.66 KB total)
- On-demand modularization candidates:
  - [HIGH] Lazy-load offscreen images and media galleries (est. 386.10 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.50 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 89.98 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [HIGH] Lazy-load offscreen images (est. 386.10 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 89.98 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1597 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 73 small targets on mobile and 76 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 285.26 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 212.57 KB.
- Optimization recommendations:
  - [HIGH] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 386.10 KB.
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 285.26 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 212.57 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1597 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 89.98 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 452.21 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 25 of 25 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 7.1 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 285 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 213 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 386 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,600 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/es/que-hacer-en-bcn/banos-y-playas/playa-de-sant-miquel
- Performance: 48/100
- Transfer: 1.53 MB
- CO2 estimate: 0.6152 g
- Page host green energy status: NOT GREEN
- Redundancy score: 25/100
- Redundancy urgency: MEDIUM
- Modularization score: 34/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 14/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 34/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 83/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 39/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.52 KB (8.6% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.35 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.17 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 7 (990.40 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.17 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 275.11 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.35 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.17 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.17 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.35 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1028 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 275.11 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 41 small targets on mobile and 39 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 2 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 702.57 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 603.45 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 702.57 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 603.45 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1028 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.35 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 53.17 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 13 of 16 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 12.7 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 703 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 603 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/ca/que-pots-fer-a-bcn/parcs-i-jardins/parcs-forestals
- Performance: 66/100
- Transfer: 952.06 KB
- CO2 estimate: 0.3735 g
- Page host green energy status: NOT GREEN
- Redundancy score: 27/100
- Redundancy urgency: LOW
- Modularization score: 20/100
- Modularization urgency: MEDIUM
- Dead-code score: 10/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 26/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 22/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.74 KB (12.8% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 90.02 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [HIGH] Lazy-load offscreen images and media galleries (est. 211.18 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.50 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 90.02 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 211.18 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 90.02 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1608 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 42 small targets on mobile and 40 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 140.47 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 69.00 KB.
- Optimization recommendations:
  - [HIGH] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 211.18 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1608 ms.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 140.47 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 90.02 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 69.00 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 285.76 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 13 of 13 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.3 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 140 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 69 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 211 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,610 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/en/what-to-do-in-bcn/summer/outdoor-films
- Performance: 66/100
- Transfer: 848.28 KB
- CO2 estimate: 0.3328 g
- Page host green energy status: NOT GREEN
- Redundancy score: 35/100
- Redundancy urgency: MEDIUM
- Modularization score: 20/100
- Modularization urgency: MEDIUM
- Dead-code score: 10/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 23/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 18/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.73 KB (14.3% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 90.01 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Enable and verify text compression (est. 16.11 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 106.45 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.50 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 90.01 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 106.45 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 90.01 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1931 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 49 small targets on mobile and 50 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 83.64 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
  - [LOW] Enable Brotli/gzip for text assets
    - Compress HTML, CSS, JS, JSON, SVG, and XML responses with Brotli or gzip. Estimated savings: 16.11 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1931 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 106.45 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 90.01 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 83.64 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 184.97 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 14 of 14 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.3 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 84 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 57 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 106 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,930 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/es/que-hacer-en-bcn/banos-y-playas/zona-de-banos-del-forum
- Performance: 65/100
- Transfer: 1.24 MB
- CO2 estimate: 0.4988 g
- Page host green energy status: NOT GREEN
- Redundancy score: 26/100
- Redundancy urgency: MEDIUM
- Modularization score: 30/100
- Modularization urgency: MEDIUM
- Dead-code score: 9/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 20/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 32/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 63/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 42/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.04 KB (10.5% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.02 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.01 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 6 (678.10 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.01 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 208.33 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.52 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.02 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.01 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.01 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.02 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1593 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 208.33 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 41 small targets on mobile and 39 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 1 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 433.65 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 371.77 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 433.65 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 371.77 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1593 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.02 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 53.01 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.09 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 13 of 15 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 10.9 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 434 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 372 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/en/discoverbcn/ciutadella-knowledge-hub/heritage-and-science-hub
- Performance: 39/100
- Transfer: 2.96 MB
- CO2 estimate: 1.1895 g
- Page host green energy status: NOT GREEN
- Redundancy score: 22/100
- Redundancy urgency: MEDIUM
- Modularization score: 44/100
- Modularization urgency: HIGH
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 17/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 34/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.60 KB (4.4% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.13 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.47 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 10 (2.41 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.47 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 525.02 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.13 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.47 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.47 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.13 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1662 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 525.02 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 44 small targets on mobile and 35 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 2 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.86 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.55 MB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.86 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.55 MB.
  - [HIGH] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 248.60 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1662 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.13 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.05 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 20.5 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,902 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,587 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/que-hacer-en-bcn/cultura/teatros
- Performance: 67/100
- Transfer: 859.42 KB
- CO2 estimate: 0.3371 g
- Page host green energy status: NOT GREEN
- Redundancy score: 18/100
- Redundancy urgency: LOW
- Modularization score: 20/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 18/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 20/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.51 KB (14.1% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 89.79 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.66 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 117.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.50 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 89.79 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 117.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 89.79 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1032 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 65 small targets on mobile and 65 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 94.65 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 73.12 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1032 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 117.07 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 94.65 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 89.79 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 73.12 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 195.11 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.3 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 95 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 73 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 117 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,030 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/capdesetmana/ca/
- Performance: 63/100
- Transfer: 1.76 MB
- CO2 estimate: 0.7062 g
- Page host green energy status: NOT GREEN
- Redundancy score: 18/100
- Redundancy urgency: MEDIUM
- Modularization score: 14/100
- Modularization urgency: MEDIUM
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 17/100
- Non-critical resources urgency: HIGH
- Form validation score: 73/100
- Form validation urgency: HIGH
- Metadata score: 30/100
- Metadata urgency: MEDIUM
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 43/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 57/100
- Third-party JS urgency: MEDIUM
- Estimated redundant transfer: 194.20 KB (10.8% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 119.70 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 74.49 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (369.19 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 64.63 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 74.49 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 139.54 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT www.bcn.cat: NOT GREEN; 1 request(s), 32.88 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.50 KB
  - SCRIPT www.youtube.com: GREEN (Google Cloud); 2 request(s), 10.80 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 1 request(s), 3.42 KB
  - SCRIPT plausible.io: NOT GREEN; 1 request(s), 2.79 KB
- Third-party JS recommendations:
  - [MEDIUM] Maintain a third-party JavaScript inventory
    - Track 6 third-party script origin(s) and assign an owner plus business justification for each.
  - [MEDIUM] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 3 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 119.70 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [HIGH] Remove unused JavaScript and feature bundles (est. 74.49 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 64.63 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 74.49 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 119.70 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1294 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 139.54 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 6 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 6 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 3 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 2 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
  - [LOW] Add twitter:card metadata
    - Include twitter card metadata to improve cross-platform machine-readable previews.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 38 small targets on mobile and 36 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 5 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 5 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 596.62 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 168.83 KB.
  - [LOW] Minify JavaScript before transfer
    - Minify JS bundles so transport compression produces better results with fewer bytes. Estimated savings: 7.73 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 596.62 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1294 ms.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 168.83 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 119.70 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 74.49 KB.
  - [MEDIUM] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 71.22 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 770.46 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 22 of 22 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 9.9 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Speed Index
  - Current value: 6.7 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 74 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 120 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 597 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 169 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)

### https://barcelona.cat/es/vivir-en-bcn/diada
- Performance: 64/100
- Transfer: 1.78 MB
- CO2 estimate: 0.7164 g
- Page host green energy status: NOT GREEN
- Redundancy score: 14/100
- Redundancy urgency: MEDIUM
- Modularization score: 35/100
- Modularization urgency: HIGH
- Dead-code score: 5/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 11/100
- Non-critical resources urgency: MEDIUM
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 88/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 23/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.85 KB (7.4% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.99 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 52.86 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 10 (1.08 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Split JavaScript by route or interaction (est. 52.86 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [MEDIUM] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 206.83 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.99 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.99 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 52.86 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 7.72 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 52.86 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.99 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [MEDIUM] Eliminate render-blocking resources (est. 876 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 206.83 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 41 small targets on mobile and 38 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 888.45 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 713.76 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 888.45 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 713.76 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.99 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 52.86 KB.
  - [MEDIUM] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 876 ms.
  - [LOW] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 7.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.07 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 12 of 22 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 8.9 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 888 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 714 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 880 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/en/living-in-bcn/pets
- Performance: 60/100
- Transfer: 2.52 MB
- CO2 estimate: 1.0125 g
- Page host green energy status: NOT GREEN
- Redundancy score: 32/100
- Redundancy urgency: MEDIUM
- Modularization score: 24/100
- Modularization urgency: MEDIUM
- Dead-code score: 12/100
- Dead-code urgency: HIGH
- Non-critical resources score: 22/100
- Non-critical resources urgency: HIGH
- Form validation score: 55/100
- Form validation urgency: MEDIUM
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 70/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 30/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 82/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 436.18 KB (16.9% of transfer)
- Redundancy recommendations:
  - [HIGH] Reduce unused javascript (est. 354.13 KB savings)
  - [MEDIUM] Reduce unused css (est. 82.05 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 7 (862.87 KB total)
- On-demand modularization candidates:
  - [HIGH] Lazy-load offscreen images and media galleries (est. 145.92 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Split JavaScript by route or interaction (est. 354.13 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy script asset from www.barcelona.cat (est. 269.44 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.jsdelivr.net: GREEN (Cloudflare); 1 request(s), 159.61 KB
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 20.27 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 9 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 82.05 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [HIGH] Remove unused JavaScript and feature bundles (est. 354.13 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 145.92 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [HIGH] Defer non-critical JavaScript (est. 354.13 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 82.05 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1492 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy script from www.barcelona.cat (est. 269.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 4 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 4 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 2 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 77 small targets on mobile and 73 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 9 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 9 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.15 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 609.05 KB.
  - [LOW] Minify JavaScript before transfer
    - Minify JS bundles so transport compression produces better results with fewer bytes. Estimated savings: 5.93 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.15 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 609.05 KB.
  - [HIGH] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 354.13 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1492 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 145.92 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 82.05 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 832.30 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 20 of 30 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 10.8 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 354 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,182 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 609 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,490 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/es/que-hacer-en-bcn/banos-y-playas/deporte-en-las-playas/pesca
- Performance: 67/100
- Transfer: 1.02 MB
- CO2 estimate: 0.4088 g
- Page host green energy status: NOT GREEN
- Redundancy score: 16/100
- Redundancy urgency: LOW
- Modularization score: 28/100
- Modularization urgency: MEDIUM
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 20/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 53/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 45/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 111.35 KB (10.7% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.63 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (549.76 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.08 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 285.10 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.63 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.08 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.63 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1489 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 285.10 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 36 small targets on mobile and 34 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 305.74 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 243.80 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 305.74 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 243.80 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1489 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.08 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.63 KB.
  - [LOW] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 32.17 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 12 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 10.5 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 32 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 80 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 306 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 244 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/en/what-to-do-in-bcn/get-fit/sports-facilities
- Performance: 65/100
- Transfer: 934.83 KB
- CO2 estimate: 0.3667 g
- Page host green energy status: NOT GREEN
- Redundancy score: 35/100
- Redundancy urgency: MEDIUM
- Modularization score: 19/100
- Modularization urgency: MEDIUM
- Dead-code score: 10/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 22/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 28/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.48 KB (13.0% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 89.76 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Enable and verify text compression (est. 85.81 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 117.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.49 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 89.76 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 117.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 89.76 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1958 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 66 small targets on mobile and 65 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 97.24 KB.
  - [MEDIUM] Enable Brotli/gzip for text assets
    - Compress HTML, CSS, JS, JSON, SVG, and XML responses with Brotli or gzip. Estimated savings: 85.81 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 77.76 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1958 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 117.07 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 97.24 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 89.76 KB.
  - [MEDIUM] Enable text compression
    - Serve text assets with Brotli or gzip to remove avoidable transfer bloat. Estimated byte savings: 85.81 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 77.76 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 195.10 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.4 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 97 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 78 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 117 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,960 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/ca/que-pots-fer-a-bcn/banys-i-platges/esport-les-platges
- Performance: 70/100
- Transfer: 1.20 MB
- CO2 estimate: 0.4828 g
- Page host green energy status: NOT GREEN
- Redundancy score: 16/100
- Redundancy urgency: MEDIUM
- Modularization score: 29/100
- Modularization urgency: MEDIUM
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 20/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 66/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 34/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 135.40 KB (11.0% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.97 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.44 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 7 (614.21 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.44 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 129.16 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.97 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.44 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.44 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.97 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1630 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 129.16 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 39 small targets on mobile and 35 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 447.24 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 365.76 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 447.24 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 365.76 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1630 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.97 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 53.44 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.05 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 15 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.2 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 447 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 366 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/ca/que-pots-fer-a-bcn/cultura
- Performance: 46/100
- Transfer: 1.44 MB
- CO2 estimate: 0.5781 g
- Page host green energy status: NOT GREEN
- Redundancy score: 15/100
- Redundancy urgency: LOW
- Modularization score: 20/100
- Modularization urgency: MEDIUM
- Dead-code score: 6/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 19/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 53/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 48/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.11 KB (8.2% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 89.39 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (493.47 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 81.70 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 228.81 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.50 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 89.39 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 81.70 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 89.39 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1775 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 228.81 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 44 small targets on mobile and 41 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 500.10 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 275.98 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 500.10 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 275.98 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1775 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 89.39 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 81.70 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 532.81 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 26 of 27 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 5.4 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 89 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 500 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 276 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,780 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)
- [HIGH] Reduce initial server response time
  - Current value: Root document took 1,000 ms
  - WSG: 11 Ensure infrastructure fits project requirements (https://www.w3.org/TR/web-sustainability-guidelines/#ensure-infrastructure-fits-project-requirements)

### https://barcelona.cat/es/vivir-en-bcn/con-accesibilidad
- Performance: 68/100
- Transfer: 1.95 MB
- CO2 estimate: 0.7847 g
- Page host green energy status: NOT GREEN
- Redundancy score: 24/100
- Redundancy urgency: MEDIUM
- Modularization score: 27/100
- Modularization urgency: HIGH
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 17/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 138.45 KB (6.9% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.64 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 56.81 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 9 (879.16 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Split JavaScript by route or interaction (est. 56.81 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 141.57 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.97 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.64 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 56.81 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 7.72 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 56.81 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.64 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1608 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 141.57 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 64 small targets on mobile and 61 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.08 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 916.28 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.08 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 916.28 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1608 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.64 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 56.81 KB.
  - [LOW] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 7.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.05 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 7.0 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 57 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,104 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 916 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,610 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/en/what-to-do-in-bcn/montjuic-park/activities/list
- Performance: 64/100
- Transfer: 1.42 MB
- CO2 estimate: 0.5714 g
- Page host green energy status: NOT GREEN
- Redundancy score: 15/100
- Redundancy urgency: LOW
- Modularization score: 21/100
- Modularization urgency: MEDIUM
- Dead-code score: 6/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 33/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 43/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.44 KB (8.3% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 89.72 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [HIGH] Lazy-load offscreen images and media galleries (est. 676.10 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.50 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 89.72 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [HIGH] Lazy-load offscreen images (est. 676.10 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 89.72 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1630 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from estatics-nasia.dtibcn.cat (est. 95.02 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 72 small targets on mobile and 72 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 464.89 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 163.85 KB.
- Optimization recommendations:
  - [HIGH] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 676.10 KB.
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 464.89 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1630 ms.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 163.85 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 89.72 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 784.33 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 7.7 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 465 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 164 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 676 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,630 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/es/vivir-en-bcn/medio-ambiente-y-sostenibilidad
- Performance: 65/100
- Transfer: 2.22 MB
- CO2 estimate: 0.8904 g
- Page host green energy status: NOT GREEN
- Redundancy score: 13/100
- Redundancy urgency: MEDIUM
- Modularization score: 37/100
- Modularization urgency: HIGH
- Dead-code score: 5/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 17/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.88 KB (5.9% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 82.04 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 52.84 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 12 (1.45 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Split JavaScript by route or interaction (est. 52.84 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 188.44 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 82.04 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 52.84 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 7.73 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 52.84 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 82.04 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1637 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 188.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 63 small targets on mobile and 59 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.25 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.02 MB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.25 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.02 MB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1637 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 82.04 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 52.84 KB.
  - [LOW] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 7.73 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.08 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 10.6 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,284 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,040 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,640 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/en/what-to-do-in-bcn/bathing-and-beaches/dogs-area
- Performance: 41/100
- Transfer: 2.96 MB
- CO2 estimate: 1.1883 g
- Page host green energy status: NOT GREEN
- Redundancy score: 22/100
- Redundancy urgency: MEDIUM
- Modularization score: 44/100
- Modularization urgency: HIGH
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 17/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 36/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.81 KB (4.5% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.32 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.49 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 14 (2.45 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 89.42 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.49 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 329.80 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.52 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.32 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.49 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 89.42 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.49 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.32 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1660 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 329.80 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 49 small targets on mobile and 35 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 3 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.70 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.25 MB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.70 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.25 MB.
  - [HIGH] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 232.76 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1660 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 89.42 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.32 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 293.47 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 9.9 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,736 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,284 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 89 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/en/living-in-bcn/diada
- Performance: 66/100
- Transfer: 1.77 MB
- CO2 estimate: 0.7101 g
- Page host green energy status: NOT GREEN
- Redundancy score: 14/100
- Redundancy urgency: MEDIUM
- Modularization score: 35/100
- Modularization urgency: HIGH
- Dead-code score: 5/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 17/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 89/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 23/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 135.45 KB (7.5% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 82.00 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.46 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 10 (1.08 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.46 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 206.82 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 82.00 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.46 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 7.71 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.46 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 82.00 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1623 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 206.82 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 42 small targets on mobile and 38 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 888.45 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 713.76 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 888.45 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 713.76 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1623 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 82.00 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 53.46 KB.
  - [LOW] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 7.71 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 12 of 22 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 8.8 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 888 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 714 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,620 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/es/conocebcn/la-historia/la-barcino-romana
- Performance: 56/100
- Transfer: 1.52 MB
- CO2 estimate: 0.6096 g
- Page host green energy status: NOT GREEN
- Redundancy score: 14/100
- Redundancy urgency: LOW
- Modularization score: 19/100
- Modularization urgency: MEDIUM
- Dead-code score: 5/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 12/100
- Non-critical resources urgency: MEDIUM
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 82/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 23/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 110.67 KB (7.1% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 78.95 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (495.33 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 81.70 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 230.68 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 78.95 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 81.70 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 78.95 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [MEDIUM] Eliminate render-blocking resources (est. 877 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 230.68 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 36 small targets on mobile and 34 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 711.35 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 569.39 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 711.35 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 569.39 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 81.70 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 78.95 KB.
  - [MEDIUM] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 877 ms.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 20 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 9.7 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 32 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 79 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 711 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 569 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 82 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/en/what-to-do-in-bcn/culture/cinemas
- Performance: 64/100
- Transfer: 808.32 KB
- CO2 estimate: 0.3171 g
- Page host green energy status: NOT GREEN
- Redundancy score: 28/100
- Redundancy urgency: LOW
- Modularization score: 20/100
- Modularization urgency: MEDIUM
- Dead-code score: 11/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 22/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 16/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.48 KB (15.0% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 89.76 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.50 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 89.76 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 89.76 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1642 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 65 small targets on mobile and 65 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 70.71 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1642 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 89.76 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 70.71 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.07 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.4 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 71 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 57 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,640 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/en/what-to-do-in-bcn/magic-fountain/choreographies-magic-fountain
- Performance: 68/100
- Transfer: 836.38 KB
- CO2 estimate: 0.3281 g
- Page host green energy status: NOT GREEN
- Redundancy score: 29/100
- Redundancy urgency: MEDIUM
- Modularization score: 20/100
- Modularization urgency: MEDIUM
- Dead-code score: 11/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 22/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 15/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 39/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.85 KB (16.1% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.25 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.60 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (267.43 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.60 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.99 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.25 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.60 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.60 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.25 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1493 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 48 small targets on mobile and 46 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 70.71 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1493 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.25 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 70.71 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 53.60 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 14 of 17 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.5 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 54 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 71 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 57 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/vivir-en-bcn/con-ninos-y-ninas
- Performance: 63/100
- Transfer: 2.94 MB
- CO2 estimate: 1.1828 g
- Page host green energy status: NOT GREEN
- Redundancy score: 23/100
- Redundancy urgency: MEDIUM
- Modularization score: 42/100
- Modularization urgency: HIGH
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 16/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 138.45 KB (4.6% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.64 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 56.81 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 17 (2.33 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Split JavaScript by route or interaction (est. 56.81 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 259.18 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.64 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 56.81 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 7.72 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 56.81 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.64 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1521 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 259.18 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 69 small targets on mobile and 66 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.87 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.43 MB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.87 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.43 MB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1521 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.64 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 56.81 KB.
  - [LOW] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 7.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 10.7 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 57 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,912 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,462 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,520 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/en/discoverbcn/la-ciutadella-knowledge-hub/news
- Performance: 68/100
- Transfer: 1.79 MB
- CO2 estimate: 0.7192 g
- Page host green energy status: NOT GREEN
- Redundancy score: 23/100
- Redundancy urgency: LOW
- Modularization score: 27/100
- Modularization urgency: MEDIUM
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 18/100
- Non-critical resources urgency: HIGH
- Form validation score: 38/100
- Form validation urgency: MEDIUM
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 53/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 110.57 KB (6.0% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.47 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.10 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 6 (885.47 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from media-edg.barcelona.cat (est. 365.40 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT www.youtube.com: GREEN (Google Cloud); 2 request(s), 10.80 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.47 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.10 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.10 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.47 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1635 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from media-edg.barcelona.cat (est. 365.40 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No error messaging hook
    - 4 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 45 small targets on mobile and 43 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 884.01 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 87.35 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 884.01 KB.
  - [HIGH] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 826.77 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1635 ms.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 87.35 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.47 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 1.15 MB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.1 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 79 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 884 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 87 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,640 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/ca/que-pots-fer-a-bcn/banys-i-platges
- Performance: 50/100
- Transfer: 6.84 MB
- CO2 estimate: 2.7470 g
- Page host green energy status: NOT GREEN
- Redundancy score: 23/100
- Redundancy urgency: MEDIUM
- Modularization score: 50/100
- Modularization urgency: HIGH
- Dead-code score: 8/100
- Dead-code urgency: HIGH
- Non-critical resources score: 35/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 44/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 68/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 26/100
- Media hints urgency: LOW
- Third-party JS risk score: 82/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 433.66 KB (6.2% of transfer)
- Redundancy recommendations:
  - [HIGH] Reduce unused javascript (est. 351.98 KB savings)
  - [MEDIUM] Reduce unused css (est. 81.68 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 16 (4.83 MB total)
- On-demand modularization candidates:
  - [HIGH] Lazy-load offscreen images and media galleries (est. 3.60 MB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Split JavaScript by route or interaction (est. 351.98 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 1.02 MB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.jsdelivr.net: GREEN (Cloudflare); 1 request(s), 159.60 KB
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 20.27 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 9 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.68 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [HIGH] Remove unused JavaScript and feature bundles (est. 351.98 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [HIGH] Lazy-load offscreen images (est. 3.60 MB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [HIGH] Defer non-critical JavaScript (est. 351.98 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.68 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1464 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 1.02 MB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 43 small targets on mobile and 45 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 4 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
  - [MEDIUM] Constrain media dimensions
    - 3 media element(s) exceeded viewport width. Apply max-width: 100% and responsive media patterns.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 9 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 9 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 3.78 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 879.22 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 3.78 MB.
  - [HIGH] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 3.60 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 879.22 KB.
  - [HIGH] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 351.98 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1464 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.68 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 4.74 MB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 24 of 40 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 22.0 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Speed Index
  - Current value: 10.7 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 352 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 3,875 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 879 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)

### https://barcelona.cat/ca/que-pots-fer-a-bcn/banys-i-platges/platges-sense-residus
- Performance: 55/100
- Transfer: 1.21 MB
- CO2 estimate: 0.4844 g
- Page host green energy status: NOT GREEN
- Redundancy score: 26/100
- Redundancy urgency: MEDIUM
- Modularization score: 31/100
- Modularization urgency: MEDIUM
- Dead-code score: 9/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 20/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 34/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 64/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 34/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 135.73 KB (11.0% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.51 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 54.22 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 6 (698.72 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 54.22 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 269.38 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.51 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 54.22 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 54.22 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.51 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1634 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 269.38 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 39 small targets on mobile and 34 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 2 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 430.14 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 361.06 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 430.14 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 361.06 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1634 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.51 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 54.22 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 15 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 9.2 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 54 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 430 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 361 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/que-hacer-en-bcn/parque-montjuic/noticias
- Performance: 62/100
- Transfer: 2.08 MB
- CO2 estimate: 0.8354 g
- Page host green energy status: NOT GREEN
- Redundancy score: 13/100
- Redundancy urgency: LOW
- Modularization score: 31/100
- Modularization urgency: HIGH
- Dead-code score: 4/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 18/100
- Non-critical resources urgency: HIGH
- Form validation score: 38/100
- Form validation urgency: MEDIUM
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 55/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 110.59 KB (5.2% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.49 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.10 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 7 (1.19 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 81.70 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from media-edg.barcelona.cat (est. 429.84 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT www.youtube.com: GREEN (Google Cloud); 2 request(s), 10.83 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.49 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.10 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 81.70 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.10 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.49 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1583 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from media-edg.barcelona.cat (est. 429.84 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No error messaging hook
    - 4 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 47 small targets on mobile and 45 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.05 MB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 89.47 KB.
- Optimization recommendations:
  - [HIGH] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 1.06 MB.
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.05 MB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1583 ms.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 89.47 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 81.70 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.49 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 1.41 MB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 10.2 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 31 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 79 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,072 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 89 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 82 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/ca/que-pots-fer-a-bcn/banys-i-platges/zona-de-banys-del-forum
- Performance: 63/100
- Transfer: 1.24 MB
- CO2 estimate: 0.4982 g
- Page host green energy status: NOT GREEN
- Redundancy score: 26/100
- Redundancy urgency: MEDIUM
- Modularization score: 30/100
- Modularization urgency: MEDIUM
- Dead-code score: 9/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 20/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 32/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 63/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 42/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.05 KB (10.6% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.03 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.01 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 6 (678.00 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.01 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 208.30 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.03 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.01 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.01 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.03 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 2080 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 208.30 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 41 small targets on mobile and 39 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 1 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 433.65 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 371.77 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 433.65 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 371.77 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 2080 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.03 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 53.01 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 13 of 15 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 8.7 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 434 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 372 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/que-hacer-en-bcn/ponte-en-forma/clubs-asociaciones-y-penas
- Performance: 64/100
- Transfer: 854.88 KB
- CO2 estimate: 0.3353 g
- Page host green energy status: NOT GREEN
- Redundancy score: 43/100
- Redundancy urgency: MEDIUM
- Modularization score: 19/100
- Modularization urgency: MEDIUM
- Dead-code score: 10/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 22/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 18/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.50 KB (14.2% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 89.78 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Enable and verify text compression (est. 24.83 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.66 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.50 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 89.78 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 89.78 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1596 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 63 small targets on mobile and 62 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 70.71 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
  - [LOW] Enable Brotli/gzip for text assets
    - Compress HTML, CSS, JS, JSON, SVG, and XML responses with Brotli or gzip. Estimated savings: 24.83 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1596 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 89.78 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 70.71 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.05 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 9.7 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 32 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 71 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 57 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/en/what-to-do-in-bcn/bathing-and-beaches/sant-sebastia-beach
- Performance: 62/100
- Transfer: 1.49 MB
- CO2 estimate: 0.6002 g
- Page host green energy status: NOT GREEN
- Redundancy score: 25/100
- Redundancy urgency: MEDIUM
- Modularization score: 34/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 19/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 34/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 83/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 39/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 133.91 KB (8.8% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.34 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 52.57 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 7 (956.52 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 81.70 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 52.57 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 262.05 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.52 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.34 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 52.57 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 81.70 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 52.57 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.34 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1638 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 262.05 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 41 small targets on mobile and 39 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 2 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 680.80 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 587.22 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 680.80 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 587.22 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1638 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 81.70 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.34 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 52.57 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.07 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 13 of 16 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 11.4 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 681 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 587 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 82 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/en/what-to-do-in-bcn/magic-fountain/how-it-works
- Performance: 45/100
- Transfer: 1.42 MB
- CO2 estimate: 0.5719 g
- Page host green energy status: NOT GREEN
- Redundancy score: 25/100
- Redundancy urgency: MEDIUM
- Modularization score: 37/100
- Modularization urgency: HIGH
- Dead-code score: 9/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 19/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 34/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 76/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 21/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 135.25 KB (9.3% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.64 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.61 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 9 (939.67 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.61 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 161.76 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.64 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.61 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.61 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.64 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1633 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 161.76 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 40 small targets on mobile and 33 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 2 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 620.91 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 484.34 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 620.91 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 484.34 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1633 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.64 KB.
  - [MEDIUM] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 75.73 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 11.5 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 54 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 621 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 484 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/ca/que-pots-fer-a-bcn/banys-i-platges/historia-de-les-platges
- Performance: 51/100
- Transfer: 2.09 MB
- CO2 estimate: 0.8403 g
- Page host green energy status: NOT GREEN
- Redundancy score: 23/100
- Redundancy urgency: MEDIUM
- Modularization score: 38/100
- Modularization urgency: HIGH
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 18/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 34/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 29/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 135.92 KB (6.3% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.53 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 54.39 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 7 (1.56 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 54.39 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 469.51 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.53 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 54.39 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 54.39 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.53 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1659 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 469.51 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 38 small targets on mobile and 33 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 2 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.17 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1016.77 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.17 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1016.77 KB.
  - [HIGH] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 150.31 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1659 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.53 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.05 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 17 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 13.3 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 54 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,202 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,017 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/que-hacer-en-bcn/fuente-magica/horarios-de-la-fuente-magica
- Performance: 53/100
- Transfer: 3.27 MB
- CO2 estimate: 1.3120 g
- Page host green energy status: NOT GREEN
- Redundancy score: 35/100
- Redundancy urgency: HIGH
- Modularization score: 34/100
- Modularization urgency: HIGH
- Dead-code score: 14/100
- Dead-code urgency: HIGH
- Non-critical resources score: 24/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 57/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 35/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 68/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 906.78 KB (27.1% of transfer)
- Redundancy recommendations:
  - [HIGH] Reduce unused javascript (est. 811.35 KB savings)
  - [MEDIUM] Reduce unused css (est. 95.43 KB savings)
  - [MEDIUM] Enable and verify text compression (est. 17.64 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 9 (1.57 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Split JavaScript by route or interaction (est. 811.35 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 425.81 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT geoportal.barcelona.cat: NOT GREEN; 7 request(s), 47.95 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 6 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 95.43 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [HIGH] Remove unused JavaScript and feature bundles (est. 811.35 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [HIGH] Defer non-critical JavaScript (est. 811.35 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 95.43 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 2792 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 425.81 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 37 small targets on mobile and 35 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.36 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 479.07 KB.
  - [LOW] Enable Brotli/gzip for text assets
    - Compress HTML, CSS, JS, JSON, SVG, and XML responses with Brotli or gzip. Estimated savings: 17.64 KB.
  - [LOW] Minify JavaScript before transfer
    - Minify JS bundles so transport compression produces better results with fewer bytes. Estimated savings: 4.20 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.36 MB.
  - [HIGH] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 811.35 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 479.07 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 2792 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 95.43 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 2.01 MB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 12 of 16 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 8.5 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Speed Index
  - Current value: 5.9 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 95 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,389 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 479 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/en/what-to-do-in-bcn/culture/theatres
- Performance: 68/100
- Transfer: 840.79 KB
- CO2 estimate: 0.3298 g
- Page host green energy status: NOT GREEN
- Redundancy score: 18/100
- Redundancy urgency: LOW
- Modularization score: 20/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 23/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 20/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.49 KB (14.4% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 89.77 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 117.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.50 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 89.77 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 117.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 89.77 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1598 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 65 small targets on mobile and 65 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 94.65 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 73.12 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1598 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 117.07 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 94.65 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 89.77 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 73.12 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 195.11 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.4 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 95 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 73 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 117 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,600 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/ca/que-pots-fer-a-bcn/cultura/auditoris
- Performance: 66/100
- Transfer: 825.85 KB
- CO2 estimate: 0.3240 g
- Page host green energy status: NOT GREEN
- Redundancy score: 18/100
- Redundancy urgency: LOW
- Modularization score: 20/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 22/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 15/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.48 KB (14.7% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 89.76 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.50 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.99 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 89.76 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 89.76 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 2093 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 60 small targets on mobile and 62 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 70.71 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 2093 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 89.76 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 70.71 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.4 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 71 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 57 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 2,090 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/en/what-to-do-in-bcn/bathing-and-beaches/sports-activities-organised-federated-athletes-entities
- Performance: 65/100
- Transfer: 1004.26 KB
- CO2 estimate: 0.3939 g
- Page host green energy status: NOT GREEN
- Redundancy score: 16/100
- Redundancy urgency: LOW
- Modularization score: 28/100
- Modularization urgency: MEDIUM
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 20/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 52/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 45/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 111.22 KB (11.1% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.50 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (529.88 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 265.23 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.99 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.52 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.50 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.50 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1485 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 265.23 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 36 small targets on mobile and 34 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 289.92 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 228.98 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 289.92 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 228.98 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1485 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.50 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.07 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 12 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 10.4 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 32 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 79 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 290 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 229 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/conocebcn/la-ciutadella-del-conocimiento/noticias
- Performance: 68/100
- Transfer: 1.81 MB
- CO2 estimate: 0.7264 g
- Page host green energy status: NOT GREEN
- Redundancy score: 13/100
- Redundancy urgency: LOW
- Modularization score: 26/100
- Modularization urgency: MEDIUM
- Dead-code score: 5/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 18/100
- Non-critical resources urgency: HIGH
- Form validation score: 38/100
- Form validation urgency: MEDIUM
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 52/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 111.17 KB (6.0% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.47 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.70 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 6 (885.42 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from media-edg.barcelona.cat (est. 365.42 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT www.youtube.com: GREEN (Google Cloud); 2 request(s), 10.83 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.47 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.70 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.70 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.47 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1594 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from media-edg.barcelona.cat (est. 365.42 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No error messaging hook
    - 4 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 46 small targets on mobile and 44 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 884.01 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 87.35 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 884.01 KB.
  - [HIGH] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 814.66 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1594 ms.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 87.35 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.47 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 1.15 MB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 7.3 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 79 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 884 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 87 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,590 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/ca/que-pots-fer-a-bcn/estiu/oficines-de-tramitacio-del-dni-i-passaport
- Performance: 66/100
- Transfer: 825.33 KB
- CO2 estimate: 0.3238 g
- Page host green energy status: NOT GREEN
- Redundancy score: 18/100
- Redundancy urgency: LOW
- Modularization score: 20/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 22/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 15/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.73 KB (14.7% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 90.01 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.50 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 90.01 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 90.01 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1790 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 57 small targets on mobile and 56 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 70.71 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1790 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 90.01 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 70.71 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.05 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 17 of 17 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.4 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 71 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 57 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,790 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/es/que-hacer-en-bcn/banos-y-playas/playa-de-somorrostro
- Performance: 62/100
- Transfer: 1.57 MB
- CO2 estimate: 0.6294 g
- Page host green energy status: NOT GREEN
- Redundancy score: 25/100
- Redundancy urgency: MEDIUM
- Modularization score: 34/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 19/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 34/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 83/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 39/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.07 KB (8.4% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.07 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.01 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 7 (1011.26 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 89.42 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.01 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 269.70 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.07 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.01 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 89.42 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.01 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.07 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1607 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 269.70 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 42 small targets on mobile and 40 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 2 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 720.24 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 618.58 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 720.24 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 618.58 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1607 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 89.42 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.07 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 53.01 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 13 of 16 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 11.1 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 720 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 619 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 89 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/que-hacer-en-bcn/ponte-en-forma/federaciones
- Performance: 67/100
- Transfer: 852.75 KB
- CO2 estimate: 0.3345 g
- Page host green energy status: NOT GREEN
- Redundancy score: 35/100
- Redundancy urgency: MEDIUM
- Modularization score: 19/100
- Modularization urgency: MEDIUM
- Dead-code score: 10/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 22/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 32/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 18/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.48 KB (14.2% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 89.76 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Enable and verify text compression (est. 23.11 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.49 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 89.76 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 89.76 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1588 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 69 small targets on mobile and 69 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 1 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 70.71 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
  - [LOW] Enable Brotli/gzip for text assets
    - Compress HTML, CSS, JS, JSON, SVG, and XML responses with Brotli or gzip. Estimated savings: 23.11 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1588 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 89.76 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 70.71 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.2 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 71 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 57 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,590 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/ca/que-pots-fer-a-bcn/banys-i-platges/activitats-esportives-organitzades-amb-anim-de-lucre
- Performance: 54/100
- Transfer: 1.05 MB
- CO2 estimate: 0.4201 g
- Page host green energy status: NOT GREEN
- Redundancy score: 16/100
- Redundancy urgency: LOW
- Modularization score: 29/100
- Modularization urgency: MEDIUM
- Dead-code score: 6/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 20/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 55/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 45/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 111.11 KB (10.4% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.39 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (579.13 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 314.49 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.39 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.39 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1643 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 314.49 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 36 small targets on mobile and 34 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 327.55 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 259.02 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 327.55 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 259.02 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1643 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.39 KB.
  - [LOW] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 35.48 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 12 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 10.7 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 32 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 79 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 328 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 259 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/en/discoverbcn/ciutadella-knowledge-hub/greenhouse/history
- Performance: 39/100
- Transfer: 3.01 MB
- CO2 estimate: 1.2097 g
- Page host green energy status: NOT GREEN
- Redundancy score: 22/100
- Redundancy urgency: MEDIUM
- Modularization score: 44/100
- Modularization urgency: HIGH
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 17/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 34/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.59 KB (4.4% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.14 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.46 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 11 (2.46 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.46 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 415.96 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.52 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.14 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.46 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.46 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.14 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1644 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 415.96 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 45 small targets on mobile and 35 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 2 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.88 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.51 MB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.88 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.51 MB.
  - [HIGH] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 254.42 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1644 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.14 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 20.5 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,926 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,543 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/ca/que-pots-fer-a-bcn/posat-en-forma/installacions-esportives
- Performance: 63/100
- Transfer: 952.69 KB
- CO2 estimate: 0.3737 g
- Page host green energy status: NOT GREEN
- Redundancy score: 35/100
- Redundancy urgency: MEDIUM
- Modularization score: 18/100
- Modularization urgency: MEDIUM
- Dead-code score: 10/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 22/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 27/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.48 KB (12.8% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 89.76 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Enable and verify text compression (est. 86.13 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 117.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.50 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.97 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 89.76 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 117.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 89.76 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1564 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 66 small targets on mobile and 65 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 97.24 KB.
  - [MEDIUM] Enable Brotli/gzip for text assets
    - Compress HTML, CSS, JS, JSON, SVG, and XML responses with Brotli or gzip. Estimated savings: 86.13 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 77.76 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1564 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 117.07 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 97.24 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 89.76 KB.
  - [MEDIUM] Enable text compression
    - Serve text assets with Brotli or gzip to remove avoidable transfer bloat. Estimated byte savings: 86.13 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 77.76 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 195.12 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.6 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 97 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 78 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 117 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,560 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/ca/que-pots-fer-a-bcn/llistat
- Performance: 66/100
- Transfer: 1.33 MB
- CO2 estimate: 0.5343 g
- Page host green energy status: NOT GREEN
- Redundancy score: 25/100
- Redundancy urgency: LOW
- Modularization score: 21/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 33/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 41/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.48 KB (8.9% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 89.76 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [HIGH] Lazy-load offscreen images and media galleries (est. 615.33 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.50 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 89.76 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [HIGH] Lazy-load offscreen images (est. 615.33 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 89.76 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1787 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 69 small targets on mobile and 69 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 408.84 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 145.85 KB.
- Optimization recommendations:
  - [HIGH] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 615.33 KB.
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 408.84 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1787 ms.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 145.85 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 89.76 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 676.44 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 7.7 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 409 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 146 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 615 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,790 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/en/what-to-do-in-bcn/summer/municipal-tax-office
- Performance: 67/100
- Transfer: 807.24 KB
- CO2 estimate: 0.3167 g
- Page host green energy status: NOT GREEN
- Redundancy score: 18/100
- Redundancy urgency: LOW
- Modularization score: 20/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 22/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 16/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.73 KB (15.1% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 90.01 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.50 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 90.01 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 90.01 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1624 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 41 small targets on mobile and 41 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 70.71 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1624 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 90.01 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 70.71 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 12 of 12 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.3 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 71 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 57 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,620 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/en/living-in-bcn/environment-and-sustainability/list-containers
- Performance: 67/100
- Transfer: 830.36 KB
- CO2 estimate: 0.3257 g
- Page host green energy status: NOT GREEN
- Redundancy score: 26/100
- Redundancy urgency: LOW
- Modularization score: 18/100
- Modularization urgency: MEDIUM
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 14/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 18/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.62 KB (14.6% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 89.90 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Enable and verify text compression (est. 19.93 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.64 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.64 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.50 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 89.90 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 3.37 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 89.90 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1025 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 48 small targets on mobile and 48 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 70.71 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
  - [LOW] Enable Brotli/gzip for text assets
    - Compress HTML, CSS, JS, JSON, SVG, and XML responses with Brotli or gzip. Estimated savings: 19.93 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1025 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 89.90 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 70.71 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
  - [LOW] Enable text compression
    - Serve text assets with Brotli or gzip to remove avoidable transfer bloat. Estimated byte savings: 19.93 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.07 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.4 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 71 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 57 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,030 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)
- [HIGH] Reduce initial server response time
  - Current value: Root document took 1,010 ms
  - WSG: 11 Ensure infrastructure fits project requirements (https://www.w3.org/TR/web-sustainability-guidelines/#ensure-infrastructure-fits-project-requirements)

### https://barcelona.cat/en/living-in-bcn/catalan-national-day-2019/public-transport-11-september-2022-catalan-national-day
- Performance: 68/100
- Transfer: 1.93 MB
- CO2 estimate: 0.7759 g
- Page host green energy status: NOT GREEN
- Redundancy score: 23/100
- Redundancy urgency: LOW
- Modularization score: 32/100
- Modularization urgency: HIGH
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 16/100
- Non-critical resources urgency: HIGH
- Form validation score: 55/100
- Form validation urgency: MEDIUM
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 6/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 90/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 110.81 KB (5.6% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.69 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.12 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 10 (1.04 MB total)
- On-demand modularization candidates:
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy script asset from www.gstatic.com (est. 247.06 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
  - [MEDIUM] Modularize heavy script asset from maps.googleapis.com (est. 178.07 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
  - [MEDIUM] Modularize heavy document asset from www.google.com (est. 124.66 KB)
    - Move this asset behind an explicit interaction, route boundary, or lazy-loading trigger.
- External CSS/JS hosting checks:
  - SCRIPT maps.googleapis.com: GREEN (Google Cloud); 13 request(s), 412.21 KB
  - SCRIPT www.gstatic.com: GREEN (Google Cloud); 4 request(s), 373.24 KB
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - STYLESHEET www.gstatic.com: GREEN (Google Cloud); 1 request(s), 50.75 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 9 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.69 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.12 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 3.37 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.12 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.69 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1640 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy script from www.gstatic.com (est. 247.06 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 81 small targets on mobile and 79 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 70.71 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1640 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.69 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 70.71 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.12 KB.
  - [LOW] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 3.37 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 283.70 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 12 of 12 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.1 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 80 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 71 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 57 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,640 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)
- [HIGH] Avoid an excessive DOM size
  - Current value: 1,007 elements
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)

### https://barcelona.cat/ca/que-pots-fer-a-bcn/banys-i-platges/barcelona-platja-platja
- Performance: 66/100
- Transfer: 2.10 MB
- CO2 estimate: 0.8436 g
- Page host green energy status: NOT GREEN
- Redundancy score: 13/100
- Redundancy urgency: MEDIUM
- Modularization score: 42/100
- Modularization urgency: HIGH
- Dead-code score: 5/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 12/100
- Non-critical resources urgency: MEDIUM
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 21/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 135.60 KB (6.3% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 82.17 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.44 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 14 (1.60 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 89.42 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.44 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [MEDIUM] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 189.97 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.99 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.52 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 82.17 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.44 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 89.42 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.44 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 82.17 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [MEDIUM] Eliminate render-blocking resources (est. 873 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 189.97 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 45 small targets on mobile and 43 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.16 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 983.25 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.16 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 983.25 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 89.42 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 82.17 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 53.44 KB.
  - [MEDIUM] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 873 ms.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.08 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 8.7 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,190 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 983 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 89 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/que-hacer-en-bcn/banos-y-playas/historia-de-las-playas
- Performance: 44/100
- Transfer: 2.09 MB
- CO2 estimate: 0.8404 g
- Page host green energy status: NOT GREEN
- Redundancy score: 23/100
- Redundancy urgency: MEDIUM
- Modularization score: 38/100
- Modularization urgency: HIGH
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 18/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 34/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 29/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 135.92 KB (6.3% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.53 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 54.39 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 7 (1.56 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 54.39 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 468.78 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.53 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 54.39 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 54.39 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.53 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1663 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 468.78 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 38 small targets on mobile and 33 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 2 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.17 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1017.30 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.17 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1017.30 KB.
  - [HIGH] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 150.23 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1663 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.53 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.07 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 17 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 15.3 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 54 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,202 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,017 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/que-hacer-en-bcn/parques-y-jardines/parques-forestales
- Performance: 67/100
- Transfer: 953.13 KB
- CO2 estimate: 0.3739 g
- Page host green energy status: NOT GREEN
- Redundancy score: 27/100
- Redundancy urgency: LOW
- Modularization score: 20/100
- Modularization urgency: MEDIUM
- Dead-code score: 10/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 26/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 22/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.75 KB (12.8% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 90.03 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [HIGH] Lazy-load offscreen images and media galleries (est. 211.18 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.49 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 90.03 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 211.18 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 90.03 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1592 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 42 small targets on mobile and 40 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 140.47 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 69.00 KB.
- Optimization recommendations:
  - [HIGH] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 211.18 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1592 ms.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 140.47 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 90.03 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 69.00 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 285.75 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 13 of 13 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 6.8 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 140 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 69 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 211 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,590 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/es/vivir-en-bcn/con-personas-mayores/vivir-con-tranquilidad
- Performance: 67/100
- Transfer: 1.38 MB
- CO2 estimate: 0.5538 g
- Page host green energy status: NOT GREEN
- Redundancy score: 15/100
- Redundancy urgency: MEDIUM
- Modularization score: 22/100
- Modularization urgency: MEDIUM
- Dead-code score: 6/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 17/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 79/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 25/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 135.56 KB (9.6% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 82.12 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.44 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 6 (535.93 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.44 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 143.66 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 82.12 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.44 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 3.37 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.44 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 82.12 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1634 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 143.66 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 44 small targets on mobile and 38 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 611.21 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 503.09 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 611.21 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 503.09 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1634 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 82.12 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 53.44 KB.
  - [LOW] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 3.37 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.05 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 19 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 8.6 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 611 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 503 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,630 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/es/que-hacer-en-bcn/ponte-en-forma/clubes
- Performance: 63/100
- Transfer: 916.70 KB
- CO2 estimate: 0.3596 g
- Page host green energy status: NOT GREEN
- Redundancy score: 42/100
- Redundancy urgency: MEDIUM
- Modularization score: 18/100
- Modularization urgency: MEDIUM
- Dead-code score: 10/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 21/100
- Non-critical resources urgency: HIGH
- Form validation score: 75/100
- Form validation urgency: HIGH
- Metadata score: 25/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 23/100
- Compression urgency: LOW
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 50/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 65/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 121.49 KB (13.3% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 89.77 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Enable and verify text compression (est. 82.46 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 4 (264.65 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
  - [MEDIUM] Modularize heavy script asset from cdn.matomo.cloud (est. 74.63 KB)
    - Load this script only on pages or interactions that require it; prefer dynamic import and feature-level bundles.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT cdnjs.cloudflare.com: GREEN (Cloudflare); 1 request(s), 15.49 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 8 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 89.77 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 89.77 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1647 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [MEDIUM] Evaluate deferred loading for heavy font from www.barcelona.cat (est. 88.44 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 2 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
  - [HIGH] Missing associated label
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [MEDIUM] Add meta description
    - Provide a concise description to improve machine interpretation and preview quality.
  - [MEDIUM] Complete Open Graph metadata
    - Include og:title, og:description, og:type, and og:url for robust machine-readable sharing metadata.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 63 small targets on mobile and 62 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 8 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 8 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [MEDIUM] Enable Brotli/gzip for text assets
    - Compress HTML, CSS, JS, JSON, SVG, and XML responses with Brotli or gzip. Estimated savings: 82.46 KB.
  - [MEDIUM] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 70.71 KB.
  - [MEDIUM] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 56.67 KB.
- Optimization recommendations:
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1647 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 89.77 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Enable text compression
    - Serve text assets with Brotli or gzip to remove avoidable transfer bloat. Estimated byte savings: 82.46 KB.
  - [MEDIUM] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 70.71 KB.
  - [MEDIUM] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 56.67 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 21 of 21 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 9.9 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 32 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 90 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 71 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 57 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/en/what-to-do-in-bcn/parks-and-gardens/history
- Performance: 47/100
- Transfer: 2.40 MB
- CO2 estimate: 0.9645 g
- Page host green energy status: NOT GREEN
- Redundancy score: 23/100
- Redundancy urgency: MEDIUM
- Modularization score: 41/100
- Modularization urgency: HIGH
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 18/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 34/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 25/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 135.40 KB (5.5% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.34 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 54.06 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 8 (1.89 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 54.06 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 625.79 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.34 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 54.06 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 54.06 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.34 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 2114 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 625.79 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 40 small targets on mobile and 34 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 2 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.45 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.23 MB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.45 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.23 MB.
  - [HIGH] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 188.51 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 2114 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.34 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 19 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 18.1 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 54 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,481 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,260 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/que-hacer-en-bcn/parque-montjuic/conoce-el-consejo-del-parque-de-montjuic
- Performance: 51/100
- Transfer: 1.01 MB
- CO2 estimate: 0.4052 g
- Page host green energy status: NOT GREEN
- Redundancy score: 16/100
- Redundancy urgency: LOW
- Modularization score: 28/100
- Modularization urgency: MEDIUM
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 20/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 51/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 45/100
- Media hints urgency: MEDIUM
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 111.12 KB (10.8% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.40 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (539.42 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 274.77 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.64 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.52 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.40 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.40 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1629 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 274.77 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 37 small targets on mobile and 34 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 292.64 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 230.80 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 292.64 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 230.80 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1629 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.40 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.05 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 12 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 10.4 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 32 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 79 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 293 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 231 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/ca/viure-a-bcn/amb-nens-i-nenes
- Performance: 65/100
- Transfer: 2.94 MB
- CO2 estimate: 1.1823 g
- Page host green energy status: NOT GREEN
- Redundancy score: 23/100
- Redundancy urgency: MEDIUM
- Modularization score: 42/100
- Modularization urgency: HIGH
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 16/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 100/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 139.04 KB (4.6% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.63 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 57.41 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 17 (2.33 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Split JavaScript by route or interaction (est. 57.41 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 259.13 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.63 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 57.41 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 7.73 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 57.41 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.63 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1513 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 259.13 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 69 small targets on mobile and 67 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 1.87 MB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 1.43 MB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 1.87 MB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 1.43 MB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1513 ms.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.63 KB.
  - [MEDIUM] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 57.41 KB.
  - [LOW] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 7.73 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 8.5 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 57 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 82 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 1,912 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 1,462 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Eliminate render-blocking resources
  - Current value: Est savings of 1,510 ms
  - WSG: 18 Use the most efficient solution for your service (https://www.w3.org/TR/web-sustainability-guidelines/#use-the-most-efficient-solution-for-your-service)

### https://barcelona.cat/es/conocebcn/la-historia/la-barcelona-contemporanea
- Performance: 55/100
- Transfer: 1.42 MB
- CO2 estimate: 0.5696 g
- Page host green energy status: NOT GREEN
- Redundancy score: 14/100
- Redundancy urgency: LOW
- Modularization score: 22/100
- Modularization urgency: MEDIUM
- Dead-code score: 5/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 19/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 78/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 23/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 110.67 KB (7.6% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 78.95 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (549.49 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 89.42 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 284.84 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 78.95 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 89.42 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 78.95 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1524 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 284.84 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 36 small targets on mobile and 34 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 632.60 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 506.63 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 632.60 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 506.63 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1524 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 89.42 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 78.95 KB.
  - [LOW] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 32.14 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.07 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
  - [HIGH] Add loading="lazy" to images
    - 11 of 20 image(s) lack an explicit loading="lazy" attribute. Lazy loading defers below-fold images and reduces initial page weight.
- [HIGH] Largest Contentful Paint
  - Current value: 10.6 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 32 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 79 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 633 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 507 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 89 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/en/discoverbcn/ciutadella-knowledge-hub/transformation-park
- Performance: 50/100
- Transfer: 1.90 MB
- CO2 estimate: 0.7620 g
- Page host green energy status: NOT GREEN
- Redundancy score: 24/100
- Redundancy urgency: MEDIUM
- Modularization score: 38/100
- Modularization urgency: HIGH
- Dead-code score: 8/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 18/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 34/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 93/100
- Compression urgency: HIGH
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 134.77 KB (6.9% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 81.31 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 53.46 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 8 (1.35 MB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [MEDIUM] Split JavaScript by route or interaction (est. 53.46 KB)
    - Move non-critical bundles behind route-level or event-driven imports so they are only fetched on demand.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [HIGH] Modularize heavy image asset from www.barcelona.cat (est. 339.68 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 81.31 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 53.46 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 53.46 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [HIGH] Inline critical CSS and defer remainder (est. 81.31 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1636 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 339.68 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 40 small targets on mobile and 34 on tablet.
  - [MEDIUM] Refactor fixed-width components
    - 2 element(s) exceeded viewport width in tested layouts; use responsive component constraints.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 985.67 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 826.38 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 985.67 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 826.38 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1636 ms.
  - [MEDIUM] Right-size images for viewport
    - Avoid sending larger images than the rendered size needs. Estimated byte savings: 125.64 KB.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 81.31 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 10.4 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 53 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 81 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 986 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 826 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

### https://barcelona.cat/es/conocebcn/ciutadelladelconocimiento/polo-de-biociencia-del-csic
- Performance: 55/100
- Transfer: 1010.19 KB
- CO2 estimate: 0.3963 g
- Page host green energy status: NOT GREEN
- Redundancy score: 16/100
- Redundancy urgency: LOW
- Modularization score: 26/100
- Modularization urgency: MEDIUM
- Dead-code score: 7/100
- Dead-code urgency: MEDIUM
- Non-critical resources score: 20/100
- Non-critical resources urgency: HIGH
- Form validation score: 60/100
- Form validation urgency: HIGH
- Metadata score: 0/100
- Metadata urgency: LOW
- Layout adaptation score: 30/100
- Layout adaptation urgency: MEDIUM
- Lightweight security score: 59/100
- Lightweight security urgency: MEDIUM
- Dependency maintenance score: 10/100
- Dependency maintenance urgency: MEDIUM
- Expected-files score: 25/100
- Expected-files urgency: LOW
- Compression score: 46/100
- Compression urgency: MEDIUM
- Optimization score: 100/100
- Optimization urgency: HIGH
- Offline support score: 100/100
- Offline support urgency: HIGH
- Media hints score: 20/100
- Media hints urgency: LOW
- Third-party JS risk score: 64/100
- Third-party JS urgency: HIGH
- Estimated redundant transfer: 111.17 KB (11.0% of transfer)
- Redundancy recommendations:
  - [MEDIUM] Reduce unused css (est. 79.45 KB savings)
  - [MEDIUM] Reduce unused javascript (est. 31.72 KB savings)
  - [MEDIUM] Reduce DOM complexity and redundant markup
- Heavy initial-load requests: 5 (475.48 KB total)
- On-demand modularization candidates:
  - [MEDIUM] Lazy-load offscreen images and media galleries (est. 85.07 KB)
    - Load imagery only when it enters the viewport or when a user opens the relevant section.
  - [HIGH] Defer non-critical UI modules until after first render
    - Keep only above-the-fold resources in the initial path; hydrate or import secondary modules later.
  - [MEDIUM] Modularize heavy image asset from www.barcelona.cat (est. 210.83 KB)
    - Serve a smaller placeholder first and load this asset only when the user scrolls to or requests the component.
  - [MEDIUM] Modularize heavy font asset from www.barcelona.cat (est. 88.44 KB)
    - Subset or defer this font so full font payloads are only fetched when needed.
- External CSS/JS hosting checks:
  - SCRIPT cdn.matomo.cloud: NOT GREEN; 1 request(s), 74.63 KB
  - SCRIPT cdn.lawwwing.com: GREEN (Hetzner Online GmbH); 1 request(s), 31.00 KB
  - STYLESHEET stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 24.08 KB
  - SCRIPT stackpath.bootstrapcdn.com: GREEN (Cloudflare); 1 request(s), 15.20 KB
  - SCRIPT ajuntament.barcelona.cat: NOT GREEN; 2 request(s), 6.98 KB
  - SCRIPT code.jquery.com: NOT GREEN; 1 request(s), 5.32 KB
- Third-party JS recommendations:
  - [HIGH] Maintain a third-party JavaScript inventory
    - Track 7 third-party script origin(s) and assign an owner plus business justification for each.
  - [HIGH] Reduce third-party script payload and requests
    - Defer non-critical tags, remove unused vendors, and gate scripts behind consent or user interaction.
  - [HIGH] Prioritize greener alternatives for third-party providers
    - 5 third-party script origin(s) are not confirmed green in the Green Web Foundation dataset.
- Dead-code recommendations:
  - [HIGH] Remove unused CSS selectors and component styles (est. 79.45 KB savings)
    - Trim styles that never match rendered markup and split component CSS so only used styles are shipped.
  - [MEDIUM] Remove unused JavaScript and feature bundles (est. 31.72 KB savings)
    - Drop unused packages and feature code, or move them behind route-level or interaction-triggered imports.
- Non-critical loading candidates:
  - [MEDIUM] Lazy-load offscreen images (est. 85.07 KB deferrable)
    - Load below-the-fold images only when they approach the viewport.
  - [MEDIUM] Defer non-critical JavaScript (est. 31.72 KB deferrable)
    - Split bundles and load feature code on interaction or route transition.
  - [MEDIUM] Inline critical CSS and defer remainder (est. 79.45 KB deferrable)
    - Ship only above-the-fold CSS in initial render path and defer non-critical styles.
  - [HIGH] Eliminate render-blocking resources (est. 1489 ms unblock)
    - Defer scripts/styles not required for first paint and preload only truly critical assets.
  - [HIGH] Evaluate deferred loading for heavy image from www.barcelona.cat (est. 210.83 KB deferrable)
    - Confirm this asset is required for first paint; defer or lazy-load if not critical.
- Form validation recommendations:
  - [MEDIUM] No explicit validation rule
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] No error messaging hook
    - 1 unique form control signature(s) on this page include this issue.
  - [MEDIUM] Missing autocomplete for tooling support
    - 1 unique form control signature(s) on this page include this issue.
- Metadata recommendations:
  - [LOW] Metadata structure looks healthy
    - Core machine-readable metadata is present and no structural issues were detected.
- Layout adaptation recommendations:
  - [HIGH] Increase touch target sizes
    - Ensure interactive controls are at least 44x44 CSS px. Detected 35 small targets on mobile and 33 on tablet.
- Lightweight security recommendations:
  - [HIGH] Add a Content-Security-Policy header
    - Add an appropriate CSP to reduce script injection and resource loading risk.
  - [MEDIUM] Enable Strict-Transport-Security
    - Set a Strict-Transport-Security header to enforce HTTPS on repeat visits.
  - [LOW] Define a Referrer-Policy
    - Set a referrer policy to reduce unnecessary URL data leakage.
  - [LOW] Define a Permissions-Policy
    - Restrict browser capabilities to only what the application needs.
  - [MEDIUM] Add SRI to external scripts
    - 7 external script tag(s) are missing integrity attributes.
- Dependency maintenance recommendations:
  - [MEDIUM] Add integrity attributes for external dependencies
    - 7 external script dependency URL(s) are missing SRI integrity attributes.
- Language/runtime version recommendations:
  - [LOW] No obvious outdated runtime version disclosed
    - No clearly outdated runtime version signals were exposed in sampled HTTP headers. Verify language/runtime versions in source and CI since backend versions are not always externally visible.
- Expected-files recommendations:
  - [LOW] Add beneficial discoverability and maintenance files
    - Missing beneficial file(s): /.well-known/security.txt, /manifest.webmanifest.
- Compression recommendations:
  - [HIGH] Use modern image compression formats
    - Prefer AVIF/WebP over legacy formats where possible to reduce transfer size. Estimated savings: 251.85 KB.
  - [HIGH] Improve image encoding quality/size
    - Re-encode oversized images and tune compression quality for significant byte savings. Estimated savings: 213.89 KB.
- Optimization recommendations:
  - [HIGH] Serve images in next-gen formats
    - Convert high-byte images to more efficient formats such as AVIF or WebP. Estimated byte savings: 251.85 KB.
  - [HIGH] Compress oversized image assets
    - Re-encode large images to reduce transfer weight without visible quality loss. Estimated byte savings: 213.89 KB.
  - [HIGH] Eliminate render-blocking resources
    - Inline critical assets and defer non-critical scripts/styles for faster rendering. Estimated render unblocking: 1489 ms.
  - [MEDIUM] Lazy-load offscreen images
    - Defer below-the-fold imagery until it is likely to be viewed. Estimated byte savings: 85.07 KB.
  - [MEDIUM] Remove unused CSS
    - Trim unused selectors and split CSS so only needed styles are shipped. Estimated byte savings: 79.45 KB.
  - [LOW] Remove unused JavaScript
    - Reduce dead JS and split bundles to avoid shipping non-critical code. Estimated byte savings: 31.72 KB.
- Offline/caching recommendations:
  - [HIGH] Add service worker support
    - Register a service worker to support resilient caching and offline behavior for key routes.
  - [HIGH] Ensure critical routes work offline
    - Provide an offline fallback strategy for key pages and shell assets.
  - [MEDIUM] Improve web app manifest support
    - Complete manifest fields so clients can install and run an app-like experience.
  - [MEDIUM] Support offline start URL behavior
    - Ensure start URL and shell routing can load in disconnected conditions.
  - [MEDIUM] Strengthen static asset cache TTL
    - Improve long-lived cache headers for immutable static assets (estimated savings opportunity: 164.06 KB).
- Media sustainability recommendations:
  - [MEDIUM] Add dark mode support
    - No prefers-color-scheme: dark media query or color-scheme meta tag was found. Dark mode reduces energy use on OLED screens and improves user choice.
- [HIGH] Largest Contentful Paint
  - Current value: 10.1 s
  - WSG: 1 Set goals based on performance and energy impact (https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact)
- [HIGH] Reduce unused JavaScript
  - Current value: Est savings of 32 KiB
  - WSG: 16 Use dependencies appropriately and ensure maintenance (https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance)
- [HIGH] Reduce unused CSS
  - Current value: Est savings of 79 KiB
  - WSG: 2 Remove unnecessary or redundant information (https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information)
- [HIGH] Serve images in next-gen formats
  - Current value: Est savings of 252 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Efficiently encode images
  - Current value: Est savings of 214 KiB
  - WSG: 11 Optimize media to reduce resource use (https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use)
- [HIGH] Defer offscreen images
  - Current value: Est savings of 85 KiB
  - WSG: 3 Modularize bandwidth-heavy components (https://www.w3.org/TR/web-sustainability-guidelines/#modularize-bandwidth-heavy-components)

## Copy/Paste Issue Snippets

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 15.1 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Speed Index

- Lighthouse audit: speed-index
- Current value: 16.3 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Speed Index shows how quickly the contents of a page are visibly populated. [Learn more about the Speed Index metric](https://developer.chrome.com/docs/lighthouse/performance/speed-index/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 1,885 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 7.8 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Speed Index

- Lighthouse audit: speed-index
- Current value: 10.9 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Speed Index shows how quickly the contents of a page are visibly populated. [Learn more about the Speed Index metric](https://developer.chrome.com/docs/lighthouse/performance/speed-index/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 57 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 7.3 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 79 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 420 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 10.4 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 31 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 79 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 18.1 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Speed Index

- Lighthouse audit: speed-index
- Current value: 7.5 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Speed Index shows how quickly the contents of a page are visibly populated. [Learn more about the Speed Index metric](https://developer.chrome.com/docs/lighthouse/performance/speed-index/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 1,888 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 19.4 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Speed Index

- Lighthouse audit: speed-index
- Current value: 7.9 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Speed Index shows how quickly the contents of a page are visibly populated. [Learn more about the Speed Index metric](https://developer.chrome.com/docs/lighthouse/performance/speed-index/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 1,802 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 19.5 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Speed Index

- Lighthouse audit: speed-index
- Current value: 8.4 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Speed Index shows how quickly the contents of a page are visibly populated. [Learn more about the Speed Index metric](https://developer.chrome.com/docs/lighthouse/performance/speed-index/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 1,791 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 7.6 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 32 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 80 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 10.0 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 7.8 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 32 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 80 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 8.8 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 62 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 9.5 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 32 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 80 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 8.1 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 32 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 80 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.7 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 7.6 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 57 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 8.2 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 8.6 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 32 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 80 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 8.0 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.6 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 63 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 8.7 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.0 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 80 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 71 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 7.9 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 7.1 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 7.8 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 32 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 80 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 7.5 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 62 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 9.0 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 7.0 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 2,096 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 7.2 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.0 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 80 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 71 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.0 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 80 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 71 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 7.2 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 57 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 9.7 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 80 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 290 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.3 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 79 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 868 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 9.5 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 32 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 8.1 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 332 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 79 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.1 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 80 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 1,456 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.7 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 80 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 71 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 9.9 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 54 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 8.4 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 54 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.8 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 181 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 10.0 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 32 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.5 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 71 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 7.1 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 285 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 12.7 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.3 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 140 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.3 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 84 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 10.9 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 20.5 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.3 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 95 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 9.9 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Speed Index

- Lighthouse audit: speed-index
- Current value: 6.7 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Speed Index shows how quickly the contents of a page are visibly populated. [Learn more about the Speed Index metric](https://developer.chrome.com/docs/lighthouse/performance/speed-index/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 74 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 8.9 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 10.8 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 354 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 10.5 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 32 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 80 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.4 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 97 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.2 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 5.4 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 89 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 500 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 7.0 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 57 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 7.7 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 465 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 10.6 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 9.9 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 8.8 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 9.7 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 32 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 79 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.4 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 71 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.5 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 54 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 10.7 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 57 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.1 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 79 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 884 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 22.0 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Speed Index

- Lighthouse audit: speed-index
- Current value: 10.7 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Speed Index shows how quickly the contents of a page are visibly populated. [Learn more about the Speed Index metric](https://developer.chrome.com/docs/lighthouse/performance/speed-index/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 352 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 9.2 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 54 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 10.2 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 31 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 79 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 8.7 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 9.7 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 32 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 11.4 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 11.5 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 54 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 13.3 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 54 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 8.5 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Speed Index

- Lighthouse audit: speed-index
- Current value: 5.9 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Speed Index shows how quickly the contents of a page are visibly populated. [Learn more about the Speed Index metric](https://developer.chrome.com/docs/lighthouse/performance/speed-index/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 95 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.4 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 95 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.4 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 71 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 10.4 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 32 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 79 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 7.3 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 79 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 884 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.4 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 71 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 11.1 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.2 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 71 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 10.7 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 32 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 79 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 20.5 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.6 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 97 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 7.7 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 409 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.3 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 71 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.4 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 71 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.1 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 80 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 71 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 8.7 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 15.3 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 54 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 6.8 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Serve images in next-gen formats

- Lighthouse audit: modern-image-formats
- Current value: Est savings of 140 KiB
- WSG guideline: 11 Optimize media to reduce resource use
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#optimize-media-to-reduce-resource-use

### Why this matters
Image formats like WebP and AVIF often provide better compression than PNG or JPEG, which means faster downloads and less data consumption. [Learn more about modern image formats](https://developer.chrome.com/docs/lighthouse/performance/uses-webp-images/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 8.6 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 9.9 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 32 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 90 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 18.1 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 54 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 10.4 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 32 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 79 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 8.5 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 57 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 82 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 10.6 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 32 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 79 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 10.4 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 53 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 81 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Largest Contentful Paint

- Lighthouse audit: largest-contentful-paint
- Current value: 10.1 s
- WSG guideline: 1 Set goals based on performance and energy impact
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#set-goals-based-on-performance-and-energy-impact

### Why this matters
Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused JavaScript

- Lighthouse audit: unused-javascript
- Current value: Est savings of 32 KiB
- WSG guideline: 16 Use dependencies appropriately and ensure maintenance
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#use-dependencies-appropriately-and-ensure-maintenance

### Why this matters
Reduce unused JavaScript and defer loading scripts until they are required to decrease bytes consumed by network activity. [Learn how to reduce unused JavaScript](https://developer.chrome.com/docs/lighthouse/performance/unused-javascript/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

```md
## Improve Reduce unused CSS

- Lighthouse audit: unused-css-rules
- Current value: Est savings of 79 KiB
- WSG guideline: 2 Remove unnecessary or redundant information
- WSG link: https://www.w3.org/TR/web-sustainability-guidelines/#remove-unnecessary-or-redundant-information

### Why this matters
Reduce unused rules from stylesheets and defer CSS not used for above-the-fold content to decrease bytes consumed by network activity. [Learn how to reduce unused CSS](https://developer.chrome.com/docs/lighthouse/performance/unused-css-rules/).

### Definition of done
- [ ] Metric improves in Lighthouse on key templates
- [ ] Changes documented in release notes
- [ ] Re-scan confirms improvement
```

